Aus Raspberry Pi Geek 09/2025

MicroPython Teil 8: Die WS2812, bekannt als Neopixel (Seite 2)

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)

Der Autor

Martin Mohr hat die komplette Entwicklung der modernen Computertechnik live miterlebt. Nach dem Studium entwickelte er überwiegend Java-Applikationen. Mit dem Raspberry Pi erwachte seine alte Liebe zur Elektronik wieder.

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 3 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
RASPBERRY PI GEEK KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Raspberry Pi Geek bei Google Play Readly Logo
Nach oben