Led Effekte

Ich finde den Heartbeat immer am fazinierenden.
Warum nicht ein Heartbeat takt und dabei die Farben durchfaden.

video unten
Gruß
Der Dani

Danke Dani, hab mich gerade mal auf Udos Seite dort durchgesehen. Sieht vielversprechend aus. Hab mir den Code nicht angeschaut, werd morgen weitermachen.

Bereue es, mir Arduino Powerprojekte mit Arduino und C geholt zu haben. Ich hab bei Blinkenlights vorher nicht genauer hingesehen. Ging davon aus, das wie bei den typischen Blink Büchern alles im grässlichen delay() Code geschrieben wurde, was scheinbar nicht der Fall ist. Oreileys Kochbuch war defenitiv ein guter Griff. Mal schaun ob ich das Blinkenlights Buch auch ohne Platine kaufen kann. Ich denke eigentlich, ich habe in der HInsicht genug Arduinos (8x Uno, 1x Mega, 6x Mini Pro, 3x Mini, 2 x Leonardo) und keine Ahnung, bald um die 300 WS2812 Chips (nicht auf Stripes).

Hi, Wie wäre es einen bestehenden Effekt flexibel zu ändern. Mit fallen da z.b solche Sensoren ein http://blog.weezerle.de/2012/01/10/arduino-mit-abstandssensor-srf05/

Wenn jemand am Regal vorbeiläuft dreht z.b das Rad andersrum oder ändert die Farbe etc.

HI, danke für das Bild. Hab solche Sensoren wohl hier, aber an dem Regal kommt man normal nicht vorbei und der Sensor würde immer zu sehen sein.

Oder mit Geräuscherkennung ein Graphicanalyzer? Frequenzen auf Flasche aufteilen und dann mit Farbton und Helligkeit je nach Intensivität des Tons? Gegebenenfalls etwas aufweichen / mitteln, um die Verläufe weniger hektisch und etwas stimmungsvoller zu machen ...

Liebe Grüße

Dirk

Sowas wäre natürlich einfacher zu verstecken ;) Habe hier noch so ein Sound Detektor Modul, dieses ist wie festgestellt habe, nicht für die analoge Auswertung nutzbar, rein Digital.

Damit könnte man schon was machen. Wenn ein entsprechend lautes Geräusch kommt die Helligkeit hochfahren und wieder runter.

Wenn du ein Analogsignal hast, gibt es eine ziemlich schnelle und einfache FFT Lib: http://wiki.openmusiclabs.com/wiki/ArduinoFFT Die Fast Hartley Transformation ist nochmal etwas schneller und belegt weniger Speicher. Wobei der Unterschied bei nur 16 Bereichen nicht groß ist.

Ich selbst verwende WS2801. Habe mir als Effekte noch Strobeeffekte entworfen. Einmal Strobe2Colors. Damit kannst du 2 Farben Stroben. (Normaler Strobe machst du einfach eine Farbe als "Aus" mit 0,0,0 für RGB) Dann noch Strobe2ColorsCounted. Da werden die Anzahl Blitze mitgegeben. Und bei beiden noch ein Tastverhältnis on/off als Parameter. Ansonsten noch Random RGB, wobei für jeden Pixel einfach ein Random mit jeweils einem max zulässigen Wert pro Pixel möglich ist (Die Ausbeute ist aber nicht sonderlich berauschend) Weiterhin noch eine Timed Progressbar. Hier wird der Streifen mit angegebenem Intervall x bis zu y% mit angebener Farbe z aufgefüllt. Das ganze auch reverse. Und last but not least ProgressbarImmidiate. Funktioniert wie die TimedProgressbar, nur das der Streifen sofort beschrieben wird, ohne Intervall. Video habe ich zur Zeit kein aktuelles. Werde aber dieses WE eins erstellen und dann auf FB öffentlich posten

Hallo Wild, sind ein paar Interessante sachen bei. Strobo Effekte hab ich früher bereits verwendet, kommt defenitv wieder rein. Steuere aber selber direkt über HSV Code an, ist deutlich einfach mit der Regulierung der Helligkeit hand zu haben.

Strobo2Farben habe ich bereits dirn, jedoch mit festen Schaltzeiten (Amerikanische Polizeisirene).

Random RGB halte ich nichts von für jeden Wert (höchsten Random FadeColor). Habe ich soweit alles drin, oder das nur unterschiedliche LEDS leuchten.

Timed Progressbar versteh ich nicht ganz. Ist das so gemeint dass die LEDs die Flaschen nachheinander bis zur xten Flahsche hochfaden? Und mit ProgressbarImmidiate kann ich ebenfalls nichts anfangen.

