Hier ist die Lösung: bei Klimaanlagen ist der IR-Code länger als wie bei gewöhnlichen Geräten.
Zu erster muss man in der arduino library IRremote.h den wert RAW von 100 auf 230 umstellen:
Code:
#define RAWBUF 100 // Length of raw duration buffer
Und hier ist er sketch dazu:
#include <IRremote.h>
IRsend irsend;
int RECV_PIN = 11;
IRrecv irrecv(RECV_PIN);
decode_results results;
unsigned long value;
int khz=38;
unsigned int Signal_0_0[] = {4444, 4384, 568, 1580, 568, 528, 568, 1540, 608, 1604, 568, 508, 568, 532, 568, 1580, 564, 536, 564, 508, 564, 1612, 568, 504, 568, 532, 568, 1540, 608, 1604, 568, 504, 568, 1608, 564, 512, 564, 1608, 568, 1580, 568, 1564, 608, 1564, 608, 504, 568, 1612, 564, 1580, 564, 1608, 572, 504, 568, 532, 568, 504, 568, 532, 568, 1540, 608, 528, 572, 504, 568, 1604, 568, 1580, 568, 1608, 564, 512, 568, 528, 572, 504, 568, 532, 568, 504, 568, 532, 568, 504, 568, 508, 592, 1580, 568, 1608, 564, 1584, 568, 1604, 568, 1580, 568, 5168, 4440, 4360, 588, 1584, 564, 536, 568, 1576, 572, 1604, 568, 504, 568, 532, 568, 1580, 568, 532, 568, 504, 568, 1604, 568, 508, 568, 532, 568, 1580, 564, 1612, 568, 504, 568, 1604, 568, 504, 596, 1580, 568, 1608, 564, 1580, 568, 1608, 568, 504, 568, 1568, 604, 1540, 608, 1568, 604, 532, 568, 508, 564, 512, 564, 536, 568, 1576, 568, 532, 568, 508, 568, 1564, 608, 1604, 568, 1580, 568, 528, 572, 508, 564, 508, 564, 536, 568, 504, 572, 528, 572, 504, 568, 532, 568, 1576, 568, 1604, 572, 1580, 564, 1608, 568, 1608, 568,};
void setup()
{
Serial.begin(9600);
irrecv.enableIRIn();
}
void loop() {
while(Serial.available()>= 0){
if (Serial.read() == '0') {
Serial.println("Transmitting");
for (int i = 0; i < 3; i++) {
irsend.sendRaw(Signal_0_0, sizeof(Signal_0_0)/sizeof(int), khz);
delay(40);
}
}else if (irrecv.decode(&results)) {
Serial.println("Receiving");
Serial.println(results.value, HEX);
value = results.value;
irrecv.resume();
}
}
}