Hey,
Ich habe mir ein kleines Programm geschrieben das mein LED strip nach dem Beat leuchtet, so wie ein Lauflicht. Das komische ist das die einzelnen LEDs blinken obwohl sie eigentlich leuchten sollten.
Es ist ein adressierbarer LED strip der über einen Soundsensor angesteuert wird.
Habt ihr vielleicht ne Idee woran das liegt?
Hier mein Code
#include <FastLED.h>
const int Window = 90;
const int sampleWindow = 50;
unsigned int sample;
#define c1 255, 0, 255
#define c2 100, 0, 255
#define c3 0, 0, 255
#define c4 0, 100, 255
#define c5 0, 255, 255
#define g1 0, 255, 255
#define g2 0, 255, 100
#define g3 0, 255, 0
#define g4 100, 255, 0
#define g5 255, 255, 0
#define led_strip 9
#define LED 74
#define light2 10
#define light 150
CRGB leds[LED];
void setup()
{
Serial.begin(9600);
FastLED.addLeds<NEOPIXEL, led_strip>(leds, LED);
}
void loop()
{
unsigned long startMillis= millis();
unsigned int peakToPeak = 0;
unsigned int signalMax = 0;
unsigned int signalMin = 1024;
// collect data for 50 mS
while (millis() - startMillis < sampleWindow)
{
sample = analogRead(0);
if (sample < 1024)
{
if (sample > signalMax)
{
signalMax = sample;
}
else if (sample < signalMin)
{
signalMin = sample;
}
}
}
peakToPeak = signalMax - signalMin;
Serial.println(peakToPeak);
while (millis() - startMillis < Window)
{
if (peakToPeak > 15)
{
if(peakToPeak < 60)
{
leds[20] = CRGB (c1);
leds[37] = CRGB (c1);
leds[54] = CRGB (c1);
FastLED.show(light);
}
}
if (peakToPeak > 20)
{
if(peakToPeak < 65)
{
leds[19] = CRGB (c1);
leds[21] = CRGB (c1);
leds[36] = CRGB (c1);
leds[38] = CRGB (c1);
leds[53] = CRGB (c1);
leds[55] = CRGB (c1);
FastLED.show(light);
}
}
if ( peakToPeak > 25)
{
if(peakToPeak <70)
{
leds[18] = CRGB (c2);
leds[22] = CRGB (c2);
leds[35] = CRGB (c2);
leds[39] = CRGB (c2);
leds[52] = CRGB (c2);
leds[56] = CRGB (c2);
FastLED.show(light);
}
}
if (peakToPeak > 30)
{
if(peakToPeak <75)
{
leds[17] = CRGB (c3);
leds[23] = CRGB (c3);
leds[34] = CRGB (c3);
leds[40] = CRGB (c3);
leds[51] = CRGB (c3);
leds[57] = CRGB (c3);
FastLED.show(light);
}
}
if (peakToPeak > 35)
{
if(peakToPeak <80)
{
leds[16] = CRGB (c4);
leds[24] = CRGB (c4);
leds[33] = CRGB (c4);
leds[41] = CRGB (c4);
leds[50] = CRGB (c4);
leds[58] = CRGB (c4);
FastLED.show(light);
}
}
if (peakToPeak > 40)
{
if(peakToPeak <85)
{
leds[15] = CRGB (c5);
leds[25] = CRGB (c5);
leds[32] = CRGB (c5);
leds[42] = CRGB (c5);
leds[49] = CRGB (c5);
leds[59] = CRGB (c5);
FastLED.show(light);
}
}
if (peakToPeak > 45)
{
if(peakToPeak <90)
{
leds[14] = CRGB (c4);
leds[26] = CRGB (c4);
leds[31] = CRGB (c4);
leds[43] = CRGB (c4);
leds[48] = CRGB (c4);
leds[60] = CRGB (c4);
FastLED.show(light);
}
if (peakToPeak > 50)
{
if(peakToPeak <95)
{
leds[13] = CRGB (c3);
leds[27] = CRGB (c3);
leds[30] = CRGB (c3);
leds[44] = CRGB (c3);
leds[47] = CRGB (c3);
leds[61] = CRGB (c3);
FastLED.show(light);
}
}
if (peakToPeak > 60)
{
if(peakToPeak < 100)
{
leds[12] = CRGB (c3);
leds[28] = CRGB (c3);
leds[29] = CRGB (c3);
leds[45] = CRGB (c3);
leds[46] = CRGB (c3);
leds[61] = CRGB (c3);
FastLED.show(light);
}
}
//________________
if (peakToPeak > 80)
{
leds[20] = CRGB (g1);
leds[37] = CRGB (g1);
leds[54] = CRGB (g1);
FastLED.show(light);
}
if (peakToPeak > 90)
{
leds[19] = CRGB (g1);
leds[21] = CRGB (g1);
leds[36] = CRGB (g1);
leds[38] = CRGB (g1);
leds[53] = CRGB (g1);
leds[55] = CRGB (g1);
FastLED.show(light);
}
if ( peakToPeak > 100)
{
leds[18] = CRGB (g2);
leds[22] = CRGB (g2);
leds[35] = CRGB (g2);
leds[39] = CRGB (g2);
leds[52] = CRGB (g2);
leds[56] = CRGB (g2);
FastLED.show(light);
}
if (peakToPeak > 110)
{
leds[17] = CRGB (g3);
leds[23] = CRGB (g3);
leds[34] = CRGB (g3);
leds[40] = CRGB (g3);
leds[51] = CRGB (g3);
leds[57] = CRGB (g3);
FastLED.show(light);
}
if (peakToPeak > 120)
{
leds[16] = CRGB (g4);
leds[24] = CRGB (g4);
leds[33] = CRGB (g4);
leds[41] = CRGB (g4);
leds[50] = CRGB (g4);
leds[58] = CRGB (g4);
FastLED.show(light);
}
if (peakToPeak > 130)
{
leds[15] = CRGB (g5);
leds[25] = CRGB (g5);
leds[32] = CRGB (g5);
leds[42] = CRGB (g5);
leds[49] = CRGB (g5);
leds[59] = CRGB (g5);
FastLED.show(light);
}
if (peakToPeak > 140)
{
leds[14] = CRGB (g4);
leds[26] = CRGB (g4);
leds[31] = CRGB (g4);
leds[43] = CRGB (g4);
leds[48] = CRGB (g4);
leds[60] = CRGB (g4);
FastLED.show(light);
}
}
if (peakToPeak > 150)
{
leds[13] = CRGB (g3);
leds[27] = CRGB (g3);
leds[30] = CRGB (g3);
leds[44] = CRGB (g3);
leds[47] = CRGB (g3);
leds[61] = CRGB (g3);
FastLED.show(light);
}
if (peakToPeak > 160)
{
leds[12] = CRGB (g3);
leds[28] = CRGB (g3);
leds[29] = CRGB (g3);
leds[45] = CRGB (g3);
leds[46] = CRGB (g3);
leds[61] = CRGB (g3);
FastLED.show(light);
}
//______________________________________
else
{
leds[20] = CRGB(0, 0, 0);
leds[37] = CRGB(0, 0, 0);
leds[54] = CRGB(0, 0, 0);
FastLED.show(light2);
leds[19] = CRGB(0, 0, 0);
leds[21] = CRGB(0, 0, 0);
leds[36] = CRGB(0, 0, 0);
leds[38] = CRGB(0, 0, 0);
leds[53] = CRGB(0, 0, 0);
leds[55] = CRGB(0, 0, 0);
leds[18] = CRGB(0, 0, 0);
leds[22] = CRGB(0, 0, 0);
leds[35] = CRGB(0, 0, 0);
leds[39] = CRGB(0, 0, 0);
leds[52] = CRGB(0, 0, 0);
leds[56] = CRGB(0, 0, 0);
leds[17] = CRGB(0, 0, 0);
leds[23] = CRGB(0, 0, 0);
leds[34] = CRGB(0, 0, 0);
leds[40] = CRGB(0, 0, 0);
leds[51] = CRGB(0, 0, 0);
leds[57] = CRGB(0, 0, 0);
leds[16] = CRGB(0, 0, 0);
leds[24] = CRGB(0, 0, 0);
leds[33] = CRGB(0, 0, 0);
leds[41] = CRGB(0, 0, 0);
leds[50] = CRGB(0, 0, 0);
leds[58] = CRGB(0, 0, 0);
leds[15] = CRGB(0, 0, 0);
leds[25] = CRGB(0, 0, 0);
leds[32] = CRGB(0, 0, 0);
leds[42] = CRGB(0, 0, 0);
leds[49] = CRGB(0, 0, 0);
leds[59] = CRGB(0, 0, 0);
leds[14] = CRGB(0, 0, 0);
leds[26] = CRGB(0, 0, 0);
leds[31] = CRGB(0, 0, 0);
leds[43] = CRGB(0, 0, 0);
leds[48] = CRGB(0, 0, 0);
leds[60] = CRGB(0, 0, 0);
leds[13] = CRGB(0, 0, 0);
leds[27] = CRGB(0, 0, 0);
leds[30] = CRGB(0, 0, 0);
leds[44] = CRGB(0, 0, 0);
leds[47] = CRGB(0, 0, 0);
leds[61] = CRGB(0, 0, 0);
leds[12] = CRGB(0, 0, 0);
leds[28] = CRGB(0, 0, 0);
leds[29] = CRGB(0, 0, 0);
leds[45] = CRGB(0, 0, 0);
leds[46] = CRGB(0, 0, 0);
leds[62] = CRGB(0, 0, 0);
FastLED.show(light);
}
}
}