找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 1791|回復(fù): 6
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)紅外控制遙控車程序的問(wèn)題 我真的有很多問(wèn)號(hào)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
日常提問(wèn),豐富自己。。。。

在此提前謝過(guò)各位的指點(diǎn),感激之情,不勝言表!。!

在此提前謝過(guò)各位的指點(diǎn),感激之情,不勝言表。。!

在此提前謝過(guò)各位的指點(diǎn),感激之情,不勝言表!。!



提問(wèn)背景:我用51單片機(jī)開發(fā)板配的遙控器制作了一個(gè)遙控車,但是發(fā)現(xiàn)自己的遙控車和超市買的動(dòng)作性質(zhì)是不同的。

遙控原理:我先確定好遙控器每個(gè)按鍵發(fā)送的數(shù)據(jù)碼是什么,然后用switch語(yǔ)句進(jìn)行選擇操作。代碼如下

while(1)

{

                switch(IrValue[2])
                        {         
                                case(0x45):
                                         startstop();IrValue[2]=0;break;               
                                case(0x18):
                                         direction(0x55);IrValue[2]=0;break;        
                         }
}
其中:IrValue[2]是數(shù)據(jù)碼字節(jié),當(dāng)IrValue[2]=0x45時(shí),代表按下某一個(gè)按鍵發(fā)送的數(shù)據(jù)碼字節(jié)內(nèi)容是0x45

我的問(wèn)題是:當(dāng)我按下數(shù)據(jù)碼為0x18的按鍵時(shí),只能讓小車一直跑,按鍵松手了也一直跑。所以我就想,如果這個(gè)遙控器是以一定頻率發(fā)射紅外線信號(hào)的話,就不會(huì)出現(xiàn)這種情況,因?yàn)槲以诓僮魍阣irection函數(shù)后,用IrValue[2]=0把數(shù)據(jù)碼清空了,所以在下一次循環(huán)時(shí)就不會(huì)執(zhí)行direction。所以我下定結(jié)論,紅外遙控器沒(méi)有以一定頻率發(fā)射紅外線信號(hào)。那么我要如何去做才能實(shí)現(xiàn)遙控器按下,小車跑,遙控器按鍵松開,小車停止呢???(在不換遙控器的前提下)
如果這種遙控器是不可以實(shí)現(xiàn)這個(gè)功能的,那我要如何才能實(shí)現(xiàn)這個(gè)功能


PS:可不可以用手機(jī)上一個(gè)軟件實(shí)現(xiàn)和我手里這個(gè)遙控器發(fā)射一摸一樣數(shù)據(jù)格式,我的遙控器數(shù)據(jù)格式是

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:341045 發(fā)表于 2020-3-29 15:06 | 只看該作者
while(1)
{
                switch(IrValue[2])
                        {         
                                case(0x45):
                                         startstop();IrValue[2]=0;break;               
                                case(0x18):
                                         direction(0x55);IrValue[2]=0;break;        
                                //估計(jì)是你還有數(shù)據(jù)沒(méi)截取, 如釋放鍵碼, 新加下面試下
                                default:

                                         
                                         break;


                         }
}
回復(fù)

使用道具 舉報(bào)

板凳
ID:367369 發(fā)表于 2020-3-29 15:13 | 只看該作者
direction();可以發(fā)出來(lái)嗎?  你的程序應(yīng)該是IrValue[2]=0x18;然后電機(jī)的信號(hào)線的狀態(tài)變?yōu)榍斑M(jìn)狀態(tài);當(dāng)IrValue[2]=0時(shí)你的電機(jī)的狀態(tài)沒(méi)有更新
回復(fù)

使用道具 舉報(bào)

地板
ID:341045 發(fā)表于 2020-3-29 15:16 | 只看該作者
//估計(jì)是遙控的接收碼你沒(méi)列全, 你這樣試下
while(1)
{
                switch(IrValue[2])
                        {         
                                case(0x45):
                                         startstop();IrValue[2]=0;break;               
                                case(0x18):
                                         direction(0x55);IrValue[2]=0;break;

                                //你應(yīng)該是截取的數(shù)據(jù)碼不全, 你試加下面幾句試下        
                                default:
                                         startstop();IrValue[2]=0;  //電機(jī)停, 接收數(shù)據(jù)清0, 不是這二句就按你的改
                                         break;
                         }
}
回復(fù)

使用道具 舉報(bào)

5#
ID:703220 發(fā)表于 2020-3-30 10:12 | 只看該作者
game灬boy 發(fā)表于 2020-3-29 15:13
direction();可以發(fā)出來(lái)嗎?  你的程序應(yīng)該是IrValue[2]=0x18;然后電機(jī)的信號(hào)線的狀態(tài)變?yōu)榍斑M(jìn)狀態(tài);當(dāng)IrV ...

direction 里面就是對(duì)P1總線賦值
direction(u8 i)
{
        P1=i;
}
P1八個(gè)IO口控制兩個(gè)L293D的信號(hào),以此來(lái)讓電機(jī)正反轉(zhuǎn)
回復(fù)

使用道具 舉報(bào)

6#
ID:367369 發(fā)表于 2020-3-30 12:03 | 只看該作者
壯大51 發(fā)表于 2020-3-30 10:12
direction 里面就是對(duì)P1總線賦值
direction(u8 i)
{

main你應(yīng)該可以改成
while(1)
{
if (IrValue[2]==0x18)
  direction(0x55);
else
direction(0x00);
}
回復(fù)

使用道具 舉報(bào)

7#
ID:367369 發(fā)表于 2020-3-30 12:08 | 只看該作者
壯大51 發(fā)表于 2020-3-30 10:12
direction 里面就是對(duì)P1總線賦值
direction(u8 i)
{

你也說(shuō)了“因?yàn)槲以诓僮魍阣irection函數(shù)后,用IrValue[2]=0把數(shù)據(jù)碼清空了,所以在下一次循環(huán)時(shí)就不會(huì)執(zhí)行direction”
所以你的P1狀態(tài)為上次操作后的狀態(tài)即 P1=0x55;電機(jī)前進(jìn),而后面的程序沒(méi)有對(duì)P1的狀態(tài)進(jìn)行改變;所以車一直前進(jìn)
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表