Einmal Schleife mit IR Remote starten

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
 }
}

Was genau sollen die ganzen delay() bewirken.
Evtl. das du 1/2 Stunde Ruhe hast ? Oder was ?

Was für einen Controller verwendest du ? Einen Mega?
Dann darfst du den Pin1 nicht verwenden, das gibt Probleme mit dem USB-Wandler, der nutzt D0 und D1.

beachte, dass die lib folgendes ausgibt:

 warning: 'bool IRrecv::decode(decode_results*)' is deprecated: Please use IrReceiver.decode() without a parameter and IrReceiver.decodedIRData.<fieldname> . [-Wdeprecated-declarations]
   if (irrecv.decode(&results))

Wir hatten das grad die letzten Tage, das das nicht mehr funktioniert.

Gerade gestern habe ich die alte Lib (IRremote.h) nach kleiner Änderung im Projekt eingespielt und funktioniert wie vorher.

Ob das sinnvoll ist, musst Du selbst wissen.
Aber dann teile Dein Wissen mit dem TO.
Bitte beachte:

Ich bin dann raus.

Das die veraltet ist ist schon klar, wollte nur sagen das die "noch" funktioniert. Das gedresse kommt in ein paar Wochen nach Hause zum Umbau, dadurch muss viel neu geschrieben werden.
Der Garten Schleptop bekommt auch Update.

Ah ok . Ja ich benutzte einen mega. Das mit dem pin 1 wusste ich nicht. Sehr gut.

Ich steuere mit dem mega zwei 8er Relais die hauptsächlich pneumaik Ventile für eine gewisse Zeit öffnen und wieder schließen. Ansonsten werden solanoids und Motoren für die zeit des delays bewegt.

Gibt es nicht irgendwo einen Sketch der ganz einfach einen IR Sensor an pin X aufliest und wenn ein Signal kommt den Loop einmal ausführt ?

Ein Loop läuft immer. Du könntest deinen “Ablauf“ in eine Funktion schieben, und diese nur ausführen wenn du etwas empfangen hast. Dein “Ablauf“ blockiert aber alles weitere, durch die delay Orgie. Während des Ablaufs kannst du auf nichts reagieren, kein weiterer IR-Empfangs, oder etwas anderes. Einfach nichts.

Das wäre ja ok. Der Ablauf soll wie eine Performance nur einmal durchlaufen. Muss nicht unterbrochen werden oder Ähnliches.

Welche Funktion wär den die passenden dafür ?

Ein eigene.

Empfängt dein Arduino den etwas, wenn du eine Taste auf der Fernbedienung drückst?

Ja empfängt

Und wenn Du den jetzt ändern musst, dann musst Du durch den gesamten Code und überall die Stellen finden, wo Du den PIN 1 benutzt hast.
Besser ist es, die Pins vorher mit einem Namen zu versehen, und dann dem Namen die PIN-Nummer zuzuweisen.

Selber bauen war schon angesagt. :wink:
Ich hab Dir mal was vorbereitet.
@Plumps wird Dir helfen, das auszubauen.

Die PinNUmmern musst Du noch eintragen - die Namen stimmen mit dem überein, was Du vorgegeben hattest.

#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.


const byte motor1 = ;
const byte motor2 = ;
const byte motorSpeed = ;
const byte motorCamera = ;
const byte zymbal1 = ;
const byte zymbal2 = ;
const byte glocke = ;
const byte hupeArm = ;
const byte hupe = ;
const byte hupeRueck = ;
const byte troeteMachine = ;
const byte floeteTon = ;
const byte floetePust = ;
const byte floeteArm = ;
const byte drucker1 = ;
const byte drucker2 = ;
const byte drucker3 = ;
const byte drucker4 = ;




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(motor1, OUTPUT);        //Motor1
  pinMode(motor2, OUTPUT);        //motor2
  pinMode(motorSpeed, OUTPUT);    //motor speed
  pinMode(motorCamera, OUTPUT);   //motor camera
  pinMode(zymbal1, OUTPUT);       //Zymbal1
  pinMode(zymbal2, OUTPUT);       //Zymbal2
  pinMode(glocke, OUTPUT);        //Türglocke
  pinMode(hupeArm, OUTPUT);       //Hupe Arm
  pinMode(hupe, OUTPUT);          //Hupe
  pinMode(hupeRueck, OUTPUT);     //Hupe Rückfahr
  pinMode(troeteMachine, OUTPUT); //Tröten Machine
  pinMode(floeteTon, OUTPUT);     //Flöte Ton
  pinMode(floetePust, OUTPUT);    //Flöte Pust
  pinMode(floeteArm, OUTPUT);     //Flöte Arm
  pinMode(drucker1, OUTPUT);      //Drucker 1
  pinMode(drucker2, OUTPUT);      //Drucker 2
  pinMode(drucker3, OUTPUT);      //Drucker 3
  pinMode(drucker4, 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))
  {
    // if (etwas empfangen==true) performance();
    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
  }
}

