各位 arduino 高人, 小弟進行了復制紅外線遙控發射個案, 同一條件下,用arduino IDE 下范例檔IRrecvDump, 取得 電視, 和風扇遙控的 發射code ,
1) 電視, 是大細聲音試驗
2) 風扇是搖擺和風速試驗, 但奇怪現像是, 電視能有效接收大細聲, 風扇如何更改試驗都沒有反應.............
期望前輩伸出緩手幫幫忙, 指點一下, ...謝謝!!!
| //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); | | } |
|