de:arduino:adr_rgb_led

Adressierbare RGB-LEDs

Adressierbare RGB-LEDs

Die Steuerung von RGB-LEDs erfordert 3 analoge Signale. Offensichtlich ist dies für eine große Anzahl von LEDs nicht mehr möglich, daher muss diese Aufgabe dezentralisiert werden. In den im Daisy Chain-System in Reihe geschalteten Modulen befindet sich neben jeder LED eine Steuereinheit, die vier Aufgaben gleichzeitig ausführt:

  1. Empfängt die Signalleitung von der Steuereinheit oder der vorherigen LED, trennt / wählt das entsprechende Teil aus
  2. Übergibt die Signalfolge an die nächste LED
  3. Dekodiert normalerweise 3 Bytes Farbkombinationsinformationen (1 Byte / Farbe) für insgesamt 16,8 Millionen Farbtöne
  4. Steuert die LED (Digital / PWM-Wandlung).

Die Signalübertragung ähnelt einer Standard-UART-Schnittstelle, ist es jedoch nicht. Diese Kommunikation ist extrem zeit-spezifisch, die Signalcodierung erfolgt praktisch über die Signalhaltezeiten:

WS2812 logisch 0 und 1
WS2812 logisch 0 und 1

Die Daten kommen in 24-Bit- Paketen bei den Einheiten an, die Datensätze werden durch ein 50 μs Zurücksetzen geschlossen. Jede Einheit schneidet ihren eigenen Datensatz aus dem Telegramm und überträgt nur den Rest:

Das WS2812-Datenpaket
WS2812 Telegramm abnehmend pro Einheit

Offensichtlich unterscheiden sich die folgenden Lösungen geringfügig. Derzeit ist die WS2812-Serie der Gewinner in Bezug auf das Preis-Leistungs-Verhältnis.

WS2811 Das adressierbare LED-System WS2811 ist eine verbesserte Version der WS2801-Lösung. Die dort verwendete SPI-Kommunikation, die sich als langsam erwies, wurde zu einem speziellen, zeit-basierten seriellen Protokoll vereinfacht. Die Übertragung erfolgt bei 400 oder 800 kHz. Der WS2801 verwendet 2 Datenleitungen für die Übertragung, während der WS2811 eine verwendet. Neben jeder LED befindet sich ein adressierbarer WS2811-IC, der einerseits die Farbkombination aus der Datenleitung speichert und andererseits die RGB-LED steuert.

  • WS2811 enthält IC und LED separat, während WS2812 die beiden Teile integriert
  • Die maximale Spannung des WS2811 beträgt 7 V, während die des WS2812 5,3 V beträgt
  • WS2812 ist eine verbesserte Version der 11, die Software der ICs wurde ebenfalls verbessert

WS2812

Der WS2812 ist ein WS2811-Chip, der in ein 5050 SMD LED-Panel eingebettet ist. Alle WS2812 kennen die 800-kHz-Signalübertragung, daher lohnt es sich, diese zu verwenden.

  • LED: RGB SMD LED 5050
  • Farbtöne: 256
  • Betriebsspannung: 5V
  • Leistung pro LED: 0.3W +/- 0.01%
  • 5V : Halten sich diese geregelte Spannung zwischen 5 und 7V. Bei niedrigeren Spannungspegeln nimmt die Helligkeit ab und über 7 V können die Module beschädigt werden
  • GND : 0V. Zwischen dem ersten Modul und dem Arduino ist es ratsam, einen Kondensator von 100µF bis 1000µF zwischen gnd und 5V zu installieren
  • DI : Signalleitung von der Steuerung oder dem vorherigen Modul. Ein Widerstand zwischen 220 und 470 Ω sollte ebenfalls auf der Datenleitung zwischen dem ersten Modul und dem Arduino installiert werden.
  • DO : Die Signalleitung zum nächsten Modul. Im Falle des letzten Moduls sollte es einfach frei gelassen werden.
  1. Die Module sollten einfach miteinander verbunden werden: gnd↔gnd, 5v↔5v, do↔di, die Adressierung funktioniert in der Reihenfolge der Verbindung
  2. Es wird empfohlen, einen Kondensator zwischen 100 und 1000 µF zwischen dem ersten Modul und dem Arduino zwischen gnd und 5 V zu installieren
  3. Es lohnt sich, einen 220 - 470 Ω Widerstand auf der Datenleitung zwischen dem ersten Modul und dem Arduino zu installieren
  4. Arduino Pin 4 muss an den DI des ersten Moduls angeschlossen werden. (Wenn Pin 4 nicht funktioniert, muss der Code natürlich an die Änderung übergeben werden.)

WS2812 Verdrahtung
Das obige Beispiel zeigt den Anschluss von Sparkfun WS2812-Modulen an Arduino

Die Adafruit Neopixel-Bibliothek kann hier heruntergeladen werden: https://github.com/adafruit/Adafruit_NeoPixel

Beispiel Adafruit Neopixel-Programme: https://github.com/adafruit/Adafruit_NeoPixel/tree/master/examples

In den heruntergeladenen Programmen müssen auch die Anzahl der Pins und die Anzahl der angeschlossenen LED-Module angegeben werden.

Forrás: https://learn.sparkfun.com/tutorials/ws2812-breakout-hookup-guide

Ez a klasszikus megoldás a címezhető LED-ekre. Ez még SPI kommunikációt alkalmazott, az órajelet PWM-mel állította elő és RGB csatornálat tartlamazott, az alegységeket (kvázi az RGB LED-eket) Daisy Chain rendszerben fűzte össze. Ugyanennek a megoldásnak az LPD8806 egy szabadalmaztatott és rendkívül rosszul dokumnetált változata, melyet az Adafruit integrált a rendszerébe.

Mindkét megoldás viszonylag bonyolult és lassabb, mint a WS2811/WS2812.

Lásd fent, WS2801.

  • de/arduino/adr_rgb_led.txt
  • 2022/04/21 15:00
  • ()