void performance()
{
  digitalWrite(motor1, LOW);      //alles aus
  digitalWrite(motor2, LOW);
  digitalWrite(motorCamera, LOW);
  digitalWrite(zymbal1, LOW);
  digitalWrite(zymbal2, LOW);
  digitalWrite(glocke, LOW);
  digitalWrite(hupeArm, LOW);
  digitalWrite(hupe, LOW);
  digitalWrite(hupeRueck, LOW);
  digitalWrite(troeteMachine, LOW);
  digitalWrite(floeteTon, LOW);
  digitalWrite(floetePust, LOW);
  digitalWrite(floeteArm, LOW);
  digitalWrite(drucker1, LOW);
  digitalWrite(drucker2, LOW);
  digitalWrite(drucker3, LOW);
  digitalWrite(drucker4, LOW);
  analogWrite(motorSpeed, 130);
  delay(900);
  digitalWrite(motorCamera, HIGH);
  digitalWrite(motor1, LOW);       //links dreh
  digitalWrite(motor2, HIGH);
  digitalWrite(zymbal1, HIGH);
  digitalWrite(zymbal2, HIGH);
  delay(200);
  digitalWrite(zymbal1, LOW);
  digitalWrite(zymbal2, LOW);
  delay(200);
  digitalWrite(zymbal1, HIGH);
  digitalWrite(zymbal2, HIGH);
  delay(200);
  digitalWrite(zymbal1, LOW);
  digitalWrite(zymbal2, LOW);
  delay(200);
  digitalWrite(zymbal1, HIGH);
  digitalWrite(zymbal2, HIGH);
  delay(200);
  digitalWrite(zymbal1, LOW);
  digitalWrite(zymbal2, LOW);
  delay(200);
  digitalWrite(zymbal1, HIGH);
  digitalWrite(zymbal2, HIGH);
  delay(200);
  digitalWrite(zymbal1, LOW);
  digitalWrite(zymbal2, LOW);
  delay(200);
  digitalWrite(zymbal1, HIGH);
  digitalWrite(zymbal2, HIGH);
  delay(200);
  digitalWrite(zymbal1, LOW);
  digitalWrite(zymbal2, LOW);
  delay(200);
  digitalWrite(motor1, LOW);      //kopf aus
  digitalWrite(motor2, LOW);
  delay(1000);
  digitalWrite(motor1, HIGH);      //rechts dreh
  digitalWrite(motor2, LOW);
  digitalWrite(zymbal1, HIGH);
  digitalWrite(zymbal2, HIGH);
  delay(200);
  digitalWrite(zymbal1, LOW);
  digitalWrite(zymbal2, LOW);
  delay(200);
  digitalWrite(zymbal1, HIGH);
  digitalWrite(zymbal2, HIGH);
  delay(200);
  digitalWrite(zymbal1, LOW);
  digitalWrite(zymbal2, LOW);
  delay(200);
  digitalWrite(zymbal1, HIGH);
  digitalWrite(zymbal2, HIGH);
  delay(200);
  digitalWrite(zymbal1, LOW);
  digitalWrite(zymbal2, LOW);
  delay(200);
  digitalWrite(zymbal1, HIGH);
  digitalWrite(zymbal2, HIGH);
  delay(200);
  digitalWrite(zymbal1, LOW);
  digitalWrite(zymbal2, LOW);
  delay(200);
  digitalWrite(zymbal1, HIGH);
  digitalWrite(zymbal2, HIGH);
  delay(200);
  digitalWrite(zymbal1, LOW);
  digitalWrite(zymbal2, LOW);
  delay(250);
  digitalWrite(motor1, LOW);      //kopf aus
  digitalWrite(motor2, LOW);
  digitalWrite(motorCamera, LOW);
  delay(1000);
  digitalWrite(glocke, HIGH);
  delay(100);
  digitalWrite(glocke, LOW);
  delay(100);
  digitalWrite(glocke, HIGH);
  delay(100);
  digitalWrite(glocke, LOW);
  delay(100);
  digitalWrite(glocke, HIGH);
  delay(100);
  digitalWrite(glocke, LOW);
  delay(100);
  digitalWrite(glocke, HIGH);
  delay(100);
  digitalWrite(glocke, LOW);
  delay(100);
  digitalWrite(glocke, HIGH);
  delay(100);
  digitalWrite(glocke, LOW);
  delay(900);
  digitalWrite(drucker1, HIGH);      //AUSLÖSEN
  delay(300);
  digitalWrite(drucker1, LOW);       //AUSLÖSEN FERITG
  delay(2000);
  digitalWrite(troeteMachine, HIGH);      //Stören
  delay(150);
  digitalWrite(troeteMachine, LOW);
  delay(100);
  digitalWrite(troeteMachine, HIGH);
  delay(150);
  digitalWrite(troeteMachine, LOW);
  delay(100);
  digitalWrite(troeteMachine, HIGH);
  delay(100);
  digitalWrite(troeteMachine, LOW);
  delay(1000);
  digitalWrite(hupeArm, HIGH);
  delay(2000);
  digitalWrite(hupe, HIGH);
  delay(60);
  digitalWrite(hupe, LOW);
  delay(60);
  digitalWrite(hupe, HIGH);
  delay(60);
  digitalWrite(hupe, LOW);
  delay(60);
  digitalWrite(hupe, HIGH);
  delay(30);
  digitalWrite(hupe, LOW);
  delay(30);
  digitalWrite(hupe, HIGH);
  delay(30);
  digitalWrite(hupe, LOW);
  delay(40);
  digitalWrite(hupe, HIGH);
  delay(40);
  digitalWrite(hupe, LOW);
  delay(2000);
  digitalWrite(drucker2, HIGH);      //AUSLÖSEN
  delay(300);
  digitalWrite(drucker2, LOW);       //AUSLÖSEN FERITG
  delay(800);
  digitalWrite(hupeRueck, HIGH);
  delay(900);
  digitalWrite(hupeArm, LOW);
  delay(5000);
  digitalWrite(hupeRueck, LOW);
  delay(1000);
  digitalWrite(troeteMachine, HIGH);      //Stören
  delay(100);
  digitalWrite(troeteMachine, LOW);
  delay(100);
  digitalWrite(troeteMachine, HIGH);
  delay(100);
  digitalWrite(troeteMachine, LOW);
  delay(100);
  digitalWrite(troeteMachine, HIGH);
  delay(100);
  digitalWrite(troeteMachine, LOW);
  delay(100);
  digitalWrite(troeteMachine, HIGH);
  delay(100);
  digitalWrite(troeteMachine, LOW);
  delay(1000);
  digitalWrite(floetePust, HIGH);
  delay(100);
  digitalWrite(floetePust, LOW);
  delay(60);
  digitalWrite(floetePust, HIGH);
  delay(100);
  digitalWrite(floetePust, LOW);
  delay(60);
  digitalWrite(floetePust, HIGH);
  delay(100);
  digitalWrite(floetePust, LOW);
  delay(500);
  digitalWrite(floetePust, HIGH);
  delay(400);
  digitalWrite(floeteTon, HIGH);
  delay(500);
  digitalWrite(floetePust, LOW);
  delay(400);
  digitalWrite(floetePust, HIGH);
  digitalWrite(floeteTon, LOW);
  delay(1000);
  digitalWrite(floetePust, LOW);
  delay(2000);
  digitalWrite(floeteArm, HIGH);
  digitalWrite(floetePust, HIGH);
  digitalWrite(floeteTon, HIGH);
  delay(1500);
  digitalWrite(floetePust, LOW);
  delay(2000);
  digitalWrite(drucker3, HIGH);      //AUSLÖSEN
  delay(300);
  digitalWrite(drucker3, LOW);       //AUSLÖSEN FERITG
  delay(1500);
  digitalWrite(floetePust, HIGH);
  digitalWrite(floeteArm, LOW);
  digitalWrite(floeteTon, LOW);
  delay(1500);
  digitalWrite(floetePust, LOW);
  delay(3000);
  digitalWrite(troeteMachine, HIGH);
  delay(100);
  digitalWrite(troeteMachine, LOW);
  delay(50);
  digitalWrite(troeteMachine, HIGH);
  delay(100);
  digitalWrite(troeteMachine, LOW);
  delay(50);
  digitalWrite(troeteMachine, HIGH);
  delay(50);
  digitalWrite(troeteMachine, LOW);
  delay(100);
  digitalWrite(troeteMachine, HIGH);
  delay(100);
  digitalWrite(troeteMachine, LOW);
  delay(300);
  digitalWrite(troeteMachine, HIGH);
  delay(200);
  digitalWrite(troeteMachine, LOW);
  delay(300);
  digitalWrite(troeteMachine, HIGH);
  delay(200);
  digitalWrite(troeteMachine, LOW);
  delay(400);
  digitalWrite(troeteMachine, HIGH);
  delay(500);
  digitalWrite(drucker4, HIGH);      //AUSLÖSEN
  delay(300);
  digitalWrite(drucker4, LOW);       //AUSLÖSEN FERITG
  delay(500);
  digitalWrite(troeteMachine, LOW);
  delay(3000);
}

