[erledigt] Welche Programm-Bibliothek für APA102 LED Streifen

Die Post sollte mir morgen einen APA102 LED Streifen (1m, 62 LED) liefern, den ich mit einem teensy 3.2 (wurde hier im Forum empfohlen, danke dafür!) mittels SPI über Level Shifter ansteuern und durch ein separates Netzteil versorgen möchte.

Ich habe noch keine Anwendung, will erst Mal ein Gefühl dafür bekommen, was ich mit wie viel Aufwand zuwege bringe. Möglicherweise soll eine Skulptur illuminiert werden. Es geht also eher um langsam fließende Bilder als um Discogeflimmer, obwohl ich das sicher auch mal probieren werde.

Welche Bibliothek ist empfehlenswert?

http://fastled.io/

Danke für die Rückmeldung, werde ich probieren!

Mit Adafruit_DotStar funktioniert der Test schon mal. :grin: Irgendwie habe ich das Gefühl, ich schaue der Schlange KaaDschungelbuch in die Augen. :o

Es hat etwas gedauert, bis ich mich aus Kaas Hypnose befreit habe, aber nun funktioniert mit diesen Einstellungen der LED-Streifen mit FastLED (Ausschnitt aus DemoReel100.ino):

#define FASTLED_FORCE_SOFTWARE_SPI
#include "FastLED.h"

FASTLED_USING_NAMESPACE
#define DATA_PIN    4
#define CLK_PIN     5
#define LED_TYPE    APA102
#define COLOR_ORDER RGB
#define SPI_HZ      24
#define NUM_LEDS    62
CRGB leds[NUM_LEDS];

void setup() {
  delay(3000); // 3 second delay for recovery
  
  FastLED.addLeds<LED_TYPE, DATA_PIN, CLK_PIN, COLOR_ORDER, SPI_HZ>(leds, NUM_LEDS).setCorrection(TypicalLEDStrip);
}

Meine Fragen:

  1. Habe ich einen Verlust durch Software-SPI?

  2. Ist die Begrenzung auf 24 MHz von Nachteil?

  1. Minimal. Kann man mit getFPS überprüfen.

  2. Das ist so die physikalische Grenze, ab welcher die APA102 langsam aussteigen. Bei langen Zuleitungen / vielen LEDs muss man mit diesem Wert runtergehen, falls Fehler aufteten. 8MHz als robuster Richtwert.
    Ein typischerweise mit 96MHz betriebener Teensy 3.x kann i.V.m. FastLED auch nicht mehr als 24 Mhz auf der Clockleitung.

Ist aber außer für POV-Anwendungen auch nicht wirklich erforderlich, die LEDs im kfps Bereich zu fahren...

Gruß,

Helmuth

Danke für die Antwort!
Dann werde ich mal auf den robusten Richtwert runtergehen und probieren, was so geht.

Weil ich ja gerne lerne: Wie funktioniert getFPS? Eine Suche ergab "Keine Ergebnisse für getFPS site:http://forum.arduino.cc gefunden" ???

Hi agmue,

wenn Du im Loop

Serial.println(LEDS.getFPS());

aufrufst, siehst Du im Serial Monitor, wie oft FastLED.show() pro Sekunde ausgeführt wird = frames per second = fps.

Ist als Debugging Tool spärlich dokumentiert, steht aber hier mit dabei.

Beste Grüße,

Helmuth

Daß es sich um eine Funktion von FastLED handelt, hatte ich übersehen :o

Danke!