#include #ifdef __AVR__ #include #endif // Which pin on the Arduino is connected to the NeoPixels? const uint8_t PIN = 6; // make sure to set this to the correct PixelPin, ignored for Esp8266 // How many NeoPixels are attached to the Arduino? const uint16_t NUMPIXELS = 300; // When we setup the NeoPixel library, we tell it how many pixels, and which pin to use to send signals. // Note that for older NeoPixel strips you might need to change the third parameter--see the strandtest // example for more information on possible values. Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800); //*************************************************************************************************************** uint16_t i; // Variable allgemein uint16_t j; // Variable allgemein uint16_t LEDtrigger [NUMPIXELS]; // Hunderter Stelle=Nr.Farbe, Einer+Zehner Stelle=Lfd LED-Dimm-Stufe uint16_t MerkeMillis; // Gemerkter Wert 'millis' für Trigger uint16_t JetztMillis; // Momentanwert 'millis' uint32_t randNumber; // Zufallszahl byte Farbe; // Rot=1, Grün=2, Blau=3 const byte RtGnd = 13; // Rotwert LED für Grundfarbe Warmweiß const byte RtMax = 193; // Rotwert LED bei Aufblendung (max 255) const byte RtStp = (RtMax-RtGnd)/10; // Stepwert für Aufblendung const byte GnGnd = 6; // Grünwert LED für Grundfarbe Warmweiß const byte GnMax = 136; // Grünwert LED bei Aufblendung (max 255) const byte GnStp = (GnMax-GnGnd)/10; // Stepwert für Aufblendung const byte BlGnd = 3; // Blauwert LED für Grundfarbe Warmweiß const byte BlMax = 243; // Blauwert LED bei Aufblendung (max 255) const byte BlStp = (BlMax-BlGnd)/10; // Stepwert für Aufblendung //**************************************************************************************************************** void setup() { // This is for Trinket 5V 16MHz, you can remove these three lines if you are not using a Trinket #if defined (__AVR_ATtiny85__) if (F_CPU == 16000000) clock_prescale_set(clock_div_1); #endif // End of trinket special code pixels.begin(); // This initializes the NeoPixel library. for(i=0;i=20) { // Häufigkeit: alle 20 ms irgendeine neue LED triggern MerkeMillis = JetztMillis; randomSeed(JetztMillis-analogRead(0)); randNumber = random(NUMPIXELS); // Zufalls-LED im Bereich von 0-NUMPIXELS if (LEDtrigger[randNumber]==0) { // nur LEDs triggern, die im Ruhezustand sind if (j==0) LEDtrigger[randNumber] = 100; // Rot if (j==1) LEDtrigger[randNumber] = 200; // Grün if (j==2) LEDtrigger[randNumber] = 300; // Blau j = j + 1; // immer abwechselnd R/G/B if (j>2) j=0; } } for (i=0;i 0) { // diese LED ist gerade im Dimmzyklus Farbe=LEDtrigger[i] / 100; // Farbe = 100er Stelle LEDtrigger[i] = LEDtrigger[i] + 1; // Dimmstufe für diese LED erhöhen if (Farbe==1) { //ROT if (LEDtrigger[i] % 100 > 10) { pixels.setPixelColor(i, pixels.Color(RtGnd + (20 - LEDtrigger[i] % 100) * RtStp,GnGnd,BlGnd)); } else { pixels.setPixelColor(i, pixels.Color(RtGnd + (LEDtrigger[i] % 100 * RtStp),GnGnd,BlGnd)); } pixels.show(); if (LEDtrigger[i] % 100>19) LEDtrigger[i] = 0; } if (Farbe==2) { //GRÜN if (LEDtrigger[i] % 100 > 10) { pixels.setPixelColor(i, pixels.Color(RtGnd,GnGnd + (20 - LEDtrigger[i] % 100) * GnStp,BlGnd)); } else { pixels.setPixelColor(i, pixels.Color(RtGnd,GnGnd + (LEDtrigger[i] % 100 * GnStp),BlGnd)); } pixels.show(); if (LEDtrigger[i] % 100>19) LEDtrigger[i] = 0; } if (Farbe==3) { //Blau if (LEDtrigger[i] % 100 > 10) { pixels.setPixelColor(i, pixels.Color(RtGnd,GnGnd,BlGnd + (20 - LEDtrigger[i] % 100) * BlStp)); } else { pixels.setPixelColor(i, pixels.Color(RtGnd,GnGnd,BlGnd + (LEDtrigger[i] % 100 * BlStp))); } pixels.show(); if (LEDtrigger[i] % 100>19) LEDtrigger[i] = 0; } } } }