ok vielen dank das hat schon mal sehr geholfen!

Das mit der Fernbedienung klappt leider immernoch nicht..der serielle monitor zeigt in regelmäßigen abständen immer nur eine 0 an..und reagiert auf kein drücken der Fernbedienung.

Brauch ich die Befehle für den Seriellen Monitor überhaupt?

@my_xy_projekt ich bin mir nicht ganz sicher ob ich die Zeile mit dem if befehl in die performance sequenz zu springen richtig interpretiert habe..

@Plumps irgendwie empfängt der Sensor in dem Programm jetzt nichts mehr. das auslesen mit den selben befehlen hatte geklappt. bin ein bisschen ratos gerade

hier ist der code soweit

#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(27); // An dieser Stelle wird ein Objekt definiert, dass den Infrarotsensor an Pin 27 ausliest.
decode_results results; // Dieser Befehl sorgt dafür, dass die Daten, die per Infrarot eingelesen werden unter „results“ abgespeichert werden.


const byte motor1 = 28 ;
const byte motor2 = 2 ;
const byte motorSpeed = 3 ;
const byte motorCamera = 4 ;
const byte zymbal1 = 5 ;
const byte zymbal2 = 6 ;
const byte glocke = 7 ;
const byte hupeArm = 8 ;
const byte hupe = 9 ;
const byte hupeRueck = 10 ;
const byte troeteMachine = 11 ;
const byte floeteTon = 12 ;
const byte floetePust = 13 ;
const byte floeteArm = 22 ;
const byte drucker1 = 23 ;
const byte drucker2 = 24 ;
const byte drucker3 = 25 ;
const byte drucker4 = 26 ;




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(motor1, OUTPUT);        //Motor1
  pinMode(motor2, OUTPUT);        //motor2
  pinMode(motorSpeed, OUTPUT);    //motor speed
  pinMode(motorCamera, OUTPUT);   //motor camera
  pinMode(zymbal1, OUTPUT);       //Zymbal1
  pinMode(zymbal2, OUTPUT);       //Zymbal2
  pinMode(glocke, OUTPUT);        //Türglocke
  pinMode(hupeArm, OUTPUT);       //Hupe Arm
  pinMode(hupe, OUTPUT);          //Hupe
  pinMode(hupeRueck, OUTPUT);     //Hupe Rückfahr
  pinMode(troeteMachine, OUTPUT); //Tröten Machine
  pinMode(floeteTon, OUTPUT);     //Flöte Ton
  pinMode(floetePust, OUTPUT);    //Flöte Pust
  pinMode(floeteArm, OUTPUT);     //Flöte Arm
  pinMode(drucker1, OUTPUT);      //Drucker 1
  pinMode(drucker2, OUTPUT);      //Drucker 2
  pinMode(drucker3, OUTPUT);      //Drucker 3
  pinMode(drucker4, OUTPUT);      //Drucker 4
}

