Mit IR-Fernbedienung empfangen und senden

Hallo,

ich bin gerade dabei mir eine Universal Infrarot Fernbedienung zu bauen. Ich möchte also mit meiner Verstärker Fernbedienung auch den Sat Receiver schalten und andere Geräte.

Also: Der Arduino soll die Infratot Signale von Verstärker Fernbedieung einlesen und soll dann entsprechend die Infrarot Signale für den Sat Receiver senden.

Als Grundlage nutzte ich aus dem Arduino Kochbuch den Sketch für die Apple Fernbedienung. Ich kann über die Tastatureingabe auch schon die Sender hoch und runter schalten. Doch nun möchte ich auch mit der Verstärker Fernbedienung hoch und runter schaltern.

Für den Test nehme ich die Taste Input 1 vom Verstärker und möchte damit das Programm runterschalten. Wo ist der Haken bei der Geschichte?

Vielen Dank und sinnliche Feiertage noch.

#include <IRremote.h>

#define Input_1 0x5EA198E7 // Verstärker Line 1  wird erkannt. Soll SAT Programm runter schalten

const int Analog_0 = A0;
const int RECV_PIN = 9;
IRrecv irrecv(RECV_PIN);
decode_results results;

class AppleRemote {
  enum{
    CMD_LEN = 32,
    UP =   0x80BF53AC, // Code für SAT Hoch --> Funktioniert nur bei Tasteneingabe "u" derzeit
    DOWN = 0x80BF4BB4, // Code für SAT Runter --> Funktioniert nur bei Tasteneingabe "d" derzeit
    PLAY = 0x77E1A05E,
    PREV = 0x77E1905E,
    NEXT = 0x77E1605E,
    MENU = 0x77E1C05E
  };

  IRsend mac;
  void send_command(const long command) {
    mac.sendNEC(command, CMD_LEN);
  }

public:
  void menu() {
    send_command(MENU); 
  }
  void play() {
    send_command(PLAY); 
  }
  void prev() {
    send_command(PREV); 
  }
  void next() {
    send_command(NEXT); 
  }
  void up()   {
    send_command(UP);
  }
  void down() {
    send_command(DOWN); 
  }
};

AppleRemote apple_remote;

const unsigned int BAUD_RATE = 9600;

void setup() {
  Serial.begin(9600);
  irrecv.enableIRIn();           // Start the receiver
  pinMode(Analog_0, OUTPUT);
}

void loop() { 
  if(irrecv.decode(&results)){ 
    if(results.value == Input_1){
      digitalWrite(Analog_0, HIGH); //Empfang testen, LED geht an wenn Signal "Input_1" kommt.
      apple_remote.down();  //FUNKTIONIERT NICHT. Wo ist mein Denkfehler?
    }
    irrecv.resume();
  }  
  if (Serial.available()) {
    const char command = Serial.read();
    switch (command) {
    case 'm':
        apple_remote.menu();
        break;
    case 'u':
        apple_remote.up();
        break;
    case 'd':
        apple_remote.down();
        break;
    case 'l':
        apple_remote.prev();
        break;
    case 'r':
        apple_remote.next();
        break;
    case 'p':
        apple_remote.play();
        break;
    default:
        break;
    }
  }
}

Du möchtest also mit einer Fenbedienung über Arduino verschiedene Geräte steuern?

Es gibt verschiedene Kodierungen und der Verstärker hat sicher eine ander wie Apple Geräte.

Grüße Uwe

Ja, genau richtig.

Ich habe sämtliche Codes bereits meiner Geräte ausgelesen und diese kann ich auch per Tasteneingabe verschicken und werden auch erkannt (LED zum Testen angeschlossen).

Der Apple Sketch dient mir lediglich als Muster.

Was ist dann Dein Problem?

Das Problem ist, das er nicht das Signal für Sat Runter sendet, wenn er das Signal "Input_1" empfängt.

Dann schick uns mal denn richtigen Sketch.
Grüße Uwe

Der Code steht doch im ersten Posting. Oder was meinst du?

Hattest Du nicht gesagt:

Ich habe sämtliche Codes bereits meiner Geräte ausgelesen und diese kann ich auch per Tasteneingabe verschicken und werden auch erkannt (LED zum Testen angeschlossen).
Der Apple Sketch dient mir lediglich als Muster.

Grüße Uwe

Im ersten Post steht mein Code den ich geschrieben habe. Es sind Kommentare dabei. Und diese Code geht NUR mit Tasteneingaben per Tastatur und NICHT per Signale von der Infrarot Fernbedienung.