Forum: Mikrocontroller und Digitale Elektronik LEDs einzeln ansteuern


von Adrian B. (Gast)


Lesenswert?

Hallo allerseits,

Ich arbeite zur Zeit mit ein paar Freunden an einem Arduino-Projekt für 
unser Orientierungsemester.
Unser Plan ist es einen LED-Globus zu programmieren.
Dazu haben wir den Tipp bekommen, LEDs vom Typ "WS2812B" 
(https://www.amazon.de/WS2812-Stripe-integrierten-Controller-schwarz/dp/B00H3IX1NK/ref=sr_1_12?ie=UTF8&qid=1497614497&sr=8-12&keywords=ws2812b) 
zu benutzen.

Diese müssen wir allerdings in sehr kurzen Intervallen einzeln 
ansteuern, um einen Effekt zu erzielen und sind uns jetzt unsicher, ob 
dies bereits mit den integrierten Controllern in den LEDs möglich ist 
oder wir einen weiteren Controller zwischenschalten müssen.

Nach kurzer Recherche stieß ich auf dieses Bauteil: 
http://www.led-genial.de/DIGI-DOT-Booster-WS2812-und-SK6812-ueber-SPI-Schnittstelle-ansteuern

Meine Frage ist nun also, ob das der richtige Weg ist, und wenn nicht, 
wie wir unser Projekt stattdessen verwirklichen können?

LG
Adrian

von Nick S. (c0re)


Lesenswert?

Adrian B. schrieb:
> Diese müssen wir allerdings in sehr kurzen Intervallen einzeln
> ansteuern

Das beinhaltet absolut keine Aussage...

Adrian B. schrieb:
> Meine Frage ist nun also, ob das der richtige Weg ist,

Ja, und nein.

Adrian B. schrieb:
> wie wir unser Projekt stattdessen verwirklichen können?

Kannst du dazu etwas präziser werden?

: Bearbeitet durch User
von Adrian B. (Gast)


Lesenswert?

Danke für die schnelle Antwort!

Natürlich kann ich das:

Um den Lichtglobus verwirklichen zu können, muss sich eine 
Plexiglasscheibe mit 20 LEDs an der Kante mit 24 Hz drehen. Die LEDs 
bekommen während einer Umdrehung jeweils 52-mal die Anweisung, welchen 
Zustand sie haben sollen. Das wären dann 1040 Anweisungen pro Umdrehung 
und 24960 pro Sekunde bei 20 LEDs.

Damit dies funktioniert muss jede LED einzeln angesteuert werden können, 
weil es ja keinen Sinn ergibt, alle gleichzeitig an- und auszuschalten.

Hier ein Beispiel, wie es aussehen könnte:
https://www.youtube.com/watch?v=uFFECeyhBxY

Meine Frage ist es also, ob das mit einem LED-Streifen vom Typ "WS2812B" 
funktioniert oder ob ich noch einen Controller zwischen die LEDs und den 
Arduino schalten muss?

von Patrick J. (ho-bit-hun-ter)


Lesenswert?

Hi

Dachte, Das wird, normal, mit einer Matrix gemacht ... Multiplexen und 
so.

Die WS2812 sind LEDs mit integriertem µC.
Dieser lauscht am Din, nimmt sich die erst beste Information und 
schaltet dann auf 'Durchgang'.
Wenn an Din 'so und so lange' keine neuen Daten mehr ankommen (meine 
50ns gelesen zu haben), wird die mitgelesene Information an die LED 
weiter gegeben.

Sofern Ihr nicht so schnell mit dem Morse-Finger seid, wäre ein Sende-µC 
notwendig - ein µC, Der die Informationen zu ALLEN LEDs in die Reihe 
reinschiebt, die Pause zur Übernahme macht und bei Bedarf neue 
Informationen für den Stripe bereit hält.

Bis auf das Timing sollten sich keine größeren Probleme auftun.

MfG

PS: Ok, Globus ist wohl doch was Anderes, als Cube ;)

: Bearbeitet durch User
von Adrian B. (Gast)


Lesenswert?

Alles klar, vielen Dank!

von Conny G. (conny_g)


Lesenswert?

Wenn der Globus sich mit 24Hz dreht sind das 40ms für eine Umdrehung.
Die erforderliche Pause die Daten zu "latchen" sind 50us.
Also ist die Pause ein Tausendstel der Umdrehungen, das ist schon mal 
ok.
Der zweite Teil, eine Streifen zu übertragen dauert 20x 1.25us x 24 = 
600us.
Das ist rund ein Hunderstel der Umdrehung, genau 66.6 Pixel pro 
Umdrehung.
Wenn man maximal die Hälfte der Kugel sieht sind das 30 Pixel Breite, 20 
Pixel Höhe.
Also vom Timing her grundsätzlich machbar.
Zur Ansteuerung reicht ein Arduino, je nachdem wie aufwändig die Bilder 
erzeugt/ berechnet werden soll. Aber einfachere Motive schaffen die 
Standard Arduinos schon.

von Thomas E. (picalic)


Lesenswert?

Vergesst die WS2812 für POV-Anwendungen! Die LEDs selbst arbeiten intern 
mit einer recht bescheidenen PWM-Frequenz von ca. 400 Hz, das ist viel 
zu wenig.
Besser sind "APA102", die haben eine PWM-Frequenz von einigen kHz und 
sind auch leichter per SPI anzusteuern.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.