Mastodon

Hallo Hannes,

ja, das mit den Pullup- bzw. Pulldown-Widerständen, das hat man als Elektronik-Bastler erst mal nicht auf dem Schirm. Du findest im Netz tausende Erklärungen, was die Dinger machen, z.B. hier: https://www.youtube.com/watch?v=XbX5TemR3bo

Kurz gesagt: Du versuchst am Raspi an einem Pin zu lesen, ob ein Schalter gedrückt ist oder nicht. An dem Schalter liegen z.B. 5V an. Jetzt würde man denken: Wenn der Schalter gedrückt ist, dann liegen an dem PIN 5V an, wenn er nicht gedrückt ist, dann liegen da 0V an. Allerdings liegen – wenn der Schalter nicht gedrückt ist – eben nicht 0V an, sondern etwas undefiniertes. Da liegt ja gar keine Spannung an, und damit bekommst du an dem PIN irgend ein Spannungsrauschen. Um das zu umgehen verbindest du den PIN also mit einem Widerstand mit GND, also 0V. Klingt nach Kurzschluss, ist es irgendwie ja auch, aber durch den Widerstand fließt da eben nur ganz wenig Strom. Trotzdem ist der PIN dann in beiden Zuständen sauber definiert.

So, und wir haben die Widerstände jetzt weggelassen, weil es hier so steht: https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/Using-GPIO-hardware-buttons Hintergrund ist, dass Arduinos und Raspberry Pis und so typischerweise intern schon so Pullup-Widerstände verbaut haben, und man kann per Software sagen, dass man die geschaltet haben will. Und das scheint der hier verwendete Code so zu machen. Beim Arduino sieht das so aus: https://www.arduino.cc/reference/de/language/functions/digital-io/pinmode/ Es gibt den PIN-Mode „INPUT“, aber eben auch den Mode „INPUT_PULLUP“, der dann eben den internen Pullup-Widerstand dazu schaltet. Beim Pi geht das analog, hängt aber von der verwendeten Library ab.

Grüße!
Daniel