| //TV up/Down OK |
| //Fun Swing/Wind Not_ok |
// arduino UNO 板
|
| #include <IRremote.h> |
| IRsend irsend; |
| int up=0; //電視大聲 |
| int Down=0; //電視細聱 |
| int Swing=0; //風扇搖擺 |
| int Wind=0; //風扇風速大細 |
| void setup(){ |
|
| pinMode(12, OUTPUT); |
| pinMode(13, OUTPUT); |
| |
| // pinMode(3, OUTPUT); |
| pinMode(8, INPUT); |
| pinMode(9, INPUT); |
| pinMode(10, INPUT); |
| pinMode(11, INPUT); |
| } |
|
| void loop() { |
| |
| up= digitalRead(8); |
| Down= digitalRead(9); |
| Swing= digitalRead(10); |
| Wind= digitalRead(11); |
| // 此段電視大聲正常 |
| if( up == HIGH ){ |
| int khz = 38; |
| unsigned int irSignal[] = {3000, 2900, 550, 1450, 500, 1450, 550, 1450, 500, 1450, 550, 1450, 550, 1400, 550, 2450, 500, 1450, 550, 1450, 550, 1400, 550, 1450, 550, 2400, 550, 1450, 550, 1450, 500, 2450, 550, 2400, 550, 3900, 550}; //AnalysIR Batch Export (IRremote) - RAW |
| irsend.sendRaw(irSignal, sizeof(irSignal) / sizeof(irSignal[0]), khz); |
| digitalWrite(12, HIGH); |
| delay(100); |
| digitalWrite(12, LOW); |
| delay(100); |
| } |
| // 此段電視細聲正常 |
| else if( Down == HIGH ) { |
| int khz = 38; |
| unsigned int irSignal[] = {3000, 2950, 500, 1450, 550, 1450, 500, 1450, 550, 1450, 550, 1450, 500, 1450, 550, 2400, 550, 1450, 550, 1450, 500, 1450, 550, 1450, 550, 2400, 550, 1450, 500, 1450, 550, 2400, 550, 1450, 550, 3900, 550 }; //AnalysIR Batch Export (IRremote) - RAW |
| irsend.sendRaw(irSignal, sizeof(irSignal) / sizeof(irSignal[0]), khz); |
| digitalWrite(13, HIGH); |
| delay(100); |
| digitalWrite(13, LOW); |
| delay(100); |
| } |
| // 此段風扇搖擺,沒有反應, |
| else if( Swing == HIGH ) { |
| int khz = 23; //已試改 23,24,25 全不行 |
| unsigned int rawData[23]= {1300,400, 1250,400, 450,1300, 1250,400, 1250,450, 400,1300, 400,1250, 1300,400, 400,1300, 400,1300, 400,1250, 450}; // 39D41DC6 |
| irsend.sendRaw(rawData, sizeof(rawData) / sizeof(rawData[0]), khz); |
| digitalWrite(12, HIGH); |
| delay(500); |
| digitalWrite(12, LOW); |
| delay(500); |
| } |
| // 此段風扇風速沒有反應 |
| else if( Wind == HIGH ) { |
| int khz = 23; //已試改 23,24,25 全不行 |
| unsigned int rawData[23]= {1250,400, 1300,400, 450,1250, 1250,450, 1250,400, 450,1250, 450,1250, 450,1200, 450,1300, 400,1250, 1300,400, 400}; // 143226DB |
| irsend.sendRaw(rawData, sizeof(rawData) / sizeof(rawData[0]), khz); |
| digitalWrite(13, HIGH); |
| delay(500); |
| digitalWrite(13, LOW); |
| delay(500); |
| } |