Hier mal kurzes FB nochmal an Jürgen, wie sich der Regenbogen Aufwärts/Abwärts und Implosion/Explosion darstelle.

Ist natürlich schwer, die LEDS einzufangen, musste auf 50% Helligkeit runter, damit überhaupt was zu sehen ist. https://www.dropbox.com/s/c0zxetstorvmxsq/2013-11-22%2015.47.30.mp4

Jetzt kommt noch ein Bouncer dazu und dann sollte ich alles wichtige mit dem Regenbogen ausgereizt haben (evtl. auch noch den Heartbeat, denn ich bislang noch nicht programmiert habe);

Ja Stefan..... "Hier mal kurzes FB nochmal an Jürgen, wie sich der Regenbogen Aufwärts/Abwärts und Implosion/Explosion darstelle." das auf dem Video gefällt mir gut, Das habe ich so auch erstellt nur das bei mir mit 36 LED die ersten 12 mal von inen nach aussen laufen und die letzten 12 im gleichen Rythmus, lediglich die 12 mittleren LEd fahden von 1 bis 255 in der gleichen geschwindigkeit wie die Äusseren laufen und wecheln laufend die Farben. Das sieht echt klasse aus, ich überlege mir ob ich mir über mein Aquarium nicht auch so ein Regal erstelle. da habe ich im Moment 2 Milchglas Skulpturen aus Ägypten stehen die ich angebohrt habe und wo ich dann in jeder Skulptur eine Rainbow LED verbaut habe die im Wechsel mit den geschalteten Strömungspumpen an oder aus gehen und laufend die Farbe wechseln.

l.G.Jürgen

Ja ob nun 36 oder 9 Leds verbaut sind ist für meine Effekte egal. Diese orientieren sich an #define NUM_LEDS Wert.

Musste lediglich eine kleine Abfrage mit einbringen, ob die Anzahl gerade oder ungerade ist. Weil bei gerade fangen 2 gleiche in der Mitte an, bei ungerade 1 in der Mitte.

Bin auch noch am überlegen, mir noch weitere PCBs für die WS2812Ber zu erstellen. Hab bei mir derzeit bei dem Regal selber die eigenen PCBs im Einsatz, da ich sehr dünn und eben das haben musste. Anlöten bei den 144er Strips ist nicht so einfach. Inzwischen schleife ich mit dem Dremel unten die Flächen frei und löte dort an, das geht super.

https://www.dropbox.com/s/2pourjad8dauzjb/2013-11-22%2017.28.36.jpg https://www.dropbox.com/s/qigl617n0flxerh/2013-11-22%2017.30.20.jpg

Ja das sieht gut aus. auf die Idee bin ich auch schon gekommen von unten zu löten, mit dem abschleifen noch nicht :) aber das ist was , was ich mal ausprobiere, denn ich habe auch schwierigkeiten beim löten gehabt mit meiner UHR da ich ja jedesmal eine einzelne LED als Zeiger erweiterung haben musste und diese dan verbinden musste, war eine sch.... Arbeit aber hat geklappt.

l.G,Jürgen

Kannst auf der Rückseite auch genausehen, wo DIN und DOUT geführt sind. Dort ist eine Unterbrechung ;) Ist wohl die Begrüdung, wieso diese Strips werkseitig nicht mit einer Klebefolie (wie bei den 11er üblich) versehen waren.

Also die Progressbar ist das was man auch aus Windows kennt. Fortschrittsbalken!. Ich überschreibe also den Streifen bis zu x% mit der Farbe y. Alle z ms gehts voran bis zu der angegebenen % Marke. Immidiate heisst einfach ohne Intervall. Der Streifen wird bis zu x% sofort mit Farbe y aufgefüllt. Eine Funktion hat ich noch nicht erwähnt. RandomColor. Hier wird per Zufallsgenerator jede LED mit einer der vordefinierten Farben "befüllt". Das Ergebnis finde ich echt knallig.

https://www.facebook.com/sven.baus.1 Das ist der Link zu nem kleinen Video. Leider taugen Handycams nicht wirklich....

Guten Morgen,

vielleicht sind hier noch ein paar Effekte für Dich dabei:

http://funkboxing.com/wordpress/?p=1366

Gruß Bernd

sschultewolter:
KnightRider(in Arbeit)

Hast Du Deinen KnightRider/LarsonScanner-Effekt inzwischen fertig?

Ich habe ja seit einigen Tagen auch einen WS2811 LED-Streifen mit 10 LEDs und mich gleich mal an dem Effekt versucht.

Wie auch in meinen anderen Postings poste ich lieber “mit Code” als “mit Video”:

