Hardware Required Arduino uno Board38 Khzsensor LED USB
Hardware Required Arduino uno Board、38 Khz紅外線sensor、藍 芽模組、紅外線發射LED、紅外線遙控器、 USB cable、麵包版、Android手機、冷氣、電視。
Schematic 1
Schematic 2
Arduino UNO
Demo 冷氣Demo影片 http: //youtu. be/ny. K 7 FY 2_tw 4 電視Demo影片 http: //youtu. be/gnkjcnmz. Qt 4
Code:紅外線接收解碼 #include <IRremote. h> const int ir. Receiver. Pin = 2; IRrecv irrecv(ir. Receiver. Pin); decode_results; void setup() { Serial. begin(9600); irrecv. enable. IRIn(); }
void show. IRProtocol(decode_results *results) { Serial. print("Protocol: "); switch(results->decode_type) { case RC 5: case NEC: Serial. print("RC 5"); break; Serial. print("NEC"); case RC 6: break; Serial. print("RC 6"); break; case SONY: default: Serial. print("SONY"); Serial. print("Unknown encoding"); break; }
Serial. print(", ir. Code: "); Serial. print(results->value, HEX); // 紅外線編碼 Serial. print(", bits: "); Serial. println(results->bits); // 紅外線編碼位元數 } void loop() { if (irrecv. decode(&results)) { show. IRProtocol(&results); irrecv. resume(); } }
Code:藍芽接收與紅外線發射 #include <IRremote. h> IRsend irsend; void setup() { Serial. begin(9600); }
void loop() { if(Serial. available()) { unsigned charreceived = Serial. read(); switch(charreceived) { case 'q': irsend. NEC(0 x. A 05 D 48 B 7, 32); Serial. println(" air conditioner power"); break; case 'w': irsend. NEC(0 x. A 05 D 18 E 7, 32); Serial. println(" degreeup"); break;
case 'e': irsend. NEC(0 x. A 05 D 9867, 32); Serial. println(" degreedown"); break; case 'r': irsend. NEC(0 x. A 05 D 58 A 7, 32); Serial. println(" time"); break; case 'a': irsend. NEC(0 x 20 DF 10 EF, 32); Serial. println(" TV power"); break;
case '1': irsend. NEC(0 x 20 DF 8877, 32); Serial. println(" TV 1"); break; case '2': irsend. NEC(0 x 20 DF 48 B 7, 32); Serial. println(" TV 2"); break; case '3': irsend. NEC(0 x 20 DFC 837, 32); Serial. println(" TV 3"); break;
case '4': irsend. NEC(0 x 20 DF 28 D 7, 32); Serial. println(" TV 4"); break; case '5': irsend. NEC(0 x 20 DFA 857, 32); Serial. println(" TV 5"); break; case '6': irsend. NEC(0 x 20 DF 6897, 32); Serial. println(" TV 6"); break;
case '7': irsend. NEC(0 x 20 DFE 817, 32); Serial. println(" TV 7"); break; case '8': irsend. NEC(0 x 20 DF 18 E 7, 32); Serial. println(" TV 8"); break; case '9': irsend. NEC(0 x 20 DF 9867, 32); Serial. println(" TV 9"); break;
case '0': irsend. NEC(0 x 20 DF 08 F 7, 32); Serial. println(" TV 0"); break; case 's': irsend. NEC(0 x 20 DF 40 BF, 32); Serial. println(" TV volume+"); break; case 'x': irsend. NEC(0 x 20 DFC 03 F, 32); Serial. println(" TV volume-"); break;
case 'd': irsend. NEC(0 x 20 DF 00 FF, 32); Serial. println(" TV channel+"); break; case 'c': irsend. NEC(0 x 20 DF 807 F, 32); Serial. println(" TV channel-"); break; case 'z': irsend. NEC(0 x 20 DFD 02 F, 32); Serial. println(" tv/video change"); break; default: break; } Serial. flush(); } delay(10); }
- Slides: 22