In diesem Beitrag möchte ich dir zeigen wie du einen Taster am Raspberry PI Pico mit einem PullDown & einen PullUp Widerstand anschließt und mit Micropython programmierst.
Für die Arduino Familie habe ich bereits gezeigt wie man einen Taster abfragt und damit andere Bauteile steuern kann.
- Arduino Lektion 33: Taster mit Pull Down Widerstand
- Arduino Lektion #105: Taster mit Pull Up Widerstand
Hier soll es nun um die Sprache Micropython und den Raspberry PI Pico gehen.
Was ist ein Pullup und Pulldown Widerstand?
Wenn dein Taster mit einer Pullup Widerstands Schaltung aufgebaut wurde ziehst du das Signal von LOW auf HIGH und mit einem Pulldown Widerstand von HIGH auf LOW. D.h. du musst in deinem Code darauf achten wie das Ausgangssignal anliegt und wie du das ergebnis verarbeitest. Ggf. musst du also das Signal logisch umkehren.
Aufbau mit einem PullUp Widerstand
Aufbau der Schaltung
Programm
from machine import Pin from time import sleep #Taster am GPIO00 angeschlossen button = Pin(0, Pin.IN) #LED am GPIO01 angeschlossen led = Pin(1, Pin.OUT) #Endlosschleife while True: #abfragen des Wertes des Tasters if button.value(): #LED deaktivieren led.low() else: #LED aktivieren led.high() #eine kleine Pause von 100 Millisekunden sleep(0.1)
Aufbau mit einem PullDown Widerstand
Aufbau der Schaltung
Programm
Das Programm ist sehr ähnlich wie dieses für den Pullup Widerstand jedoch müssen wir das Signal vom Taster “umdrehen”. D.h. aus HIGH wird LOW und aus LOW wird HIGH.
from machine import Pin from time import sleep #Taster am GPIO00 angeschlossen button = Pin(0, Pin.IN) #LED am GPIO01 angeschlossen led = Pin(1, Pin.OUT) #Endlosschleife while True: #abfragen des Wertes des Tasters if not button.value(): #LED deaktivieren led.low() else: #LED aktivieren led.high() #eine kleine Pause von 100 Millisekunden sleep(0.1)
Hallo
Der Pi Pico hat die Pullup und Pulldown Widerstände schon mit eingebaut.
Diese kann man einfach im Code Aktivieren.
Beispiel:
taster = machine.Pin(14, machine.Pin.IN, machine.Pin.PULL_UP) oder:
taster = machine.Pin(14, machine.Pin.IN, machine.Pin.PULL_DOWN)
Gruss Pascal (Nitro)
Hi Pascal,
ja das stimmt wohl, nur wie du selbst erwähnt hast muss man dieses aktivieren.
So ist der Code etwas universeller einsetzbar.
Gruß,
Stefan Draeger
Ich habe mich auch gefragt, hat der Pico nicht interne Widerstände? Ist ja doch viel praktischer. Danke für den Kommentar und die Ergänzung.
Hi,
ja der Pico hat interne PullUp Widerstände, welche du im Code wie folgt verwenden kannst:
p2 = Pin(2, Pin.IN, Pin.PULL_UP)
Jedoch finde ich die Lösung mit den externen Widerständen etwas einfacher.
Gruß,
Stefan
Schön, dass du es einfacher findest, aber warum schreibst du die Code Lösung nicht gleich in dein Blog?