/* Larson Scanner by 'jurs' for German Arduino Forum
   Library needed: FastSPI_LED2
   Hardware needed: WS2811/WS2812 LED stripe
   
   Creates LED effect of a Larson Scanner like the one used for the 
   car K.I.T.T. in the TV series "Knight Rider" and for the 
   Cylons in the motion picture "Battlestar Galactica"
   */

#include <FastSPI_LED2.h>

#define NUM_LEDS 10    // number of LEDs in WS2811/WS2812 stripe
#define RGBORDER GRB   // internal RGB order of WS2811/WS2812 stripe
#define DATA_PIN 2     // data pin used on Arduino Board
#define PHASEDELAY 80  // milliseconds between phases
#define REDVAL    128  // 0..255 (red value of LED)
#define GREENVAL    0  // 0..255 (green value of LED)
#define BLUEVAL     0  // 0..255 (blue value of LED)


CRGB leds[NUM_LEDS];

void larsonScanner(int ledcount, byte r, byte g, byte b)
{
  static int led1=0;
  static boolean reverse=false;
  int i;
  for(i=0;i<ledcount;i++) leds[i] = CRGB(0,0,0); // clear led array
  if (reverse) led1--; 
  else led1++;
  if (led1<0 ){
    led1=0; 
    reverse=!reverse;
  }
  if (led1>=ledcount){
    led1=ledcount-1; 
    reverse=!reverse;
  }
  // full brightness for the middle pixel
  leds[led1] = CRGB(r, g, b); 
  // reduce the brightness for neighbor pixels 
  if (led1+1<ledcount) leds[led1+1]= CRGB(r/2, g/2, b/2); 
  if (led1-1>=0) leds[led1-1]= CRGB(r/2, g/2, b/2);
  // reduce the brightness even more for second neighbor pixels  
  if (led1+2<ledcount) leds[led1+2]= CRGB(r/4, g/4, b/4);
  if (led1-2>=0) leds[led1-2]= CRGB(r/4, g/4, b/4);
  FastLED.show();
}


void setup()
{
  FastLED.addLeds<WS2811, DATA_PIN, RGBORDER>(leds, NUM_LEDS); 
}

void loop()
{
  static unsigned long time=millis();
  if (millis()-time>PHASEDELAY) 
  {
    time=millis();
    larsonScanner(NUM_LEDS, REDVAL, GREENVAL, BLUEVAL);
  }
  // put the rest of your code here
}

Der Code läuft auf LED-Streifen beliebiger Länge, obwohl er eigentlich für kürzere LED-Streifen mit z.B. 10 LEDs vorgesehen ist. Und der Effekt läuft durch die Verwendung statischer Variablen in der Funktion ohne zusätzliches “delay()”, sondern er wird einfach von der loop aus regelmäßig aufgerufen. Die Effektfarbe ist nicht auf rot beschränkt, sondern es sind beliebige RGB-Farben möglich.

Mit kleinen Erweiterungen im Code könnte man den Effekt z.B. auch mit wechselnden Farben laufen lassen, z.B. dass im Zeitverlauf der Effekt langsam durch alle Regenbogenfarben wechselt.

Du kannst ja ggf. mal mit Deinem eigenen Code vergleichen.

Das hier ist nur ein relativ einfacher Code mit “springenden” LEDs, die nicht weich überblendet werden. Aber dadurch, dass die Helligkeit der beiden Rand-LEDs zum Rand des Effekts hin abfällt, sieht es dann doch einigermaßen “smooth” aus.

Mit weichen Überblendungen zwischen den einzelnen LED-Weiterschaltungen wäre es dann gleich deutlich mehr Code, würde aber sicherlich deutliche optische Vorteile bringen, wenn man den Effekt sehr langsam laufen lassen möchte.

Sieht trotz fehlenden Fades ganz ordentlich aus. Aber nein, hatte noch nicht am Knightrider weiter gemacht, werd mich heut abend mal ransetzen.

Macht es vielleicht nicht Sinn, direkt HSV anstatt RGB zu nutzen? Wenn es darum geht, nur kräftige Farben zu verwenden, brauchste nur einen Wert. CHSV(hue, 255, 255);

Hallo Jurs,
Es steht mir nicht zu deinen Code zu kritisieren, es ist auch keine solche.

 for(i=0;i<ledcount;i++) leds[i] = CRGB(0,0,0); // clear led array

Kann man das array nicht so schneller leeren ?

memset(leds, 0, ledcount*3);

Das kommt auf den Compiler an. Idealerweise ist es schneller, aber nicht unbedingt. Je nach Compiler und wie der optimiert, verwendet der dafür inline Code (was natürlich am besten ist), oder ebenfalls eine Schleife. Es gibt auch Compiler, die die for-Schleife weg-optimieren, so dass am Ende der gleiche Code rauskommt.