XIAOBAI 发表于 2014-11-5 22:12:18

请教!

为什么直流电机速度太快时,红外遥控器会失灵?

zoologist 发表于 2014-11-5 22:18:39

供电不足?

XIAOBAI 发表于 2014-11-5 22:27:27

zoologist 发表于 2014-11-5 22:18 static/image/common/back.gif
供电不足?

#include <IRremote.h>
#include <intrins.h>
intn=60;
int RECV_PIN = 11;   //红外线接收器OUTPUT端接在pin 11
int motor = 6;      // 定义LED引脚为6
IRrecv irrecv(RECV_PIN);   // 定义IRrecv 对象来接收红外线信号
decode_results results;   //解码结果放在decode_results构造的对象results里
unsigned char light_flg=0;//定义一个变量
void irdisplay(unsigned long value)//按下按键后,显示本遥控对应的按键
{
switch(value){         //判定按下的是哪个按键,串口显示按钮名称
case 0xFFA25D:
Serial.println("POWER");
            light_flg=!light_flg;//取反      
            if(light_flg==1)
            {
                analogWrite(motor, n);    //静音键按下,执行点亮LED灯
            }
            else
                digitalWrite(motor, LOW);    //电源键按下,执行关闭LED灯
    break;
case 0xFF9867:
   Serial.println("-");
             n=n-50;
             if (n<0) {n=255;}
             analogWrite(6,n);
    break;
case 0xFF02FD:
Serial.println("+");
             n=n+50;
             if (n>255) {n=0;}
             analogWrite(6,n);
    break;
      }
}
void loop()
{
    if (irrecv.decode(&results))
   {
    //解码成功,收到一组红外线信号
    irdisplay(results.value);   
    irrecv.resume();         
   }
}
void setup()
{
pinMode(motor,OUTPUT);          // 定义LED为输出引脚
   Serial.begin(9600);          //开启串口通信,并设定波特率为9600
irrecv.enableIRIn();          //启动红外解码
}

应该不是吧!
页: [1]
查看完整版本: 请教!