日常提问,丰富自己。。。。
在此提前谢过各位的指点,感激之情,不胜言表!!!!
在此提前谢过各位的指点,感激之情,不胜言表!!!!
在此提前谢过各位的指点,感激之情,不胜言表!!!!
提问背景:我用51单片机开发板配的遥控器制作了一个遥控车,但是发现自己的遥控车和超市买的动作性质是不同的。
遥控原理:我先确定好遥控器每个按键发送的数据码是什么,然后用switch语句进行选择操作。代码如下
while(1)
{
switch(IrValue[2])
{
case(0x45):
startstop();IrValue[2]=0;break;
case(0x18):
direction(0x55);IrValue[2]=0;break;
}
}
其中:IrValue[2]是数据码字节,当IrValue[2]=0x45时,代表按下某一个按键发送的数据码字节内容是0x45
我的问题是:当我按下数据码为0x18的按键时,只能让小车一直跑,按键松手了也一直跑。所以我就想,如果这个遥控器是以一定频率发射红外线信号的话,就不会出现这种情况,因为我在操作完direction函数后,用IrValue[2]=0把数据码清空了,所以在下一次循环时就不会执行direction。所以我下定结论,红外遥控器没有以一定频率发射红外线信号。那么我要如何去做才能实现遥控器按下,小车跑,遥控器按键松开,小车停止呢???(在不换遥控器的前提下)
如果这种遥控器是不可以实现这个功能的,那我要如何才能实现这个功能
PS:可不可以用手机上一个软件实现和我手里这个遥控器发射一摸一样数据格式,我的遥控器数据格式是
|