15275285755 发表于 2015-4-17 23:17:11

用红外遥控控制舵机,想做成电视音量那样,按住遥控,持续运转

用红外遥控做项目,打算做成一按遥控上的一个键,舵机持续正向运转,再按另一个键,舵机持续反向运转,但是现在按一次,它只转一下,并非持续转,求助

#include <IRremote.h>
int RECV_PIN = A0;
#include <Servo.h>
Servo myservo1;
int i = 90;
int a;
long LED1A = 0xE318261B;
long LED1B = 0x511DBB;
long LED2A = 0xEE886D7F;
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup()
{
pinMode(RECV_PIN, INPUT);
myservo1.attach(3);        //IO输出
Serial.begin(9600);
irrecv.enableIRIn();
}

void loop()
{
if (irrecv.decode(&results))
{
    Serial.println(results.value, HEX);//以16进制换行输出接收代码
Serial.println();//为了便于观看输出结果增加一个空
{irrecv.resume();
delay(5);}
// 接收下一个值}

if (results.value == LED1A )
      
   {
a=i;
a+=5;
myservo1.write(a);
i=a;
}
if (results.value == LED1B )
      
   {
a=i;
a-=5;
myservo1.write(a);
i=a;
}
}
delay(5);


}

林定祥 发表于 2015-4-18 04:42:37

有的遥控器按下不放只会发出一次码,那永远实现不了你的功能, 用摄像头观察下。

zoologist 发表于 2015-4-18 07:46:30



首先你要确定你舵机是可以连续旋转的

做个状态机,用按键切换状态

suoma 发表于 2015-4-18 07:58:54

现在按一次,它只转一下,并非持续转,检测脉冲是否连续

wwwusr 发表于 2015-4-18 08:18:27

你自己做一个红外发射器吧。
你手里的现成的mp3遥控器,不出意外,都是发NEC码的,不论哪个键,按下不放时,只会发出一次特定码,之后就一直在不断的重复发FFFFFF。
只能帮你到这儿了。

15275285755 发表于 2015-4-18 09:06:09

林定祥 发表于 2015-4-18 04:42 static/image/common/back.gif
有的遥控器按下不放只会发出一次码,那永远实现不了你的功能, 用摄像头观察下。

嗯嗯,谢谢

15275285755 发表于 2015-4-18 09:07:53

zoologist 发表于 2015-4-18 07:46 static/image/common/back.gif
首先你要确定你舵机是可以连续旋转的

做个状态机,用按键切换状态

就是做一个往复的函数,用红外做切断吗?
我也这么想过,可是不知道怎么实现啊

15275285755 发表于 2015-4-18 09:08:13

suoma 发表于 2015-4-18 07:58 static/image/common/back.gif
现在按一次,它只转一下,并非持续转,检测脉冲是否连续

怎么检测呢?

15275285755 发表于 2015-4-18 09:08:41

wwwusr 发表于 2015-4-18 08:18 static/image/common/back.gif
你自己做一个红外发射器吧。
你手里的现成的mp3遥控器,不出意外,都是发NEC码的,不论哪个键,按下不放时 ...

嗯,那我换个家用的遥控器试试

zoologist 发表于 2015-4-18 09:54:44

本帖最后由 zoologist 于 2015-4-18 09:57 编辑

15275285755 发表于 2015-4-18 09:07 static/image/common/back.gif
就是做一个往复的函数,用红外做切断吗?
我也这么想过,可是不知道怎么实现啊

大不了你的舵机控制输出单独写在一个timer的中断里面

比如,你搞一个数组 output 然后timer去读这个数组,根据数组指示进行输出

然后你收到的遥控信息直接去修改数组

suoma 发表于 2015-4-18 11:04:13

15275285755 发表于 2015-4-18 09:08 static/image/common/back.gif
怎么检测呢?

            示波器

林定祥 发表于 2015-4-18 17:03:42

15275285755 发表于 2015-4-18 09:08 static/image/common/back.gif
怎么检测呢?

用手机的摄像头看红外发射,看他连续发光还是一次发光.
页: [1]
查看完整版本: 用红外遥控控制舵机,想做成电视音量那样,按住遥控,持续运转