Integration LED Strip und Ring mit NeoPixel

Vielleicht hilft dir der weiter

Der müsste sich auf die Version von barni beziehen (ob es Anpassungen gab musst du dort sonst mal nachlesen).
Auf dem Plan ist allerdings auch ganz viel drauf, was dich nicht betriftt.

Alles klar danke. Guck ich mir ma an

Hallo zusammen,

die Erweiterung war ein Sommerprojekt vor 2 Jahren. Da die Tonuinos von meinen Kindern problemlos laufen, habe ich das Projekt ruhen lassen (zumindest bis sich wieder eine Gelegenheit findet erneut einen bauen zu können). Finde es aber schön, dass die Erweiterung auf Interesse stößt.

Dadurch das sich bei meiner Code Erweiterung bei jedem Durchlauf nur der Wert der Variablen ändert, war meine Hoffnung, dass die Erweiterung auch bei Updates funktioniert. Sollte also ausreichen die paar Zeilen in die aktuelle Version zu kopieren.

Auf jeden Fall ne cooles Sache :slight_smile: hab deine paar Zeilen in den aktuellen Code rein gesetzt das funzt zumindest beim kompilieren. Und ich werd auch barnis Code mal ausprobieren. Kompilieren kann ich den auch. Und Für jeden Pin ne eigene led Leuchte genauso auch für die Status led. Denke das sollte funzen :slight_smile: warte jetzt nur noch sehnsüchtig auf die Materialien. Fehlt noch der Lautsprecher und der Ring. Dann kanns los gehen :slight_smile:

Moin.
Also bei mir sind die Statusleds extra. Die haben nichts mit dem Neopixelring zu tun. Der visualisiert das aber auch, wenn du zum Beispiel lauter oder leiser machst. Die Taster blinken halt in der entsprechenden Farbe.
Brauchen tust du das nicht zwingend. Einfach ignorieren, wenn du normale Taster nutzt.
Weiß nicht mal mehr, ob ich das zum auskommentieren drin habe, so müsstest du das nicht mal zwingend mitkompilieren. :thinking:

Achso. Ok gut. So hatte ich das jetzt auch verstanden.pin 5 ist ne Status led. ( Da hatte ich eigentlich vor einen ausschalter zwischen die 5 V zu setzen.) Pin 7 und 8 sind für led taster quasi lauter leiser. Und der Ring singalisiert lauter und leiser so oder so. Und der Ring is auf Pin 6 angeschlossen. Ich hab nur nen ring mit 12 led und Würde der mit 12 led auch funzen, wenn ich in deinem Code die 24 mit ner 12 austausche? Wenn nicht halb so wild…nen 24 er Ring hab ich schon bestellt zur Not ^^

Soviel ich weiss kannst du eingeben wieviel LED der Ring hat…Und die Libery rechnet das dann von alleine…mache einfach Mal…suche und 24…dann siehste ja wo steht Anzahl 24…ich habe da.dann 12 eingetragen und läuft auch super
#define LED_COUNT 16
Die Zahl gibt die Anzal der LED im Ring an…einfach auf die passende Anzahl ändern

Genau das habe ich schon gesehen. Na wenn das klappt mit einfach Zahl ändern, dann is super :slight_smile:

Genau, das kannst dann einfach ändern auf Deine „Pixel“ Anzahl

Hallo @tOn
Ich nutze in meinem Fork deine Ledanimation ohne Probleme. Sowohl AIO als auch Classic. Kannst du mir Mal schreiben für was du die unbezeichneten Variablen, i,x,y,z, verwendest? Ich würde gern noch eine Animation hinzufügen die bei schwachem Akku ein rotes flashlight ca im Sekundentakt aufblitzen lässt. Gruß Thomas

1 „Gefällt mir“

Hallo Thomas,
durch eine Änderung bspw. Lautstärke wird eine Variable geändert.
Die unbenannten variablen dienen nur zum zählen (erhöhen der Variable) eines Durchlaufes und nach einem gewissen Ablaufes sich dann eine andere Variable ändert, wodurch die Animation bspw. wieder verlassen wird. Ist ein guter Einwand, hätte ich wohl damals direkt mit benennen können.
Gruß Thomas

Ich habe vor kurzem auch einen Neopixel Ring bei einer meiner Boxen integriert und mir den Code aus @Thomas-Lehnert Always Queue adaptiert (Code s. u.A. hier). Beim Aufräumen und Verstehen des Codes (inkl. der von @tON stammenden Animationen), ist mir aufgefallen, dass einige Zählvariablen genau nix machen, außer den Prozessor für eine Zeit zu beschäftigen. Bspw.:

  x = 0;
  do
  {
    for (i = 0; i < strip.numPixels(); i++)
    {
      lsrColorR[i] = (lsrColors >> 16 & 0xFF);
      lsrColorG[i] = (lsrColors >> 8 & 0xFF);
      lsrColorB[i] = (lsrColors & 0xFF);
    }
    x++;
  }
  while (x < strip.numPixels());

Hier macht die X Variable nichts. Sprich man kann auch einfach schreiben

    for (i = 0; i < strip.numPixels(); i++)
    {
      lsrColorR[i] = (lsrColors >> 16 & 0xFF);
      lsrColorG[i] = (lsrColors >> 8 & 0xFF);
      lsrColorB[i] = (lsrColors & 0xFF);
    }

Nach meinem Aufräumen und Reduzieren (ich habe die Animation bei neuem Lied entfernt), sind bei mir die Variablen X und Z komplett rausgefallen.

1 „Gefällt mir“

Mir ging es ähnlich, ich habe auch die Version von Thomas bearbeitet, aber nun animationsmäßig eigentlich alles komplett umgeschrieben. (Siehe hier) Nur das Grundgerüst von @tON und seine Idee, das delay durch mehrere Schleifendurchläufe zu ersetzen sind geblieben.