Kleiner Nachtrag. Meine Freundin kanns auch hervorrufen. Was haben wir jetzt gelacht
Ich bin gerade am rumspielen und lernen und habe mir auf meinem Steckbrett einen Taster in Form eines simplen Kabels zusammengesteckt.
Zwischen VCC und GND liegt ein (gemessener ) 9.98 k Widerstand und der Taster steckt auf Port Pinh.5
Mit folgendem Proggi lasse ich mir so nebenbei auch noch den Status des Tasters auf die USB mit rausgeben und die kleine Boardled auf Pind.5 soll aufleuchten
Hier der Mini-Code:
Also ganz was simples.Code:$programmer = 12 $regfile = "m2560def.dat" $hwstack = 82 $framesize = 68 $swstack = 68 $crystal = 16000000 'Quarzfrequenz $baud = 9600 Dim I As Integer Config Pinh.5 = Input Config Pind.5 = Output Led Alias Portd.5 Config Pine.5 = Input USB Alias Pine.5 Config Com4 = 9600 , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0 Open "com4:" For Binary As #4 Do If PinH.5 = 0 Then Led = 1 Print #4 , "Led ist an" Else Led = 0 Print #4 , "Led ist aus" End If Loop End
So jetzt kommts. Sobald ich das Kabel des Porth.5 berühre... ja nur berühre... schon schaltet die led wie wild hin und her und am Rechner via USB wird abwechselnd der Status hin und her geschalten.
Ich habe das Kabel "nur berührt". Also noch keinen Kontakt im Sinne des Tasters hergestellt.
Wenn ich das mache, dann bleibt der status auch auf "an". Aber ich muss das Kabel erst loslassen um einen definitiven "aus" Status zu bekommen.
Ach ja. Das Kabel ist natürlich isoliert und ich berühre nur das Plastik.
Bin ich so geladen ? (bin auch wegen der Firma genervt ) Ist das was mit Hochfrequenz? Sind ja immerhin 16MH. Oder ist das Kabel einfach zu lange und es fungiert als Antenne. Hat ungefähr 15 cm und ich bin umringt von 2 Rechnern, 2 Tastaturen, Funkmäusen, Bluetooth und 3 großen Flachbildschirmen.
Ich habe etwas gezögert, das hier zu fragen, weil ich mich selbst für beklopt halten würde, wenn ich es nicht live miterlebt hätte.
Würde auch ein Mini-Video machen, wenn man mir nicht glaubt.
Ach ja. Mit PortD.2, PortB.0 und PortB5 passiert genau das gleiche und mein Board ist das rn2560 hier aus dem shop.
Danke im Vorraus
Kleiner Nachtrag. Meine Freundin kanns auch hervorrufen. Was haben wir jetzt gelacht
Vielleicht liegt es ja an mir, ich kann dieser Beschreibung jedenfalls nicht entnehmen, wie deine Schaltung genau aussieht.Zwischen VCC und GND liegt ein (gemessener ) 9.98 k Widerstand und der Taster steckt auf Port Pinh.5
Könnte es sein, dass die Pins deines Controllers bei "geöffnetem Schalter" weder mit GND noch mit VCC verbunden sind, also in der Luft hängen?
Nein. Zwischen VCC und GND liegt der besagte 10k Widerstand und ich berühre nur das Kabel, was zum Port führt.Vielleicht liegt es ja an mir, ich kann dieser Beschreibung jedenfalls nicht entnehmen, wie deine Schaltung genau aussieht.
Könnte es sein, dass die Pins deines Controllers bei "geöffnetem Schalter" weder mit GND noch mit VCC verbunden sind, also in der Luft hängen?
Ich habe weiter experimentiert. Ich muss es anfassen, also ein berühren alleine genügt nicht. Aber welcher Strom kann da fliessen ? Es ist ja alles isoliert?
Die Ports D und C sind von einer anderen Testschaltung auch mit Kabel am Steckboard angesteckt. Aber extra in nicht verbundene Stellen am Steckboard.
Das war mein erster Gedanke, dass ich irgendwo irgendwie einen Kurzen verursache, weil ich das Kabel anlange. Deshalb habe ich alles doppelt geprüft ob irgendwo eine Verbindung sein könnte. Aber iss nicht.
Kabel in die Finger nehmen, als wenn man eine Antenne anlangt und schon gibts Reaktion am Port.
Die Kabellänge ist genau genommen etwas länger als 20 cm. Vielleicht liegts daran
Hi,
der Atmega hat doch interne Pullup's?
Schalte den mal an:
Ich weis jetzt nicht wie deine Schaltung genau aussieht, aber du kannst auch einen 4k7 Widerstand oder sowas von Pinh.5 auf VCC legen. (externer Pullup)Code:Config Pinh.5 = Input Porth.5 = 1
(Bei dem Wert möchte ich mich jetzt nicht festlegen, habe sowas aber schonmal gehört)
...der Widerstand gehört zwischen dem Pin und VCC, nicht zwischen VCC und GND. Du kannst Dir den aber sparen, wenn Du die internen Pullups aktivierst, die haben nämlich den gleichen Sinn.Zwischen VCC und GND liegt der besagte 10k Widerstand
Ich habe jetzt mal alles weggenommen, was an Kabeln nicht benötigt wird. Also VCC, Gnd und Port H.5 stecken am Board.
Es ist jetzt *kein* Kabel miteinander verbunden.
Aber es genügt ein Anfassen des PortH.5 Kabels um eine Reaktion hervorzurufen. Sogar das Tippen hier auf meiner Tastatur, wärend ich diese Message schreibe, läßt ab und zu mal die Led aufleuchten.
Also absolut unabhängig von PullupWiderstand und sonst noch was.
Ich seh schon. Ich muss ein Video machen, sonst glaubt mir das keiner.
Kleines Video davon als Windows Media File
http://www.pherzog.de/spuktaster/spuktaster.wmv
Wer sich wundert, was das für ein seltsames Board ist, auf dem das rn2560 steckt... Siehe hier: http://www.pherzog.de/steckboard/
Hi,
wir glauben dir ja, das liegt daran, weil der Port, wenn er nirgends angeschlossen ist, einen völlig undefinierten Zustand hat. Deshalb musst du mit einem relativ hohen Widerstand den Port auf VCC legen.
Der AtMega kann das sogar intern machen, man muss es ihm nur sagen.
Das ist mir ja auch vollkommen klar. Aber warum reagiert es auf Berührung des Kabels, welches isoliert ist?wir glauben dir ja, das liegt daran, weil der Port, wenn er nirgends angeschlossen ist, einen völlig undefinierten Zustand hat. Deshalb musst du mit einem relativ hohen Widerstand den Port auf VCC legen.
Der AtMega kann das sogar intern machen, man muss es ihm nur sagen.
Ich kanns mir nur dadurch erklären, als dass VCC nicht 100% glatt rüberkommt und sozusagen wie eine Antenne strahlt. Das Kabel am Port empfängt diese "Radiowellen" und meine Berührung löst den Schaltvorgang irgendwie aus.
Mit dem Phänomen sollte ich wohl in ein Physik- oder Hochfrequenzforum gehen, oder ?
Lesezeichen