Im ersten Beitrag Raspberry PI Pico #1 – Vorstellung habe ich dir bereits den kleinen Microcontroller vorgestellt und auch gezeigt wie du die interne LED steuern kannst. In diesem Beitrag soll es nun darum gehen wie du mehrere extern angeschlossene LEDs mit dem Raspberry PI Pico steuern kannst.
benötigte Bauteile
Für den Nachbau der Beispiele benötigst du:
- 5mm LEDs, diverse Farben (zbsp. rot, gelb, grün, blau, weiß),
- 220 Ohm Widerstände,
- 1 Breadboard mit min. 400 Pin,
- einpaar Breadboardkabel, 10cm, männlich – männlich
Und natürlich einen Raspberry PI Pico mit passenden USB Datenkabel.
Aufbau einer LED
Eine Leuchtdiode oder auch kurz als LED bezeichnet verfügt meist über zwei Beinchen. Das längere Beinchen ist hier die Anode (der Plus Pol) und das kürzere Beinchen die Kathode (der Minus Pol). Je nach Bauform verfügt die LED über eine abgeflachte Seite welche zusätzlich den Minus Pol kennzeichnet, dieses kann sehr hilfreich sein wenn die beiden Beine gleich lang sind.
Es gibt aber auch LEDs mit mehr als die gezeigten zwei Beinchen. Zbsp. die Dual Color LEDs.
Pinout des Raspberry PI Pico
Hier nochmal das Pinout des Raspberry PI Pico welches wir benötigen um die LEDs korrekt anzuschließen.
Aufbau eines Wechselblinkens zweier LEDs
Wie bereits erwähnt habe ich im ersten Beitrag zum Raspberry PI Pico erläutert wie du die interne LED am Pin 25 steuern kannst. Nun möchte ich dir gerne zeigen wie du zwei extern angeschlossene LEDs zum wechselblinken bringen kannst.
Du benötigst für den Aufbau 2 LEDs (Farbe egal) sowie zwei 220 Ohm Widerstände.
Aufbau der Schaltung für das Wechselblinken zweier LEDs
Quellcode
from machine import Pin from time import sleep led1 = Pin(17, Pin.OUT) led2 = Pin(16, Pin.OUT) def resetLeds(): led1.value(0) led2.value(0) def lightUpLed(led): resetLeds() led.value(1) sleep(0.25) while True: lightUpLed(led1) lightUpLed(led2)
Video
Aufbau einer Ampelschaltung
Wollen wir mit einer kleinen Ampelschaltung fortsetzen.
Die Ampelphasen sind wie folgt:
Wir starten also als erstes mit grün, dann auf gelb, rot sowie auf rot & gelb. Danach geht es wieder von vorne los. Also eigentlich recht simple.
Du kannst dir auch ein entsprechendes Modul auf ebay.de für wenig Geld kaufen* (2,65 € inkl. Versandkosten) mit welchem du das ganze mit 8 mm LEDs lösen kannst.
Hinweis von mir: Die mit einem Sternchen (*) markierten Links sind Affiliate-Links. Wenn du über diese Links einkaufst, erhalte ich eine kleine Provision, die dazu beiträgt, diesen Blog zu unterstützen. Der Preis für dich bleibt dabei unverändert. Vielen Dank für deine Unterstützung!
Aufbau der Ampelschaltung
Für diese Schaltung benötigen wir 3 verschiedenfarbige LEDs sowie 3 220 Ohm Widerstände und ein Breadboard.
Aufbau der Schaltung
Quellcode
from machine import Pin from time import sleep ledRot = Pin(18, Pin.OUT) ledGelb = Pin(17, Pin.OUT) ledGruen = Pin(16, Pin.OUT) def resetLeds(): ledRot.value(0) ledGelb.value(0) ledGruen.value(0) def lightUpLed(*led): resetLeds() for l in led: l.value(1) sleep(1) while True: lightUpLed(ledGruen) lightUpLed(ledGelb) lightUpLed(ledRot) lightUpLed(ledGelb, ledRot)
Hallo, schöne Anleitung. IMHO fehlen in dem jeweiligen Bild “Aufbau der Schaltung” die Widerstände.
Viele Grüße
Hi,
Danke für den Hinweis, ja das stimmt, werde ich ASAP ändern.
Gruß,
Stefan Draeger
Hallo Stefan, ich habe noch einen Raspi Pico gefunden und deine Tutorials begonnen nachzubauen.
Leider bekomme ich schon bei den “blinkenden 2 LEDs” einen Syntax-Error in der Zeile 8: led1.value(0)
Ich habe das Programm nun anders geschrieben und dann ging es:
from machine import Pin
from time import sleep
led1 = Pin(17, Pin.OUT)
led2 = Pin(16, Pin.OUT)
while True:
led1.on()
led2.off()
sleep(0.5)
led1.off()
led2.on()
sleep(1)
Gleiches Problem auch bei der “Ampelschaltung”.
Hier habe ich das Programm so geändert:
from machine import Pin
from time import sleep
ledRot = Pin(18, Pin.OUT)
ledGelb = Pin(17, Pin.OUT)
ledGruen = Pin(16, Pin.OUT)
while True:
ledRot.on()
sleep(5)
ledGelb.on()
sleep(1)
ledRot.off()
ledGelb.off()
ledGruen.on()
sleep(5)
ledGruen.off()
ledGelb.on()
sleep(1)
ledGelb.off()
Woran könnte es liegen?
Viele Grüße ULLI
Hi,
ich habe meinen Pi Pico mit Micropython in der neuen Version geflasht und kann beide Versionen verwenden.
Das Ganze ist auch in der offiziellen Dokumentation (https://docs.micropython.org/en/latest/library/machine.Pin.html) so beschrieben.
Ggf. hast du eine sehr alte Version von Micropython auf deinem Board.
Gruß, Stefan