Arduino Mega, Wo liegt der Unterschied, dass es funktioniert?

Hi,
danke für die freundliche Einladung bei weiteren Fragen, hier fragen zu dürfen! Und ja, heute konnte ich sagen: "Da staunt der Laie und der Fachmann wundert sich".

Ich schicke kurz voraus: Wenn ein Schalter / Taster an jedem der beiden Schaltkontakte je zwei Klemmstellen hat, dann ist es völlig egal, welche Klemmstelle ich belege, Hauptsache ist, dass ich auf dem gewollten Kontakt aufklemme. So kenne ich das!

Heute habe ich ein neues Arduino- Projekt ausgeführt.
3 LEDs ( Ampelfarben), 3 Taster zum Einschalten der zugeordneten LED und ein Reset- Taster zum gemeinsamen Ausschalten. ( Eine Art elektron. Wechselschalter)

Ich habe Screenshots angehängt, von der Anleitung und von meinem ( funktionierendem Aufbau.)

Wenn ich den Aufbau nach Anleitung aufbaue, und drücke den LEDgreen -Taster, leuchtet die grüne LED. Druck auf Reset und die grüne LED erlischt.
Nun möchte ich die gelbe LED durch Betätigen des entsprechenden Tasters zum Leuchten bringen. Doch, sobald ich mit meinem Finger in die Nähe des Tasters ( ca. 2- 3 cm) komme, beginnt die gelbe LED zu leuchten und lässt sich nicht mehr über den Reset- Taster ausschalten. Ich kann auch keine der anderen LEDs schalten, - nichts geht mehr.

Ich habe alle Taster auf korrekten Einbau ( Durchgang) geprüft, diese untereinander vertauscht, Widerstände ausgetauscht, die Kabel ausgewechselt- nichts half.

Schliesslich habe ich mir die schematische Schaltdarstellung angeschaut und sah, dass jeweils Widerstand und Kabel zum Arduino Pin auf einer Seite des Tasters angeordnet waren.
Ich steckte die Kabel um, wie auf dem Bild zu sehen ( rote Linien) und- es funktioniert.
Der Lehrbuchaufbau funktioniert mit dem roten und grünen LED- Taster problemlos. Nur der Taster für die gelbe LED "spinnt".
Aber warum- und wo hat meine Körperladung gewirkt, dass ich ohne Berührung die gelbe LED einschalten konnte? Zauberei? Oder doch eher eine rationale Erklärung?
Könnt Ihr mir sagen, wie dieses Phänomen entsteht und warum es mit anders gesteckten Kabeln plötzlich funktioniert?


Herzlichen Dank sagt der
ElegooFritze

Offene Engänge mit Beschaltung wirken wie Antennen und fangen alles (Un)Mögliche ein. Deshalb muss bei Offenem Taster der Eingang auf ein definiertes Potential gelegt sein.

  1. Taster schließt gegen 5V --> Widerstand gegen GND (PullDown) --> Hight am Eingang = gedrückt. if (digitalRead(Pin)) {...}
  2. Taster schließt gegen GND --> Widerstand gegen +5 V (PullUp) --> Low am Eingang = gedrückt - Die Logik dreht sich um if (!digitalRead(Pin)) {...}

Den externen Widerstand bei 2. kann man einsparen, wenn man den internen PullUp verwendet. pinMode(Pin,INPUT_PULLUP)

Gruß Tommy

Da fehlt der Pullup-Widerstand.
Auf dem Schaltbild bzw Frizzing-Bild ist der zwar vorhanden, aber in Deinem Aufbau scheint dieser zu fehlen / oder auf dem Steckbrett nicht Kontakt machen.

Grüße Uwe

Die PullUp Widerstände an den Tastern sind mit ihren 220 Ohm schon bischen seeeehr niedrig. Ich würde da auf jede Fall in den Bereich von 1000 Ohm gehen. Aber das ist nicht das Problem hier. Wie der Uwe schon schreibt, der Widerstand, der zu den Taster geht, der sich verselbstständigt, wenn du mit dem Finger in die Nähe kommst, hat da keinen richtigen Kontakt, oder ist falsch angesteckt.