void loop()
{

 if (irrecv.decode()){
  
 }
  Serial.println(irrecv.decodedIRData.decodedRawData, HEX); //sobald irgendwelche Daten vom Empfänger empfangen werden startet das Programm in der if-Schleife
 delay (1500);
  irrecv.resume(); //nächster Wert kann erhalten werden, also nochmal der Gleiche z. B.
  
  
  if (irrecv.decode(&results)==true) performance();
  {
    // if (etwas empfangen==true) performance();
    
    delay(100);
    irrecv.enableIRIn(); //der Infrarotempfänger wird wieder initialisiert damit wieder Daten empfangen werden können
  }
}

void performance()
{
  digitalWrite(motor1, LOW);      //alles aus
  digitalWrite(motor2, LOW);
  digitalWrite(motorCamera, LOW);
  digitalWrite(zymbal1, LOW);
  digitalWrite(zymbal2, LOW);
  digitalWrite(glocke, LOW);
  digitalWrite(hupeArm, LOW);
  digitalWrite(hupe, LOW);
  digitalWrite(hupeRueck, LOW);
  digitalWrite(troeteMachine, LOW);
  digitalWrite(floeteTon, LOW);
  digitalWrite(floetePust, LOW);
  digitalWrite(floeteArm, LOW);
  digitalWrite(drucker1, LOW);
  digitalWrite(drucker2, LOW);
  digitalWrite(drucker3, LOW);
  digitalWrite(drucker4, LOW);
  analogWrite(motorSpeed, 130);
  delay(900);
  digitalWrite(motorCamera, HIGH);
  digitalWrite(motor1, LOW);       //links dreh
  digitalWrite(motor2, HIGH);
  digitalWrite(zymbal1, HIGH);
  digitalWrite(zymbal2, HIGH);
  delay(200);
  digitalWrite(zymbal1, LOW);
  digitalWrite(zymbal2, LOW);
  delay(200);
  digitalWrite(zymbal1, HIGH);
  digitalWrite(zymbal2, HIGH);
  delay(200);
  digitalWrite(zymbal1, LOW);
  digitalWrite(zymbal2, LOW);
  delay(200);
  digitalWrite(zymbal1, HIGH);
  digitalWrite(zymbal2, HIGH);
  delay(200);
  digitalWrite(zymbal1, LOW);
  digitalWrite(zymbal2, LOW);
  delay(200);
  digitalWrite(zymbal1, HIGH);
  digitalWrite(zymbal2, HIGH);
  delay(200);
  digitalWrite(zymbal1, LOW);
  digitalWrite(zymbal2, LOW);
  delay(200);
  digitalWrite(zymbal1, HIGH);
  digitalWrite(zymbal2, HIGH);
  delay(200);
  digitalWrite(zymbal1, LOW);
  digitalWrite(zymbal2, LOW);
  delay(200);
  digitalWrite(motor1, LOW);      //kopf aus
  digitalWrite(motor2, LOW);
  delay(1000);
  digitalWrite(motor1, HIGH);      //rechts dreh
  digitalWrite(motor2, LOW);
  digitalWrite(zymbal1, HIGH);
  digitalWrite(zymbal2, HIGH);
  delay(200);
  digitalWrite(zymbal1, LOW);
  digitalWrite(zymbal2, LOW);
  delay(200);
  digitalWrite(zymbal1, HIGH);
  digitalWrite(zymbal2, HIGH);
  delay(200);
  digitalWrite(zymbal1, LOW);
  digitalWrite(zymbal2, LOW);
  delay(200);
  digitalWrite(zymbal1, HIGH);
  digitalWrite(zymbal2, HIGH);
  delay(200);
  digitalWrite(zymbal1, LOW);
  digitalWrite(zymbal2, LOW);
  delay(200);
  digitalWrite(zymbal1, HIGH);
  digitalWrite(zymbal2, HIGH);
  delay(200);
  digitalWrite(zymbal1, LOW);
  digitalWrite(zymbal2, LOW);
  delay(200);
  digitalWrite(zymbal1, HIGH);
  digitalWrite(zymbal2, HIGH);
  delay(200);
  digitalWrite(zymbal1, LOW);
  digitalWrite(zymbal2, LOW);
  delay(250);
  digitalWrite(motor1, LOW);      //kopf aus
  digitalWrite(motor2, LOW);
  digitalWrite(motorCamera, LOW);
  delay(1000);
  digitalWrite(glocke, HIGH);
  delay(100);
  digitalWrite(glocke, LOW);
  delay(100);
  digitalWrite(glocke, HIGH);
  delay(100);
  digitalWrite(glocke, LOW);
  delay(100);
  digitalWrite(glocke, HIGH);
  delay(100);
  digitalWrite(glocke, LOW);
  delay(100);
  digitalWrite(glocke, HIGH);
  delay(100);
  digitalWrite(glocke, LOW);
  delay(100);
  digitalWrite(glocke, HIGH);
  delay(100);
  digitalWrite(glocke, LOW);
  delay(900);
  digitalWrite(drucker1, HIGH);      //AUSLÖSEN
  delay(300);
  digitalWrite(drucker1, LOW);       //AUSLÖSEN FERITG
  delay(2000);
  digitalWrite(troeteMachine, HIGH);      //Stören
  delay(150);
  digitalWrite(troeteMachine, LOW);
  delay(100);
  digitalWrite(troeteMachine, HIGH);
  delay(150);
  digitalWrite(troeteMachine, LOW);
  delay(100);
  digitalWrite(troeteMachine, HIGH);
  delay(100);
  digitalWrite(troeteMachine, LOW);
  delay(1000);
  digitalWrite(hupeArm, HIGH);
  delay(2000);
  digitalWrite(hupe, HIGH);
  delay(60);
  digitalWrite(hupe, LOW);
  delay(60);
  digitalWrite(hupe, HIGH);
  delay(60);
  digitalWrite(hupe, LOW);
  delay(60);
  digitalWrite(hupe, HIGH);
  delay(30);
  digitalWrite(hupe, LOW);
  delay(30);
  digitalWrite(hupe, HIGH);
  delay(30);
  digitalWrite(hupe, LOW);
  delay(40);
  digitalWrite(hupe, HIGH);
  delay(40);
  digitalWrite(hupe, LOW);
  delay(2000);
  digitalWrite(drucker2, HIGH);      //AUSLÖSEN
  delay(300);
  digitalWrite(drucker2, LOW);       //AUSLÖSEN FERITG
  delay(800);
  digitalWrite(hupeRueck, HIGH);
  delay(900);
  digitalWrite(hupeArm, LOW);
  delay(5000);
  digitalWrite(hupeRueck, LOW);
  delay(1000);
  digitalWrite(troeteMachine, HIGH);      //Stören
  delay(100);
  digitalWrite(troeteMachine, LOW);
  delay(100);
  digitalWrite(troeteMachine, HIGH);
  delay(100);
  digitalWrite(troeteMachine, LOW);
  delay(100);
  digitalWrite(troeteMachine, HIGH);
  delay(100);
  digitalWrite(troeteMachine, LOW);
  delay(100);
  digitalWrite(troeteMachine, HIGH);
  delay(100);
  digitalWrite(troeteMachine, LOW);
  delay(1000);
  digitalWrite(floetePust, HIGH);
  delay(100);
  digitalWrite(floetePust, LOW);
  delay(60);
  digitalWrite(floetePust, HIGH);
  delay(100);
  digitalWrite(floetePust, LOW);
  delay(60);
  digitalWrite(floetePust, HIGH);
  delay(100);
  digitalWrite(floetePust, LOW);
  delay(500);
  digitalWrite(floetePust, HIGH);
  delay(400);
  digitalWrite(floeteTon, HIGH);
  delay(500);
  digitalWrite(floetePust, LOW);
  delay(400);
  digitalWrite(floetePust, HIGH);
  digitalWrite(floeteTon, LOW);
  delay(1000);
  digitalWrite(floetePust, LOW);
  delay(2000);
  digitalWrite(floeteArm, HIGH);
  digitalWrite(floetePust, HIGH);
  digitalWrite(floeteTon, HIGH);
  delay(1500);
  digitalWrite(floetePust, LOW);
  delay(2000);
  digitalWrite(drucker3, HIGH);      //AUSLÖSEN
  delay(300);
  digitalWrite(drucker3, LOW);       //AUSLÖSEN FERITG
  delay(1500);
  digitalWrite(floetePust, HIGH);
  digitalWrite(floeteArm, LOW);
  digitalWrite(floeteTon, LOW);
  delay(1500);
  digitalWrite(floetePust, LOW);
  delay(3000);
  digitalWrite(troeteMachine, HIGH);
  delay(100);
  digitalWrite(troeteMachine, LOW);
  delay(50);
  digitalWrite(troeteMachine, HIGH);
  delay(100);
  digitalWrite(troeteMachine, LOW);
  delay(50);
  digitalWrite(troeteMachine, HIGH);
  delay(50);
  digitalWrite(troeteMachine, LOW);
  delay(100);
  digitalWrite(troeteMachine, HIGH);
  delay(100);
  digitalWrite(troeteMachine, LOW);
  delay(300);
  digitalWrite(troeteMachine, HIGH);
  delay(200);
  digitalWrite(troeteMachine, LOW);
  delay(300);
  digitalWrite(troeteMachine, HIGH);
  delay(200);
  digitalWrite(troeteMachine, LOW);
  delay(400);
  digitalWrite(troeteMachine, HIGH);
  delay(500);
  digitalWrite(drucker4, HIGH);      //AUSLÖSEN
  delay(300);
  digitalWrite(drucker4, LOW);       //AUSLÖSEN FERITG
  delay(500);
  digitalWrite(troeteMachine, LOW);
  delay(3000);
}


