Pico:ed #2: LEDs steuern

In diesem Beitrag möchte ich dir zeigen, wie du am Mikrocontroller Pico:ed, LEDs anschließen und steuern kannst.

Pico:ed - programmieren von LEDs
Pico:ed – programmieren von LEDs

Im Beitrag Mikrocontroller Pico:ed habe ich dir diesen bereits vorgestellt und gezeigt wie du diesen in MicroPython programmieren kannst.

Benötigte Ressourcen

Wenn du dieses Projekt mit dem Pico:ed nachbauen möchtest, dann benötigst du:

Hinweis

Wenn du meinen Blog schon länger verfolgst, dann habe ich dir bereits am Raspberry Pi Pico gezeigt, wie man LEDs und andere Bauteile steuern kann.

Adapter / Expansionboards

Es gibt diverse Ausführungen von Adaptern / Expansionboards für den BBC micro:bit welche auch für den Pico:ed passen.

Pico:ed mit Schneidklemmenadapter
Pico:ed mit Schneidklemmenadapter

Programmieren der BuildIn LED

Auf dem Pico:ed ist bereits eine kleine LED verbaut welche sich hinter dem „i“ Punkt der Schrift „Pico:ed“ versteckt.

Diese kleine LED kann man über den Pin „LED“ erreichen / programmieren.

from picoed import *
import board
import digitalio
import time

led = digitalio.DigitalInOut(board.LED)
led.direction = digitalio.Direction.OUTPUT

while True:
    led.value = True
    time.sleep(1)
    led.value = False
    time.sleep(1)

Programmieren des Pico:ed mit LEDs

In diesem Abschnitt zeige ich dir nun, wie du kleine 5 mm LEDs an den Pico:ed anschließen und programmieren kannst.

Als Entwicklungsumgebung verwende, ich den MU Editor welchen du kostenfrei unter https://codewith.mu/ herunterladen kannst.

programmieren des Pico:ed mit CircuitPython

Beispiel 1 – aktivieren / deaktiven einer LED mit Taster A & B

Auf dem Pico:ed sind zwei Taster verbaut, welche mit A & B beschriftet sind. Diese wollen wir nun verwenden, um eine LED zu aktivieren bzw. zu deaktivieren.

In diesem Beispiel wird die Kathode der LED an den Pin 1 und die Anode über einen 220 Ohm Widerstand an GND angeschlossen.

Der Code zum Steuern der grünen LED sieht in meinem Fall wie folgt aus:

from picoed import *
import board
import digitalio

led_gruen = digitalio.DigitalInOut(board.P1)
led_gruen.direction = digitalio.Direction.OUTPUT

while True:    
    if button_a.is_pressed():
        print("A")
        led_gruen.value = True
    
    if button_b.is_pressed():
        print("B")
        led_gruen.value = False

Beispiel 2 – wechsel Blinken von zwei LEDs

Mit dem Modul „time“ und der Funktion „sleep“ können wir den Code für eine Anzahl x an Sekunden unterbrechen. Dieses wollen wir nun im zweiten Beispiel machen und zwei LED zum wechsel Blinken bringen.

Die grüne LED ist weiterhin am Pin 1 angeschlossen, es kommt nun eine zweite, gelbe LED hinzu welche am Pin 2 angeschlossen wird.

Im Code implementieren wir die gelbe LED wie die grüne, jedoch in der Endlosschleife vertauschen wir jeweils den Wert für das aktivieren / deaktivieren der LED um das wechsel Blinken zu erzeugen.

import board
import digitalio
import time

led_gruen = digitalio.DigitalInOut(board.P1)
led_gruen.direction = digitalio.Direction.OUTPUT

led_gelb = digitalio.DigitalInOut(board.P2)
led_gelb.direction = digitalio.Direction.OUTPUT

led_gruen.value = False
led_gelb.value = False

PAUSE = 0.5

while True:    
    led_gruen.value = False
    led_gelb.value = True    
    time.sleep(PAUSE)
    led_gruen.value = True
    led_gelb.value = False   
    time.sleep(PAUSE)

Beispiel 3 – Ampelschaltung

Zum Abschluss wollen wir nun eine kleine Ampelschaltung realisieren, dazu benötigen wir eine grüne, gelbe und rote LED sowie drei 220 Ohm Widerstände.

Wechsellichtzeichen nach §37 Abs.2 StVO
Wechsellichtzeichen nach §37 Abs.2 StVO

Die LEDs werden an die Pins 1,2 und 3 angeschlossen.

import board
import digitalio
import time

led_gruen = digitalio.DigitalInOut(board.P1)
led_gruen.direction = digitalio.Direction.OUTPUT

led_gelb = digitalio.DigitalInOut(board.P2)
led_gelb.direction = digitalio.Direction.OUTPUT

led_rot = digitalio.DigitalInOut(board.P3)
led_rot.direction = digitalio.Direction.OUTPUT

led_gruen.value = False
led_gelb.value = False
led_rot.value = False

PAUSE = 0.5

def lightUpLeds(ledGruen, ledGelb, ledRot):
    led_gruen.value = ledGruen
    led_gelb.value = ledGelb
    led_rot.value = ledRot

while True:    
    lightUpLeds(True, False, False)
    time.sleep(PAUSE)
    lightUpLeds(False, True, False)
    time.sleep(PAUSE)
    lightUpLeds(False, False, True)
    time.sleep(PAUSE)
    lightUpLeds(False, True, True)
    time.sleep(PAUSE)

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert