Hallo,
Ich baue als mein Gesellenstück ein "Fahrradblinker" bestehend aus dem Blinker mit 12 WS2812B LEDs und der Fernbedienung bestehend aus 2 Tastern (Links und Rechts).
Die Verbindung wird über 433Mhz Module realisiert.
Wenn der Linke Taster gedückt wird, sendet die Fernbedienung "2210" an den Blinker, beim rechten Taster "1998".
Der Blinker arbeitet dann die Linke oder Rechte Blink Animation ab (Wie die neuen Audi Blinker).
Testweiße habe ich das ganze mit Delay() aufgebaut:
void loop() {
if(mySwitch.getReceivedValue() == 2210){
pixels.setPixelColor(6, pixels.Color(255,255,0));
pixels.setPixelColor(7, pixels.Color(255,255,0));
pixels.show();
delay(100);
pixels.setPixelColor(6, pixels.Color(0,0,0));
pixels.setPixelColor(8, pixels.Color(255,255,0));
pixels.show();
delay(100);
pixels.setPixelColor(7, pixels.Color(0,0,0));
pixels.setPixelColor(9, pixels.Color(255,255,0));
pixels.show();
delay(100);
pixels.setPixelColor(8, pixels.Color(0,0,0));
pixels.setPixelColor(10, pixels.Color(255,255,0));
pixels.show();
delay(100);
pixels.setPixelColor(9, pixels.Color(0,0,0));
pixels.setPixelColor(11, pixels.Color(255,255,0));
pixels.show();
delay(100);
pixels.setPixelColor(10, pixels.Color(0,0,0));
pixels.setPixelColor(11, pixels.Color(0,0,0));
pixels.show();
}
if(mySwitch.getReceivedValue() == 1998){
pixels.setPixelColor(5, pixels.Color(255,255,0));
pixels.setPixelColor(4, pixels.Color(255,255,0));
pixels.show();
delay(100);
pixels.setPixelColor(5, pixels.Color(0,0,0));
pixels.setPixelColor(3, pixels.Color(255,255,0));
pixels.show();
delay(100);
pixels.setPixelColor(4, pixels.Color(0,0,0));
pixels.setPixelColor(2, pixels.Color(255,255,0));
pixels.show();
delay(100);
pixels.setPixelColor(3, pixels.Color(0,0,0));
pixels.setPixelColor(1, pixels.Color(255,255,0));
pixels.show();
delay(100);
pixels.setPixelColor(2, pixels.Color(0,0,0));
pixels.setPixelColor(0, pixels.Color(255,255,0));
pixels.show();
delay(100);
pixels.setPixelColor(1, pixels.Color(0,0,0));
pixels.setPixelColor(0, pixels.Color(0,0,0));
pixels.show();
}
mySwitch.resetAvailable();
}
funktioniert auch und sieht toll aus, aber logischerweiße gibts dabei ein dickes Problem was ich nicht gelöst bekomme, Wenn ein Taster betätigt wird, fängt der uC mit einer der beiden if schleifen an und es ist keine neueingabe möglich bis diese If schleife abgearbeitet ist.
Ich hätte es aber gerne das man sozusagen zwichen links und rechts blinken jederzeit wechseln kann.
Habe schon einiges mit Interrupts und SerialEvent probiert aber ohne Erfolg....
Hoffe hier kann mir jemand helfen
Gruß
Patrick