So sieht das aus

Tausche mal das loop. Was kommt auf dem Seriellen Monitor raus?

void loop()
{
  if (irrecv.decode(&results) == true)
  {
    irrecv.resume();
    // Serial.println(irrecv.decodedIRData.decodedRawData, HEX); //sobald irgendwelche Daten vom Empfänger empfangen werden startet das Programm in der if-Schleife
    Serial.println(results.value, HEX);
    // performance();
    irrecv.resume(); //nächster Wert kann erhalten werden, also nochmal der Gleiche z. B.
  }
}

(Sieht ja aus wie ein elektrischer Stuhl für Pärchen :slight_smile: )

haha ja allerdings. Die Stühle sind nur mein ''arbeitsplatz'' :slight_smile: Es ist ein abstrakter photoautomat der bei einem festival die Besucher fotografiert.

@my_xy_projekt vielen Dank für deine Hilfe bisher!
Dieser code hier scheint jetzt zu funktionieren.. allerdings startet er scheinbar nicht mit jedem Knopf der Fernbedienung und man muss ein bisschen länger draufdrücken. Aber ich bin schonmal mega happy! :tada:

#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 27 ausliest.
decode_results results; // Dieser Befehl sorgt dafür, dass die Daten, die per Infrarot eingelesen werden unter „results“ abgespeichert werden.


