#include <IRremote.h>
#define RECV_PIN 2
#define DIGIT_1 12
#define DIGIT_2 10
#define DIGIT_3 9
#define DIGIT_4 6
#define SEG_A 7
#define SEG_B 11
#define SEG_C 15
#define SEG_D 17
#define SEG_E 18
#define SEG_F 8
#define SEG_G 14
#define SEG_DOT 16
IRrecv irrecv(RECV_PIN);
IRsend irsend;
decode_results results;
int x = 1;
void setup()
{
irrecv.enableIRIn(); // Start the receiver
Serial.begin(9600);
pinMode(13, OUTPUT);
pinMode(SEG_A, OUTPUT);
pinMode(SEG_B, OUTPUT);
pinMode(SEG_C, OUTPUT);
pinMode(SEG_D, OUTPUT);
pinMode(SEG_E, OUTPUT);
pinMode(SEG_F, OUTPUT);
pinMode(SEG_G, OUTPUT);
pinMode(SEG_DOT, OUTPUT);
pinMode(DIGIT_1, OUTPUT);
pinMode(DIGIT_2, OUTPUT);
pinMode(DIGIT_3, OUTPUT);
pinMode(DIGIT_4, OUTPUT);
digitalWrite(SEG_A, LOW);
digitalWrite(SEG_B, LOW);
digitalWrite(SEG_C, LOW);
digitalWrite(SEG_D, LOW);
digitalWrite(SEG_E, LOW);
digitalWrite(SEG_F, LOW);
digitalWrite(SEG_G, LOW);
digitalWrite(SEG_DOT, LOW);
delay(250);
}
void loop() {
digitalWrite(DIGIT_1, HIGH);
digitalWrite(DIGIT_2, LOW);
digitalWrite(DIGIT_3, LOW);
digitalWrite(DIGIT_4, LOW);
delay(x);
digitalWrite(DIGIT_1, LOW);
digitalWrite(DIGIT_2, HIGH);
digitalWrite(DIGIT_3, LOW);
digitalWrite(DIGIT_4, LOW);
delay(x);
digitalWrite(DIGIT_1, LOW);
digitalWrite(DIGIT_2, LOW);
digitalWrite(DIGIT_3, HIGH);
digitalWrite(DIGIT_4, LOW);
delay(x);
digitalWrite(DIGIT_1, LOW);
digitalWrite(DIGIT_2, LOW);
digitalWrite(DIGIT_3, LOW);
digitalWrite(DIGIT_4, HIGH);
delay(x);
if (irrecv.decode(&results)) {
irrecv.resume(); // Receive the next value
digitalWrite(13, HIGH);
}else{
digitalWrite(13, LOW);
}
if (Serial.read() != -1) {
digitalWrite(DIGIT_1, LOW);
digitalWrite(DIGIT_2, LOW);
digitalWrite(DIGIT_3, LOW);
digitalWrite(DIGIT_4, LOW);
for (int i = 0; i < 3; i++) {
irsend.sendSony(0xa90, 12); // Sony TV power code
delay(40);
}
irrecv.enableIRIn();
}
}