hallo
ich habe einen led Strip um meinen Tisch, den habe ich so programmiert das er nach dem Beat meiner musik leuchtet. Nur leider hängt sich das Programm nach ca 5-10 sekunden auf. Könnt ihr mir helfen?
Hier der code:
#include <Arduino.h>
#include <FastLED.h>
#define ledStrip 9
#define LED 80
unsigned int startLedR1 = 10;
unsigned int startLedR2 = 25;
unsigned int startLedL1 = 47;
unsigned int startLedL2 = 60;
//Colors
#define wave1c 100, 0, 255
#define wave2c 0, 0, 255
#define wave3c 0, 100, 255
#define wave4c 0, 200, 50
#define wave5c 0, 50, 200
#define black 0, 0, 0
//stage loudness
const int stage1 = 6;
const int stage2 = 10;
const int stage3 = 15;
const int stage4 = 20;
const int stage5 = 25;
const int stage6 = 30;
//moving loudness
const int loundnessLeft = 9;
const int loundnessRight = 19;
//ini Stage1
unsigned int stage11;
unsigned int Stage11;
unsigned int stage12;
unsigned int Stage12;
unsigned int stage13;
unsigned int Stage13;
unsigned int stage14;
unsigned int Stage14;
//ini Stage2
unsigned int stage21;
unsigned int Stage21;
unsigned int stage22;
unsigned int Stage22;
unsigned int stage23;
unsigned int Stage23;
unsigned int stage24;
unsigned int Stage24;
//ini Stage3
unsigned int stage31;
unsigned int Stage31;
unsigned int stage32;
unsigned int Stage32;
unsigned int stage33;
unsigned int Stage33;
unsigned int stage34;
unsigned int Stage34;
//ini Stage 4
unsigned int stage41;
unsigned int Stage41;
unsigned int stage42;
unsigned int Stage42;
unsigned int stage43;
unsigned int Stage43;
unsigned int stage44;
unsigned int Stage44;
//ini Stage 5
unsigned int stage51;
unsigned int Stage51;
unsigned int stage52;
unsigned int Stage52;
unsigned int stage53;
unsigned int Stage53;
unsigned int stage54;
unsigned int Stage54;
//moving direction
bool Left = false;
bool Right = true;
unsigned int BeatLVL;
unsigned int sample;
unsigned int peakToPeak;
const int Window = 50;
const int sampleWindow = 10; //Sample window width in mS (50 mS = 20Hz)
CRGB leds[LED];
void setup()
{
FastLED.addLeds<NEOPIXEL, ledStrip >(leds, LED);
Serial.begin(9600);
}
void sensorLesen()
{
unsigned long startMillis= millis(); // Start of sample window
peakToPeak = 0; // peak-to-peak level
unsigned int signalMax = 0;
unsigned int signalMin = 1023;
// collect data for 50 mS
while (millis() - startMillis < sampleWindow)
{
sample = analogRead(4);
if (sample < 1023) // toss out spurious readings
{
if (sample > signalMax)
{
signalMax = sample;
}
else if (sample < signalMin)
{
signalMin = sample;
}
}
}
peakToPeak = signalMax - signalMin; // max - min = peak-peak amplitude
Serial.println(peakToPeak);
}
void WriteLeds()
{
//Stage 1
stage11 = startLedL1 + 1;
Stage11 = startLedL1 - 1;
stage12 = startLedL2 + 1;
Stage12 = startLedL2 - 1;
stage13 = startLedR1 + 1;
Stage13 = startLedR1 - 1;
stage14 = startLedR2 + 1;
Stage14 = startLedR2 - 1;
//Stage 2
stage21 = startLedL1 + 2;
Stage21 = startLedL1 - 2;
stage22 = startLedL2 + 2;
Stage22 = startLedL2 - 2;
stage23 = startLedR1 + 2;
Stage23 = startLedR1 - 2;
stage24 = startLedR2 + 2;
Stage24 = startLedR2 - 2;
//Stage 3
stage31 = startLedL1 + 3;
Stage31 = startLedL1 - 3;
stage32 = startLedL2 + 3;
Stage32 = startLedL2 - 3;
stage33 = startLedR1 + 3;
Stage33 = startLedR1 - 3;
stage34 = startLedR2 + 3;
Stage34 = startLedR2 - 3;
//Stage 4
}
void writeLeds1()
{
stage41 = startLedL1 + 4;
Stage41 = startLedL1 - 4;
stage42 = startLedL2 + 4;
Stage42 = startLedL2 - 4;
stage43 = startLedR1 + 4;
Stage43 = startLedR1 - 4;
stage44 = startLedR2 + 4;
Stage44 = startLedR2 - 4;
//Stage 5
stage51 = startLedL1 + 5;
Stage51 = startLedL1 - 5;
stage52 = startLedL2 + 5;
Stage52 = startLedL2 - 5;
stage53 = startLedR1 + 5;
Stage53 = startLedR1 - 5;
stage54 = startLedR2 + 5;
Stage54 = startLedR2 - 5;
}
void waveOn()
{
leds[startLedL1]= CRGB(100, 0, 255);
leds[startLedL2]= CRGB(100, 0, 255);
leds[startLedR1]= CRGB(100, 0, 255);
leds[startLedR2]= CRGB(100, 0, 255);
FastLED.show();
}
void right()
{
if(Left == false)
{
if(Right == true)
{
//LEDS OFF
leds[startLedL1]= CRGB(black);
leds[startLedL2]= CRGB(black);
leds[startLedR1]= CRGB(black);
leds[startLedR2]= CRGB(black);
leds[stage11]=CRGB(black);
leds[Stage11]=CRGB(black);
leds[stage12]=CRGB(black);
leds[Stage12]=CRGB(black);
leds[stage13]=CRGB(black);
leds[Stage13]=CRGB(black);
leds[stage14]=CRGB(black);
leds[Stage14]=CRGB(black);
leds[stage21]=CRGB(black);
leds[Stage21]=CRGB(black);
leds[stage22]=CRGB(black);
leds[Stage22]=CRGB(black);
leds[stage23]=CRGB(black);
leds[Stage23]=CRGB(black);
leds[stage24]=CRGB(black);
leds[Stage24]=CRGB(black);
leds[stage31]=CRGB(black);
leds[Stage31]=CRGB(black);
leds[stage32]=CRGB(black);
leds[Stage32]=CRGB(black);
leds[stage33]=CRGB(black);
leds[Stage33]=CRGB(black);
leds[stage34]=CRGB(black);
leds[Stage34]=CRGB(black);
startLedL1++;
startLedL2++;
startLedR1++;
startLedR2++;
}
}
}
void left()
{
if(Left == true)
{
if(Right == false)
{
//LEDS OFF
leds[startLedL1]= CRGB(black);
leds[startLedL2]= CRGB(black);
leds[startLedR1]= CRGB(black);
leds[startLedR2]= CRGB(black);
leds[stage11]=CRGB(black);
leds[Stage11]=CRGB(black);
leds[stage12]=CRGB(black);
leds[Stage12]=CRGB(black);
leds[stage13]=CRGB(black);
leds[Stage13]=CRGB(black);
leds[stage14]=CRGB(black);
leds[Stage14]=CRGB(black);
leds[stage21]=CRGB(black);
leds[Stage21]=CRGB(black);
leds[stage22]=CRGB(black);
leds[Stage22]=CRGB(black);
leds[stage23]=CRGB(black);
leds[Stage23]=CRGB(black);
leds[stage24]=CRGB(black);
leds[Stage24]=CRGB(black);
leds[stage31]=CRGB(black);
leds[Stage31]=CRGB(black);
leds[stage32]=CRGB(black);
leds[Stage32]=CRGB(black);
leds[stage33]=CRGB(black);
leds[Stage33]=CRGB(black);
leds[stage34]=CRGB(black);
leds[Stage34]=CRGB(black);
startLedL1--;
startLedL2--;
startLedR1--;
startLedR2--;
}
}
}