const byte motor1 = 28 ;
const byte motor2 = 2 ;
const byte motorSpeed = 3 ;
const byte motorCamera = 4 ;
const byte zymbal1 = 5 ;
const byte zymbal2 = 6 ;
const byte glocke = 7 ;
const byte hupeArm = 8 ;
const byte hupe = 9 ;
const byte hupeRueck = 10 ;
const byte troeteMachine = 11 ;
const byte floeteTon = 12 ;
const byte floetePust = 13 ;
const byte floeteArm = 22 ;
const byte drucker1 = 23 ;
const byte drucker2 = 24 ;
const byte drucker3 = 25 ;
const byte drucker4 = 26 ;




void setup()
{
  irrecv.enableIRIn();
  Serial.begin(9600); //Im Setup wird die Serielle Verbindung gestartet, damit man sich die Empfangenen Daten der Fernbedienung per seriellen Monitor ansehen kann.
  
  pinMode(motor1, OUTPUT);        //Motor1
  pinMode(motor2, OUTPUT);        //motor2
  pinMode(motorSpeed, OUTPUT);    //motor speed
  pinMode(motorCamera, OUTPUT);   //motor camera
  pinMode(zymbal1, OUTPUT);       //Zymbal1
  pinMode(zymbal2, OUTPUT);       //Zymbal2
  pinMode(glocke, OUTPUT);        //Türglocke
  pinMode(hupeArm, OUTPUT);       //Hupe Arm
  pinMode(hupe, OUTPUT);          //Hupe
  pinMode(hupeRueck, OUTPUT);     //Hupe Rückfahr
  pinMode(troeteMachine, OUTPUT); //Tröten Machine
  pinMode(floeteTon, OUTPUT);     //Flöte Ton
  pinMode(floetePust, OUTPUT);    //Flöte Pust
  pinMode(floeteArm, OUTPUT);     //Flöte Arm
  pinMode(drucker1, OUTPUT);      //Drucker 1
  pinMode(drucker2, OUTPUT);      //Drucker 2
  pinMode(drucker3, OUTPUT);      //Drucker 3
  pinMode(drucker4, OUTPUT);      //Drucker 4
}

void loop()
{

   

 if (irrecv.decode() == true)  //&results
 
 {
  irrecv.resume();

Serial.println(results.value, HEX);
  
  
 
             //Serial.println(irrecv.decodedIRData.decodedRawData, HEX); //sobald irgendwelche Daten vom Empfänger empfangen werden startet das Programm in der if-Schleife
              //delay (1500);
  irrecv.resume(); //nächster Wert kann erhalten werden, also nochmal der Gleiche z. B.
}
  
 if (irrecv.decode(&results)==true) performance();
  {
             
    
   // delay(100);
    //irrecv.enableIRIn(); //der Infrarotempfänger wird wieder initialisiert damit wieder Daten empfangen werden können
  }
}

