so ist das ganze verkabeld die spannung kommt vom arduino weil des nur ein test aufbau ist
der esp bekommt seinen befehl vom home assistent bei dem er die vier io pins auf high oder low schaltet und der arduino soll dann daraufhin verschiedene programme durchlaufen lassen je nachdem welcher pin auf high ist
#include <FastLED.h>
#define light 100
#define black 0, 0, 0
#define green 0, 255, 0
#define bluegreen 0, 200, 200
#define blue 0, 0, 255
#define lila 200, 0, 200
#define red 255, 0, 0
#define orange 255, 100, 0
#define yellow 200, 200, 0
#define yellowgreen 100, 255, 0
#define ledPin 9
#define LED 40
CRGB leds[LED];
long EffectDelay = 100;
long EffectTime = 0;
//LEDS__________________________________________________________________________________
//LEDSBEAT______________________________________________________________________________
int StartLED1 = 10;
int StartLED2 = 20;
int StartLED3 = 30;
const int Sensor = A1;
unsigned int Sound = 0;
//Lautstärke
const int Stage1 = 40;
const int Stage2 = 45;
const int Stage3 = 47;
const int Stage4 = 50;
long SensorTime = 0;
long SensorDelay = 10;
//LEDSBEAT______________________________________________________________________________
//ReadESP_______________________________________________________________________________
long ReadDelay = 10;
long ReadTime = 0;
#define input_1 2
#define input_2 3
#define input_3 4
#define input_4 5
bool inputState_1 = false;
bool inputState_2 = false;
bool inputState_3 = false;
bool inputState_4 = false;
//ReadESP_______________________________________________________________________________
void setup()
{
Serial.begin(9600);
FastLED.addLeds<NEOPIXEL, ledPin>(leds, LED);
pinMode(input_1, INPUT);
pinMode(input_2, INPUT);
pinMode(input_3, INPUT);
pinMode(input_4, INPUT);
}
void loop()
{
ReadEsp();
ReadSensor();
}
void LEDs(uint16_t led1, uint16_t led2,uint16_t led3, CRGB color)
{
if(led1 < LED) leds[led1] = color;
if(led2 < LED) leds[led2] = color;
if(led3 < LED) leds[led3] = color;
FastLED.show();
}
void ReadSensor()
{
while(millis() > SensorTime + SensorDelay)
{
SensorTime = millis();
Sound = analogRead(Sensor);
// if(Sound < 1023)
// {
// if(Sound > signalMax)
// {
// signalMax = Sound;
// }
// else if(Sound < signalMin)
// {
// signalMin = Sound;
// }
// }
}
// loudness = signalMax - signalMin;
Sound = map(Sound, 0, 450, 0, 100);
Serial.println(Sound);
}
void NachBeat()
{
if(Sound > 0 && Sound < Stage1)
{
LEDs(StartLED1, StartLED2, StartLED3, CRGB(green));
LEDs(StartLED1 +1, StartLED2 +1, StartLED3 +1, CRGB(black));
LEDs(StartLED1 -1, StartLED2 -1, StartLED3 -1, CRGB(black));
LEDs(StartLED1 +2, StartLED2 +2, StartLED3 +2, CRGB(black));
LEDs(StartLED1 -2, StartLED2 -2, StartLED3 -2, CRGB(black));
LEDs(StartLED1 +3, StartLED2 +3, StartLED3 +3, CRGB(black));
LEDs(StartLED1 -3, StartLED2 -3, StartLED3 -3, CRGB(black));
LEDs(StartLED1 +4, StartLED2 +4, StartLED3 +4, CRGB(black));
LEDs(StartLED1 -4, StartLED2 -4, StartLED3 -4, CRGB(black));
}
if(Sound > Stage1 && Sound < Stage2)
{
LEDs(StartLED1 +1, StartLED2 +1, StartLED3 +1, CRGB(bluegreen));
LEDs(StartLED1 -1, StartLED2 -1, StartLED3 -1, CRGB(bluegreen));
LEDs(StartLED1 +2, StartLED2 +2, StartLED3 +2, CRGB(black));
LEDs(StartLED1 -2, StartLED2 -2, StartLED3 -2, CRGB(black));
LEDs(StartLED1 +3, StartLED2 +3, StartLED3 +3, CRGB(black));
LEDs(StartLED1 -3, StartLED2 -3, StartLED3 -3, CRGB(black));
LEDs(StartLED1 +4, StartLED2 +4, StartLED3 +4, CRGB(black));
LEDs(StartLED1 -4, StartLED2 -4, StartLED3 -4, CRGB(black));
}
if(Sound > Stage2 && Sound < Stage3)
{
LEDs(StartLED1 +2, StartLED2 +2, StartLED3 +2, CRGB(blue));
LEDs(StartLED1 -2, StartLED2 -2, StartLED3 -2, CRGB(blue));
LEDs(StartLED1 +3, StartLED2 +3, StartLED3 +3, CRGB(black));
LEDs(StartLED1 -3, StartLED2 -3, StartLED3 -3, CRGB(black));
LEDs(StartLED1 +4, StartLED2 +4, StartLED3 +4, CRGB(black));
LEDs(StartLED1 -4, StartLED2 -4, StartLED3 -4, CRGB(black));
}
if(Sound > Stage3 && Sound < Stage4)
{
LEDs(StartLED1 +3, StartLED2 +3, StartLED3 +3, CRGB(lila));
LEDs(StartLED1 -3, StartLED2 -3, StartLED3 -3, CRGB(lila));
LEDs(StartLED1 +4, StartLED2 +4, StartLED3 +4, CRGB(black));
LEDs(StartLED1 -4, StartLED2 -4, StartLED3 -4, CRGB(black));
}
if(Sound > Stage4)
{
LEDs(StartLED1 +4, StartLED2 +4, StartLED3 +4, CRGB(lila));
LEDs(StartLED1 -4, StartLED2 -4, StartLED3 -4, CRGB(lila));
}
}
void BlackColors()
{
for(int i = 0; i < LED; )
{
leds[i] = CRGB(green);
FastLED.show(light);
if(millis() > EffectTime + EffectDelay)
{
EffectTime = millis();
i++;
}
}
for(int i = LED; i >= 0; )
{
leds[i] = CRGB(black);
FastLED.show(light);
if(millis() > EffectTime + EffectDelay)
{
EffectTime = millis();
i--;
}
}
}
void Beat()
{
}
void ReadEsp()
{
inputState_1 = digitalRead(input_1);
inputState_2 = digitalRead(input_2);
inputState_3 = digitalRead(input_3);
inputState_4 = digitalRead(input_4);
if(inputState_1)
{
//Serial.println("Pin 1");
BlackColors();
}
else
{
//Serial.println("Pin 1 LOW");
}
if(inputState_2)
{
NachBeat();
//Serial.println("Pin 2");
}
else
{
//Serial.println("Pin 2 LOW");
}
if(inputState_3)
{
//Serial.println("Pin 3");
}
else
{
//Serial.println("Pin 3 LOW");
}
if(inputState_4)
{
//Serial.println("Pin 4");
}
else
{
//Serial.println("Pin 4 LOW");
}
}
type or paste code here