LEDs einzeln ansteuern

Gast #5049078
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
Gast #5049107
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?
#5049110
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 ;)
#5049123
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.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.