Listing 1
Einfaches Beispiel
import machine, neopixel np = neopixel.Neopixel(machine.Pin(26), 64) np[0] = (255, 0, 0) np[1] = (0, 255, 0) np[2] = (0, 0, 255) np[3] = (16, 0, 0) np[4] = (0, 16, 0) np[5] = (0, 0, 16) np.write()
Endlosschleife
Listing 2 enthält ein etwas komplexeres Beispiel, bei dem ein einzelner Punkt durch die zwei Ringe flitzt. Die zwei Ringe sind in Form des Unendlichkeitssymbols angeordnet. Knifflig dabei ist, dass die LED-Ringe alle gleich aufgebaut sind. Wenn man sie wie in Abbildung 1 verbindet, muss der Punkt in zwei unterschiedliche Richtungen rotieren.
Sie müssen also zuerst die LEDs von 0 bis 31 gegen den Uhrzeigersinn ansteuern, beim zweiten Ring danach die LEDs 63 bis 32 im Uhrzeigersinn. Um das zu erreichen, unterscheiden Sie die beiden Fälle mit einer if-Anweisung (fünfte Zeile) und errechnen die entsprechenden Werte aus der Laufvariablen i.
Die beiden Zeilen nach dem else-Block in Zeile 7 schalten die LEDs wieder aus. Die Modulo (%64) sorgt dafür, dass das Programm ausschließlich die Werte von 0 bis 63 nutzt, um das Array zu adressieren. Das ist notwendig, weil es bei der Berechnung der abzuschaltenden LED zu negativen Zahlen kommen kann. Die komplette Logik packen Sie schließlich in eine Endlosschleife while(True): (dritte Zeile). Die Geschwindigkeit der Neopixel passen Sie mit dem Kommando time.sleep(0.02) (vorletzte Zeile) an.
Listing 2
import machine, neopixel,time
np = neopixel.Neopixel(machine.Pin(26), 64)
while(True):
for i in range (64):
if (i<32):
np[i%64] = (0, 0, 255)
else:
np[((95-i)%64)] = (0, 0, 255)
np[(i-1)%64] = (0, 0, 0)
np[((95-i+1)%64)] = (0, 0, 0)
time.sleep(0.02)
np.write()
Fazit
Mit der in MicroPython integrierten Bibliothek fällt das Ansteuern von Neopixeln (WS2812 RGB-LED) leicht. Im Handel finden sich unterschiedliche vorgefertigte Module (Stripe, Ring oder Matrix). Dabei gestaltet sich das Adressieren der einzelnen LEDs relativ spannend. Wir halten die Neopixel für eine Bereicherung für jedes Projekt, da sie ein weites Feld von Möglichkeiten eröffnen. Wir wünschen Ihnen bis zum nächsten Teil dieser Reihe viel Spaß mit Ihrer Neopixel. (csi)
Infos
- Neopixel-Ringe bestellen: https://www.amazon.de/WS2812B-Address-Led-Module-WS2812-60Leds/dp/B0BNKS3YV5/
- Datenblatt WS2812: https://cdn-shop.adafruit.com/datasheets/WS2812B.pdf
- ESP32 DEV Kit: https://www.amazon.de/AZDelivery-unverl%C3%B6tet-Development-Nachfolgermodell-inklusive/dp/B08BTQ57ZV/
- Datenblatt 74HC125: https://www.onsemi.com/download/data-sheet/pdf/74vhc125-d.pdf





