erste-farben
Bauteil: WS2812B LED-Strip · Kategorie: output
Den Strip zum Leuchten bringen und die ersten LEDs in festen Farben einfaerben. Erstes Sample - die Verkabelung gilt fuer alle Strip-Samples.
Material
| Anzahl | Bauteil |
|---|---|
| 1 | micro:bit V2.2 |
| 1 | WS2812B LED-Strip (5 V) |
| 1 | Batteriebox 3x 1.5 V (4,5 V) oder 5-V-Netzteil |
| 3 | Jumperkabel / JST-SM-Pigtail |
Masse fuers CAD: ../../../../hardware/output/ws2812b-led-strip/
Verkabelung
Batteriebox 4.5V LED-Strip (DIN-Ende)
rot (+) --------------> 5V
schwarz (-) --+--------> GND
|
+--------> micro:bit GND (gemeinsame Masse!)
micro:bit P0 -----------> DIN
Am Ende anschliessen, wo die Pfeile in den Strip zeigen. Nach den Pad-Beschriftungen gehen, nicht nach Kabelfarbe. Details und Strom: Bauteil-README.
Foto der Verkabelung
Nach dem Test ein Foto in wiring/ ablegen und hier einbinden:
Wie der Code funktioniert
np = neopixel.NeoPixel(pin0, ANZAHL)-ANZAHLauf die echte LED-Zahl deines Strips setzen.np[i] = (r, g, b)setzt die Farbe der LEDiim Speicher (0..255 pro Kanal).- Erst
np.show()schickt alle Farben an den Strip. - Die Farbwerte sind klein (max 60), damit der Strom niedrig bleibt.
Programm
Ganzer Code, Quelle main.py (hier automatisch eingefuegt):
# Sample: erste-farben (WS2812B / NeoPixel LED-Strip)
# Board: BBC micro:bit V2.2
# Sprache: MicroPython
#
# Ziel: Den LED-Strip zum Leuchten bringen und die ersten LEDs einfaerben.
#
# --------------------------------------------------------------------------
# Verkabelung (WS2812B braucht ~5 V - NICHT den 3V-Pin!)
# --------------------------------------------------------------------------
# Strip DIN / DI / DATA -> P0
# Strip 5V / VCC / + -> + der Batteriebox (3x 1.5 V = 4.5 V) oder 5V-Netzteil
# Strip GND / - -> - der Batteriebox UND micro:bit GND (gemeinsame Masse!)
#
# Am Strip-Ende anschliessen, wo die Pfeile WEG zeigen (Dateneingang).
# Nach den Pad-Beschriftungen gehen, nicht nach der Kabelfarbe.
# --------------------------------------------------------------------------
from microbit import *
import neopixel
ANZAHL = 8 # <-- Anzahl LEDs auf DEINEM Strip eintragen
np = neopixel.NeoPixel(pin0, ANZAHL) # Datenleitung an P0
# Farbe = (rot, gruen, blau), je 0..255.
# STROM: eine LED auf (255,255,255) zieht ~60 mA. Fuer Tests klein halten.
farben = [
(60, 0, 0), # rot
(0, 60, 0), # gruen
(0, 0, 60), # blau
(60, 60, 0), # gelb
(60, 0, 60), # magenta
(0, 60, 60), # cyan
(40, 40, 40), # weiss (gedimmt)
]
for i in range(ANZAHL):
np[i] = farben[i % len(farben)]
np.show() # erst show() schickt die Farben an den Strip
while True:
sleep(1000)
Auf den micro:bit uebertragen
https://python.microbit.org/v/3 -> Code einfuegen -> Connect -> Send to micro:bit. Details: ../../../../docs/setup.md.
Erwartetes Verhalten
- Nach dem Start leuchten die LEDs in der Reihenfolge rot, gruen, blau, gelb, magenta, cyan, weiss - und dann wieder von vorne.
- Leuchtet nichts:
GND-Bruecke pruefen,DIN-Ende (Pfeile) pruefen,ANZAHLpruefen. - Falsche Farben (z. B. rot statt gruen): normal fuer manche Klone - im Code die Reihenfolge anpassen oder als “GRB vs RGB” hinnehmen.
Moegliche Erweiterungen
- ganzen Strip in einer Farbe:
for i in range(ANZAHL): np[i] = (0, 30, 0) - Farbe per Knopf A/B wechseln
- Helligkeit langsam auf- und abblenden