Hi Kollege,

(bist Du jetzt pro-bot128 oder roboter421?? - oder eine multiple Persönlichkeit?) die Auswertung geschieht - in C - recht einfach; mit der Arduino Entwicklungsumgebung kenne ich mich nicht aus. Primär wichtig ist, dass Deine Software genau den IR-Code entziffert, den Deine Fernsteuerung sendet. Da es etliche verschiedene Codes gibt, könnte das ein Fehler sein. Nicht unüblich ist der RC-5-Code. Ich decodiere bei mir den Code in ein Adressbyte (RCAB) und ein Befehlsbyte (RCBB). Jede Taste sendet üblicherweise einen anderen Code, ich muss also nur auf diesen Code prüfen (in meinem Beispiel ohne Adressprüfung) , siehe hier:

Code:
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// - -  Es folgt RC5t_17a - es werden also nur die RCAB und RCBB geholt.
//      RCBB == 16      =>      0 gedrückt?
//      RCBB == 27      =>      Pfeil "ab"wärts
//      RCBB == 28      =>      Pfeil vorwärts
//      RCBB == 36      =>      VOL lauter = rechts
//      RCBB == 37      =>      VOL leiser = links
                                //
 while (1)                      //
  {                             //
    RC5t_17a ();                // RC5 auslesen
    if (RCBB == 16)             // Ist "0" gedrückt?
    {                           //
      SERVon    = 1;            // Servobetrieb erlauben
      dklauf();                 // Deckel auffahren
      waitms (   800);          //   und warten bis Deckel offen ist
      SERVon    = 0;            // und Servobetrieb wieder verbieten
      waitms (  2000);          // danach 2 sec warten
      SERVon    = 1;            // Servobetrieb erlauben
      dklzu();                  // Deckel zufahren
      waitms (   800);          //   und warten bis Deckel zu ist
    }                           // Ende if (RCBB == 16)
                                //
    if (RCBB == 27)             // "Pfeil ab-/rückvorwärts" gedrückt?
    {                           //
      SERVon    = 1;            // Servobetrieb erlauben
      dklauf();                 // Deckel auffahren
      waitms (   800);          //   und warten bis Deckel offen ist
      SERVon    = 0;            // und Servobetrieb wieder verbieten
      ftst_13m();               // Fahrtest
      SERVon    = 1;            // Servobetrieb erlauben
      dklzu();                  // Deckel zufahren
      waitms (   800);          //   und warten bis Deckel zu ist
    }                           // Ende if (RCBB == 16)
                                //
    if (RCBB == 28)             // Ist "Pfeil vorwärts" gedrückt?
    {                           //
      SERVon    = 1;            // Servobetrieb erlauben
      dklauf();                 // Deckel auffahren
      waitms (   800);          //   und warten bis Deckel offen ist
      SERVon    = 0;            // und Servobetrieb wieder verbieten
      ftst_13();                // Fahrtest
      waitms (   500);          //   danach etwas warten
      SERVon    = 1;            // Servobetrieb erlauben
      dklzu();                  // Deckel zufahren
      waitms (   800);          //   und warten bis Deckel zu ist
    }                           // Ende if (RCBB == 28)
                                //
  }                             // Ende while (1) 
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Entsprechend dem Code wird dann die Aktion gefahren. Evtl. ist noch eine Zeitabfrage im while sinnvoll, wenn ohne Tastendruck ein default-Ablauf gewünscht wird. Und so einfach geht das dann:



Ok?