Hi, ich möchte eine Reihe von LEDs mit Hilfe von einem IRSensor ansteuern und möchte sie blinken lassen. Das Problem ist, dass ich nicht weiß wie man das blinken so lange aufrecht erhält bis man das nächste mal die Taste drückt um es zu stoppen...
Bei meinem momentanen Code blinkt es nureinmal auf für die gewünschte Zeit doch danach muss man wieder die Taste drücken um es erneut aufleuchten zu lassen.
#include <IRremote.h>
int RECV_PIN = 11;
IRrecv irrecv(RECV_PIN);
decode_results results;
const int p1 = 2;
const int p2 = 3;
const int p3 = 4;
const int p4 = 5;
const int p5 = 6;
const int p6 = 7;
const int p7 = 8;
const int p8 = 9;
const int p9 = 10;
int zeit = 1000;
void setup()
{
Serial.begin(9600);
irrecv.enableIRIn(); // Start the receiver
pinMode (p1, OUTPUT);
pinMode (p2, OUTPUT);
pinMode (p3, OUTPUT);
pinMode (p4, OUTPUT);
pinMode (p5, OUTPUT);
pinMode (p6, OUTPUT);
pinMode (p7, OUTPUT);
pinMode (p8, OUTPUT);
pinMode (p9, OUTPUT);
}
void loop() {
if (irrecv.decode(&results)) {
Serial.println(results.value, DEC);
if (results.value == 16718055) { //Zahl für Taste 2
digitalWrite(p1,HIGH);
digitalWrite(p2,HIGH);
digitalWrite(p3,HIGH);
digitalWrite(p4,HIGH);
digitalWrite(p5,HIGH);
digitalWrite(p6,HIGH);
digitalWrite(p7,HIGH);
digitalWrite(p8,HIGH);
digitalWrite(p9,HIGH);
delay(zeit);
digitalWrite(p1,LOW);
digitalWrite(p2,LOW);
digitalWrite(p3,LOW);
digitalWrite(p4,LOW);
digitalWrite(p5,LOW);
digitalWrite(p6,LOW);
digitalWrite(p7,LOW);
digitalWrite(p8,LOW);
digitalWrite(p9,LOW);
delay(zeit-100);
}
irrecv.resume(); // Receive the next value
}
delay(100);
}