标题: 紅外線遥控發射個案問題....請幫忙 [打印本页]

作者: ivanTang    时间: 2020-7-4 10:01
标题: 紅外線遥控發射個案問題....請幫忙
各位 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);
   }







欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1