LEDs einzeln ansteuern

Gast #5049078
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
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
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
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

Eine eigene Frage? Dieser Thread ist über 9 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.