Der APA102 ist ein Controller, mit dem RGB-LED auf einem Leuchtstreifen gezielt angesteuert werden können. Er ist ausführlich im Datenblatt beschrieben. Im Gegensatz zum WS281x wird der APA102 Chipsatz über den SPI Bus angesteuert.
Für eine geringe Anzahl an LEDs liefert der RPi genügend Strom. Dabei sieht die Schaltung dann wie folgt aus:
Ab ca. 8-10 LEDs wird ein externes Netzteil mit 5V benötigt.
Damit der SPI Bus auf dem Raspiberry Pi verwendet werden kann, muss
dieser vorher aktiviert werden. Über das Konfigurationsprogramm
raspi-config
kann dies ganz leicht erledigt werden.
$ sudo raspi-config
Zuerst in die Interface Optionen:
Danach das SPI Interface auswählen:
Und im letzten Schritt SPI aktivieren:
Über den SPI Bus wird ein Datenpaket für alle LEDs gesendet. Das Paket fängt mit 4 Start-Bytes an, die 0 sein müssen. Darauf folgt für jede LED die Helligkeit, der rote Farbanteil, der grüne Farbanteil und der blaue Farbanteil. Zum Schluss folgen 4 End-Bytes.
Um die LEDs anzusteuern wird der SPI Bus benötigt. Für die Ansteuerung dessen wird die Bibliothek spidev benötigt.
$ pip3 install spidev
Mit dem Programm in apa102.py leuchten alle LEDs gleichtzeitig in voller Helligkeit in einem Cyanblau auf.