3.3 RGB LED-Streifen

WS2812 ist eine intelligente LED-Lichtquelle, bei der die Steuerschaltung und der RGB-Chip in einem 5050-Komponentenpaket integriert sind. Sie enthält eine intelligente digitale Port-Datenverriegelung und eine Signalformungsverstärkungs-Antriebsschaltung. Zusätzlich verfügt sie über einen präzisen internen Oszillator und einen programmierbaren Konstantstromregler, der effektiv die Farbkonsistenz der einzelnen Pixel gewährleistet.

Das Datenübertragungsprotokoll verwendet den einzelnen NZR-Kommunikationsmodus. Nach dem Einschalten des Pixels empfängt der DIN-Port Daten vom Controller. Das erste Pixel sammelt die ersten 24-Bit-Daten und sendet sie an die interne Datenverriegelung. Die weiteren, durch die interne Signalformungsverstärkung geformten Daten werden durch den DO-Port zum nächsten Kaskadenpixel gesendet. Nach der Übertragung für jedes Pixel verringert sich das Signal um 24 Bit. Das Pixel verwendet die automatische Signalumformungstechnologie, wodurch die Anzahl der kaskadierten Pixel nur von der Geschwindigkeit der Signalübertragung abhängt.

Benötigte Komponenten

Für dieses Projekt werden folgende Komponenten benötigt.

Ein vollständiges Kit ist definitiv praktisch, hier ist der Link:

Bezeichnung

TEILE IM KIT

LINK

Kepler Kit

450+

Kepler Kit

Sie können die Komponenten auch einzeln über die folgenden Links erwerben.

SN

KOMPONENTE

ANZAHL

LINK

1

Raspberry Pi Pico W

1

BUY

2

Micro-USB-Kabel

1

3

Steckbrett

1

BUY

4

Jumperkabel

Mehrere

BUY

5

WS2812 RGB 8-LED-Streifen

1

BUY

Schaltplan

sch_ws2812

Verkabelung

wiring_ws2812

Warnung

Ein Punkt, den Sie beachten müssen, ist der Strom.

Obwohl der LED-Streifen mit beliebig vielen LEDs am Pico W betrieben werden kann, ist die Leistung seines VBUS-Pins begrenzt. Hier verwenden wir acht LEDs, was sicher ist. Wenn Sie jedoch mehr LEDs verwenden möchten, benötigen Sie eine separate Stromversorgung.

Code

Bemerkung

  • Öffnen Sie die Datei 3.3_rgb_led_strip.py im Verzeichnis kepler-kit-main/micropython oder kopieren Sie diesen Code in Thonny und klicken Sie auf „Aktuelles Skript ausführen“ oder drücken Sie einfach F5.

  • Vergessen Sie nicht, den Interpreter „MicroPython (Raspberry Pi Pico)“ in der unteren rechten Ecke auszuwählen.

  • Für detaillierte Anleitungen siehe Code direkt öffnen und ausführen.

  • Hier benötigen Sie die Bibliothek ws2812.py, prüfen Sie, ob sie auf dem Pico W hochgeladen wurde. Eine detaillierte Anleitung finden Sie unter 1.4 Bibliotheken auf den Pico hochladen.

import machine
from ws2812 import WS2812

ws = WS2812(machine.Pin(0),8)

ws[0] = [64,154,227]
ws[1] = [128,0,128]
ws[2] = [50,150,50]
ws[3] = [255,30,30]
ws[4] = [0,128,255]
ws[5] = [99,199,0]
ws[6] = [128,128,128]
ws[7] = [255,100,0]
ws.write()

Wählen Sie einige Ihrer Lieblingsfarben aus und zeigen Sie sie auf dem RGB-LED-Streifen an!

Wie funktioniert das?

In der ws2812-Bibliothek haben wir alle relevanten Funktionen in die Klasse WS2812 integriert.

Sie können den RGB-LED-Streifen mit dem folgenden Befehl nutzen.

from ws2812 import WS2812

Deklarieren Sie ein WS2812-Objekt mit dem Namen „ws“, das an den „Pin“ angeschlossen ist, auf dem sich „Anzahl“ RGB-LEDs befinden.

ws = WS2812(pin, number)

ws ist ein Array-Objekt, dessen Elemente den einzelnen RGB-LEDs auf dem WS2812-Streifen entsprechen, beispielsweise ist ws[0] die erste und ws[7] die achte.

Sie können jeder RGB-LED Farbwerte zuweisen. Diese Werte müssen eine 24-Bit-Farbe sein (dargestellt durch sechs Hexadezimalziffern) oder eine Liste von drei 8-Bit-RGB-Werten.

Beispiel: Der rote Wert ist „0xFF0000“ oder „[255,0,0]“.

ws[i] = color value

Verwenden Sie dann diesen Befehl, um die Farbe für den LED-Streifen zu setzen und ihn zum Leuchten zu bringen.

ws.write()

Sie können auch direkt den folgenden Befehl verwenden, um alle LEDs in derselben Farbe leuchten zu lassen.

ws.write_all(color value)

Mehr erfahren

Wir können zufällig Farben generieren und ein buntes, fließendes Licht erzeugen.

Bemerkung

  • Öffnen Sie die Datei 3.3_rgb_led_strip_2.py im Verzeichnis kepler-kit-main/micropython oder kopieren Sie diesen Code in Thonny und klicken Sie auf „Aktuelles Skript ausführen“ oder drücken Sie einfach F5.

  • Vergessen Sie nicht, den Interpreter „MicroPython (Raspberry Pi Pico)“ in der unteren rechten Ecke auszuwählen.

  • Für detaillierte Anleitungen siehe Code direkt öffnen und ausführen.

import machine
from ws2812 import WS2812
import utime
import urandom

ws = WS2812(machine.Pin(0),8)

def flowing_light():
    for i in range(7,0,-1):
        ws[i] = ws[i-1]
    ws[0] = int(urandom.uniform(0, 0xFFFFFF))
    ws.write()
    utime.sleep_ms(80)

while True:
    flowing_light()
    print(ws[0])