void performance()
{
  digitalWrite(motor1, LOW);      //alles aus
  digitalWrite(motor2, LOW);
  digitalWrite(motorCamera, LOW);
  digitalWrite(zymbal1, LOW);
  digitalWrite(zymbal2, LOW);
  digitalWrite(glocke, LOW);
  digitalWrite(hupeArm, LOW);
  digitalWrite(hupe, LOW);
  digitalWrite(hupeRueck, LOW);
  digitalWrite(troeteMachine, LOW);
  digitalWrite(floeteTon, LOW);
  digitalWrite(floetePust, LOW);
  digitalWrite(floeteArm, LOW);
  digitalWrite(drucker1, LOW);
  digitalWrite(drucker2, LOW);
  digitalWrite(drucker3, LOW);
  digitalWrite(drucker4, LOW);
  analogWrite(motorSpeed, 130);
  delay(900);
  digitalWrite(motorCamera, HIGH);
  digitalWrite(motor1, LOW);       //links dreh
  digitalWrite(motor2, HIGH);
  digitalWrite(zymbal1, HIGH);
  digitalWrite(zymbal2, HIGH);
  delay(200);
  digitalWrite(zymbal1, LOW);
  digitalWrite(zymbal2, LOW);
  delay(200);
  digitalWrite(zymbal1, HIGH);
  digitalWrite(zymbal2, HIGH);
  delay(200);
  digitalWrite(zymbal1, LOW);
  digitalWrite(zymbal2, LOW);
  delay(200);
  digitalWrite(zymbal1, HIGH);
  digitalWrite(zymbal2, HIGH);
  delay(200);
  digitalWrite(zymbal1, LOW);
  digitalWrite(zymbal2, LOW);
  delay(200);
  digitalWrite(zymbal1, HIGH);
  digitalWrite(zymbal2, HIGH);
  delay(200);
  digitalWrite(zymbal1, LOW);
  digitalWrite(zymbal2, LOW);
  delay(200);
  digitalWrite(zymbal1, HIGH);
  digitalWrite(zymbal2, HIGH);
  delay(200);
  digitalWrite(zymbal1, LOW);
  digitalWrite(zymbal2, LOW);
  delay(200);
  digitalWrite(motor1, LOW);      //kopf aus
  digitalWrite(motor2, LOW);
  delay(1000);
  digitalWrite(motor1, HIGH);      //rechts dreh
  digitalWrite(motor2, LOW);
  digitalWrite(zymbal1, HIGH);
  digitalWrite(zymbal2, HIGH);
  delay(200);
  digitalWrite(zymbal1, LOW);
  digitalWrite(zymbal2, LOW);
  delay(200);
  digitalWrite(zymbal1, HIGH);
  digitalWrite(zymbal2, HIGH);
  delay(200);
  digitalWrite(zymbal1, LOW);
  digitalWrite(zymbal2, LOW);
  delay(200);
  digitalWrite(zymbal1, HIGH);
  digitalWrite(zymbal2, HIGH);
  delay(200);
  digitalWrite(zymbal1, LOW);
  digitalWrite(zymbal2, LOW);
  delay(200);
  digitalWrite(zymbal1, HIGH);
  digitalWrite(zymbal2, HIGH);
  delay(200);
  digitalWrite(zymbal1, LOW);
  digitalWrite(zymbal2, LOW);
  delay(200);
  digitalWrite(zymbal1, HIGH);
  digitalWrite(zymbal2, HIGH);
  delay(200);
  digitalWrite(zymbal1, LOW);
  digitalWrite(zymbal2, LOW);
  delay(250);
  digitalWrite(motor1, LOW);      //kopf aus
  digitalWrite(motor2, LOW);
  digitalWrite(motorCamera, LOW);
  delay(1000);
  digitalWrite(glocke, HIGH);
  delay(100);
  digitalWrite(glocke, LOW);
  delay(100);
  digitalWrite(glocke, HIGH);
  delay(100);
  digitalWrite(glocke, LOW);
  delay(100);
  digitalWrite(glocke, HIGH);
  delay(100);
  digitalWrite(glocke, LOW);
  delay(100);
  digitalWrite(glocke, HIGH);
  delay(100);
  digitalWrite(glocke, LOW);
  delay(100);
  digitalWrite(glocke, HIGH);
  delay(100);
  digitalWrite(glocke, LOW);
  delay(900);
  digitalWrite(drucker1, HIGH);      //AUSLÖSEN
  delay(300);
  digitalWrite(drucker1, LOW);       //AUSLÖSEN FERITG
  delay(2000);
  digitalWrite(troeteMachine, HIGH);      //Stören
  delay(150);
  digitalWrite(troeteMachine, LOW);
  delay(100);
  digitalWrite(troeteMachine, HIGH);
  delay(150);
  digitalWrite(troeteMachine, LOW);
  delay(100);
  digitalWrite(troeteMachine, HIGH);
  delay(100);
  digitalWrite(troeteMachine, LOW);
  delay(1000);
  digitalWrite(hupeArm, HIGH);
  delay(2000);
  digitalWrite(hupe, HIGH);
  delay(60);
  digitalWrite(hupe, LOW);
  delay(60);
  digitalWrite(hupe, HIGH);
  delay(60);
  digitalWrite(hupe, LOW);
  delay(60);
  digitalWrite(hupe, HIGH);
  delay(30);
  digitalWrite(hupe, LOW);
  delay(30);
  digitalWrite(hupe, HIGH);
  delay(30);
  digitalWrite(hupe, LOW);
  delay(40);
  digitalWrite(hupe, HIGH);
  delay(40);
  digitalWrite(hupe, LOW);
  delay(2000);
  digitalWrite(drucker2, HIGH);      //AUSLÖSEN
  delay(300);
  digitalWrite(drucker2, LOW);       //AUSLÖSEN FERITG
  delay(800);
  digitalWrite(hupeRueck, HIGH);
  delay(900);
  digitalWrite(hupeArm, LOW);
  delay(5000);
  digitalWrite(hupeRueck, LOW);
  delay(1000);
  digitalWrite(troeteMachine, HIGH);      //Stören
  delay(100);
  digitalWrite(troeteMachine, LOW);
  delay(100);
  digitalWrite(troeteMachine, HIGH);
  delay(100);
  digitalWrite(troeteMachine, LOW);
  delay(100);
  digitalWrite(troeteMachine, HIGH);
  delay(100);
  digitalWrite(troeteMachine, LOW);
  delay(100);
  digitalWrite(troeteMachine, HIGH);
  delay(100);
  digitalWrite(troeteMachine, LOW);
  delay(1000);
  digitalWrite(floetePust, HIGH);
  delay(100);
  digitalWrite(floetePust, LOW);
  delay(60);
  digitalWrite(floetePust, HIGH);
  delay(100);
  digitalWrite(floetePust, LOW);
  delay(60);
  digitalWrite(floetePust, HIGH);
  delay(100);
  digitalWrite(floetePust, LOW);
  delay(500);
  digitalWrite(floetePust, HIGH);
  delay(400);
  digitalWrite(floeteTon, HIGH);
  delay(500);
  digitalWrite(floetePust, LOW);
  delay(400);
  digitalWrite(floetePust, HIGH);
  digitalWrite(floeteTon, LOW);
  delay(1000);
  digitalWrite(floetePust, LOW);
  delay(2000);
  digitalWrite(floeteArm, HIGH);
  digitalWrite(floetePust, HIGH);
  digitalWrite(floeteTon, HIGH);
  delay(1500);
  digitalWrite(floetePust, LOW);
  delay(2000);
  digitalWrite(drucker3, HIGH);      //AUSLÖSEN
  delay(300);
  digitalWrite(drucker3, LOW);       //AUSLÖSEN FERITG
  delay(1500);
  digitalWrite(floetePust, HIGH);
  digitalWrite(floeteArm, LOW);
  digitalWrite(floeteTon, LOW);
  delay(1500);
  digitalWrite(floetePust, LOW);
  delay(3000);
  digitalWrite(troeteMachine, HIGH);
  delay(100);
  digitalWrite(troeteMachine, LOW);
  delay(50);
  digitalWrite(troeteMachine, HIGH);
  delay(100);
  digitalWrite(troeteMachine, LOW);
  delay(50);
  digitalWrite(troeteMachine, HIGH);
  delay(50);
  digitalWrite(troeteMachine, LOW);
  delay(100);
  digitalWrite(troeteMachine, HIGH);
  delay(100);
  digitalWrite(troeteMachine, LOW);
  delay(300);
  digitalWrite(troeteMachine, HIGH);
  delay(200);
  digitalWrite(troeteMachine, LOW);
  delay(300);
  digitalWrite(troeteMachine, HIGH);
  delay(200);
  digitalWrite(troeteMachine, LOW);
  delay(400);
  digitalWrite(troeteMachine, HIGH);
  delay(500);
  digitalWrite(drucker4, HIGH);      //AUSLÖSEN
  delay(300);
  digitalWrite(drucker4, LOW);       //AUSLÖSEN FERITG
  delay(500);
  digitalWrite(troeteMachine, LOW);
  delay(3000);
}

Der serielle monitor zeigt folgendes an

The function decode(&results)) is deprecated and may not work as expected! Just use decode() without a parameter and IrReceiver.decodedIRData.<fieldname> .
FFFFFFFF
FFFFFFFF
FECB4122
FECB4122


Ich weiß nicht genau was das bedeuten soll..

Sieht jemand noch einen groben Fehler im code??

Was Dir auf die Füsse fällt, ist die Nichtprüfung, ob sich der Code geändert hat und dein delay() in der performance.
Die Fernbedienung schickt nicht nur einmal den Code, sondern solange wie Du drückst. Wenn die lib das in ihren Puffer nimmt, dann wird der erst abgearbeitet, bevor was neues rein kann. Durch die delay() bist Du aber in der Zeit wo die Codes verarbeitet werden können blind.

Ich würde die performance immer mit einer neuen Taste auslösen lassen, bzw. etwas drumrum schreiben, um sicherzustellen das der letzte Tastencode immer gelöscht ist.

Kennst Du die mit jeder Library mitgelieferten spezifischen Beispiele?
Hast Du schon mal das SimpleReceiver Beispiel der Library probiert?