Zum Abschluss zu diesem Thema hier der vollständige Korrekte Code mit 2 Sendesignalen(eins für Gerät1 und eins für Gerät2):
# define stereo 6 // nehmen wir mal Pin 6
# define fernseh 7 // nehmen wir mal Pin7
boolean switchstereoChanged() {
static int oldState1 = LOW; // oder auch HIGH, je nachdem
int currentState1 = digitalRead(stereo);
if(currentState1 == oldState1) //wenn low dann= low
return false;
oldState1 = currentState1;
Serial.print("Status changed1");
Serial.println(currentState1);
return true;
}
boolean switchfernsehChanged() {
static int oldState2 = LOW; // oder auch HIGH, je nachdem
int currentState2 = digitalRead(fernseh);
if(currentState2 == oldState2) //wenn low dann= low
return false;
oldState2 = currentState2;
Serial.print("Status changed2");
Serial.println(currentState2);
return true;
}
#include <IRremote.h>
IRsend irsend;
void setup()
{
pinMode(stereo,INPUT_PULLUP); // internen Pullup anschalten - unbetätigt auf HIGH
Serial.begin(9600);
pinMode(fernseh,INPUT_PULLUP); // internen Pullup anschalten - unbetätigt auf HIGH
Serial.begin(9600);
}
void loop()
{
if (switchstereoChanged()) {
unsigned int rawData[99] = {3350,1600, 400,450, 400,450, 350,1300, 400,450, 350,1300, 400,400, 400,1300, 350,450, 400,450, 400,1250, 400,450, 400,400, 400,1300, 350,1300, 400,450, 350,450, 400,450, 350,450, 400,450, 350,500, 350,1300, 400,400, 400,1300, 350,450, 400,1300, 350,450, 400,450, 350,450, 400,1300, 350,1300, 400,450, 350,450, 400,450, 400,400, 400,450, 400,450, 350,450, 350,500, 400,1250, 400,450, 400,1250, 400,450, 350,450, 350,500, 400,450, 350,1300, 350,450, 400,450, 400}; // NEC 4B36D32C
irsend.sendRaw(rawData, sizeof(rawData) / sizeof(rawData[0]), 38);
}
if (switchfernsehChanged()) {
unsigned int rawData[67] = {8950,4350, 600,550, 550,550, 550,550, 550,600, 500,600, 500,600, 500,550, 550,600, 500,1700, 550,1600, 600,1700, 500,1650, 550,1700, 500,1650, 550,550, 600,1600, 550,1750, 500,550, 550,1700, 500,1650, 550,600, 550,500, 550,550, 600,550, 550,550, 550,1650, 550,600, 500,600, 500,1700, 500,1700, 550,1600, 600,1600, 600}; // NEC 4B36D32C
irsend.sendRaw(rawData, sizeof(rawData) / sizeof(rawData[0]), 38);
}
}
Ich hoffe die Lösung dazu kann euch genauso helfen wie mir.
Schönen Tag euch allen
Lukas