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