Hallo zusammen ich probiere jetzt schon lange mein project zum laufen zu bekommen aber es klappt einfach nicht. evtl könnt ihr mir helfen.
Was passieren soll: Nach drücken eines beliebigen Knopf auf der Fernbedienung soll eine Sequenz Einmal ablaufen. mehr nicht. danach wieder auf Anfang und auf den nächsten Tastendruck warten.
Ich habe jetzt diverse videos und beiträge durchgeschaut und nicht das passende gefunden.
Die Fernbedienung auslesen hab ich gemacht und es mit einer bestimmten taste versucht. aber am ende ist es egal welche Taste es ist. Sie soll einmal gedrückt werden und das Programm soll einmal ablaufen und dann warten.
Ich habe es auch mit while anstatt if versucht jedoch ohne erfolg.
ich hoffe jemand kann mir helfen
#include <IRremote.h>
IRsend irsend; //definiert irsend vom Typ IRsend
int RECV_PIN = 27; //Der Kontakt der am Infrarotsensor die Daten ausgibt, wird mit Pin 27 des Arduinoboards verbunden.
IRrecv irrecv(RECV_PIN); // An dieser Stelle wird ein Objekt definiert, dass den Infrarotsensor an Pin 11 ausliest.
decode_results results; // Dieser Befehl sorgt dafür, dass die Daten, die per Infrarot eingelesen werden unter „results“ abgespeichert werden.
void setup() {
Serial.begin(9600); //Im Setup wird die Serielle Verbindung gestartet, damit man sich die Empfangenen Daten der Fernbedienung per seriellen Monitor ansehen kann.
irrecv.enableIRIn();
pinMode(1, OUTPUT); //Motor1
pinMode(2, OUTPUT); //motor2
pinMode(3, OUTPUT); //motor speed
pinMode(4, OUTPUT); //motor camera
pinMode(5, OUTPUT); //Zymbal1
pinMode(6, OUTPUT); //Zymbal2
pinMode(7, OUTPUT); //Türglocke
pinMode(8, OUTPUT); //Hupe Arm
pinMode(9, OUTPUT); //Hupe
pinMode(10, OUTPUT); //Hupe Rückfahr
pinMode(11, OUTPUT); //Tröten Machine
pinMode(12, OUTPUT); //Flöte Ton
pinMode(13, OUTPUT); //Flöte Pust
pinMode(22, OUTPUT); //Flöte Arm
pinMode(23, OUTPUT); //Drucker 1
pinMode(24, OUTPUT); //Drucker 2
pinMode(25, OUTPUT); //Drucker 3
pinMode(26, OUTPUT); //Drucker 4
}
void loop() {
Serial.println(results.value, HEX); //sobald irgendwelche Daten vom Empfänger empfangen werden startet das Programm in der if-Schleife
if (irrecv.decode(&results))
{
digitalWrite(1, LOW); //alles aus
digitalWrite(2, LOW);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
digitalWrite(11, LOW);
digitalWrite(12, LOW);
digitalWrite(13, LOW);
digitalWrite(22, LOW);
digitalWrite(23, LOW);
digitalWrite(24, LOW);
digitalWrite(25, LOW);
digitalWrite(26, LOW);
analogWrite(3, 130);
delay(900);
digitalWrite(4, HIGH);
digitalWrite(1,LOW); //links dreh
digitalWrite(2,HIGH);
digitalWrite(5,HIGH);
digitalWrite(6,HIGH);
delay(200);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
delay(200);
digitalWrite(5,HIGH);
digitalWrite(6,HIGH);
delay(200);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
delay(200);
digitalWrite(5,HIGH);
digitalWrite(6,HIGH);
delay(200);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
delay(200);
digitalWrite(5,HIGH);
digitalWrite(6,HIGH);
delay(200);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
delay(200);
digitalWrite(5,HIGH);
digitalWrite(6,HIGH);
delay(200);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
delay(200);
digitalWrite(1, LOW); //kopf aus
digitalWrite(2, LOW);
delay(1000);
digitalWrite(1, HIGH); //rechts dreh
digitalWrite(2, LOW);
digitalWrite(5,HIGH);
digitalWrite(6,HIGH);
delay(200);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
delay(200);
digitalWrite(5,HIGH);
digitalWrite(6,HIGH);
delay(200);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
delay(200);
digitalWrite(5,HIGH);
digitalWrite(6,HIGH);
delay(200);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
delay(200);
digitalWrite(5,HIGH);
digitalWrite(6,HIGH);
delay(200);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
delay(200);
digitalWrite(5,HIGH);
digitalWrite(6,HIGH);
delay(200);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
delay(250);
digitalWrite(1, LOW); //kopf aus
digitalWrite(2, LOW);
digitalWrite(4, LOW);
delay(1000);
digitalWrite(7,HIGH);
delay(100);
digitalWrite(7,LOW);
delay(100);
digitalWrite(7,HIGH);
delay(100);
digitalWrite(7,LOW);
delay(100);
digitalWrite(7,HIGH);
delay(100);
digitalWrite(7,LOW);
delay(100);
digitalWrite(7,HIGH);
delay(100);
digitalWrite(7,LOW);
delay(100);
digitalWrite(7,HIGH);
delay(100);
digitalWrite(7,LOW);
delay(900);
digitalWrite(23, HIGH); //AUSLÖSEN
delay(300);
digitalWrite(23, LOW); //AUSLÖSEN FERITG
delay(2000);
digitalWrite(11,HIGH); //Stören
delay(150);
digitalWrite(11,LOW);
delay(100);
digitalWrite(11,HIGH);
delay(150);
digitalWrite(11,LOW);
delay(100);
digitalWrite(11,HIGH);
delay(100);
digitalWrite(11,LOW);
delay(1000);
digitalWrite(8,HIGH);
delay(2000);
digitalWrite(9,HIGH);
delay(60);
digitalWrite(9,LOW);
delay(60);
digitalWrite(9,HIGH);
delay(60);
digitalWrite(9,LOW);
delay(60);
digitalWrite(9,HIGH);
delay(30);
digitalWrite(9,LOW);
delay(30);
digitalWrite(9,HIGH);
delay(30);
digitalWrite(9,LOW);
delay(40);
digitalWrite(9,HIGH);
delay(40);
digitalWrite(9,LOW);
delay(2000);
digitalWrite(24, HIGH); //AUSLÖSEN
delay(300);
digitalWrite(24, LOW); //AUSLÖSEN FERITG
delay(800);
digitalWrite(10,HIGH);
delay(900);
digitalWrite(8,LOW);
delay(5000);
digitalWrite(10,LOW);
delay(1000);
digitalWrite(11,HIGH); //Stören
delay(100);
digitalWrite(11,LOW);
delay(100);
digitalWrite(11,HIGH);
delay(100);
digitalWrite(11,LOW);
delay(100);
digitalWrite(11,HIGH);
delay(100);
digitalWrite(11,LOW);
delay(100);
digitalWrite(11,HIGH);
delay(100);
digitalWrite(11,LOW);
delay(1000);
digitalWrite(13,HIGH);
delay(100);
digitalWrite(13,LOW);
delay(60);
digitalWrite(13,HIGH);
delay(100);
digitalWrite(13,LOW);
delay(60);
digitalWrite(13,HIGH);
delay(100);
digitalWrite(13,LOW);
delay(500);
digitalWrite(13,HIGH);
delay(400);
digitalWrite(12,HIGH);
delay(500);
digitalWrite(13,LOW);
delay(400);
digitalWrite(13,HIGH);
digitalWrite(12,LOW);
delay(1000);
digitalWrite(13,LOW);
delay(2000);
digitalWrite(22,HIGH);
digitalWrite(13,HIGH);
digitalWrite(12,HIGH);
delay(1500);
digitalWrite(13,LOW);
delay(2000);
digitalWrite(25, HIGH); //AUSLÖSEN
delay(300);
digitalWrite(25, LOW); //AUSLÖSEN FERITG
delay(1500);
digitalWrite(13,HIGH);
digitalWrite(22, LOW);
digitalWrite(12, LOW);
delay(1500);
digitalWrite(13, LOW);
delay(3000);
digitalWrite(11,HIGH);
delay(100);
digitalWrite(11,LOW);
delay(50);
digitalWrite(11,HIGH);
delay(100);
digitalWrite(11,LOW);
delay(50);
digitalWrite(11,HIGH);
delay(50);
digitalWrite(11,LOW);
delay(100);
digitalWrite(11,HIGH);
delay(100);
digitalWrite(11,LOW);
delay(300);
digitalWrite(11,HIGH);
delay(200);
digitalWrite(11,LOW);
delay(300);
digitalWrite(11,HIGH);
delay(200);
digitalWrite(11,LOW);
delay(400);
digitalWrite(11,HIGH);
delay(500);
digitalWrite(26, HIGH); //AUSLÖSEN
delay(300);
digitalWrite(26, LOW); //AUSLÖSEN FERITG
delay(500);
digitalWrite(11,LOW);
delay(3000);
}
{
irrecv.resume(); //nächster Wert kann erhalten werden, also nochmal der Gleiche z. B.
delay(100);
irrecv.enableIRIn(); //der Infrarotempfänger wird wieder initialisiert damit wieder Daten empfangen werden können
}
}

