#include <IRremote.h>
#define IR_LED_PIN 2
#define ON_BUTTON_PIN 3
#define OFF_BUTTON_PIN 4
unsigned int irOnCode[] = {4500, 4500, 560, 1690, 560, 560};
unsigned int irOffCode[] = {4500, 4500, 560, 1690, 560, 560};
IRsend irsend(IR_LED_PIN); // Initialize the IR transmitter
int isOn = 0;
void setup() {
pinMode(ON_BUTTON_PIN, INPUT_PULLUP);
pinMode(OFF_BUTTON_PIN, INPUT_PULLUP);
Serial.begin(9600);
}
void loop() {
if (digitalRead(ON_BUTTON_PIN) == LOW && isOn == 0) {
isOn = 1;
sendDaikinCode(irOnCode, sizeof(irOnCode) / sizeof(irOnCode[0]));
Serial.println("Turn On");
delay(1000); // Debounce delay
}
if (digitalRead(OFF_BUTTON_PIN) == LOW && isOn == 1) {
isOn = 0;
sendDaikinCode(irOffCode, sizeof(irOffCode) / sizeof(irOffCode[0]));
Serial.println("Turn Off");
delay(1000); // Debounce delay
}
}
void sendDaikinCode(unsigned int *data, int length) { //send code with correct spacing
for (int i = 0; i < length; i++) {
if (data[i] == 1) {
irsend.mark(500);
irsend.space(1600);
} else {
irsend.mark(500);
irsend.space(560);
}
}
irsend.mark(0); // turn off led
}