上一篇文章講了可以利用PWM脈沖來(lái)控制電機(jī)的轉(zhuǎn)速, 并且占空比越高電機(jī)轉(zhuǎn)速越快。 前面說(shuō)的是利用按鍵來(lái)控制PWM脈沖信號(hào)的輸出, 但是在實(shí)際小車中總不能一直跟著小車跑吧, 那樣多沒(méi)意思。 所以這次我用紅外通信(遙控器)來(lái)進(jìn)行對(duì)小車的控制。 外部中斷0服務(wù)函數(shù)來(lái)對(duì)紅外信號(hào)進(jìn)行接收, 并且讓小車作出相應(yīng)的處理。 利用定時(shí)器T0來(lái)控制PWM脈沖信號(hào)的形成(即控制小車的轉(zhuǎn)速), 我在利用定時(shí)器控制PWM脈沖形成時(shí)遇到了一個(gè)問(wèn)題:我原本想的是用兩個(gè)定時(shí)器來(lái)控制兩個(gè)電機(jī)的轉(zhuǎn)動(dòng), 但是因?yàn)閮?yōu)先級(jí)的原因一直沒(méi)有成功, 在這里浪費(fèi)了很多時(shí)間, 最后和其他人的討論中發(fā)現(xiàn)用一個(gè)定時(shí)器也可以對(duì)兩個(gè)電機(jī)進(jìn)行控制, 讓其獨(dú)立的轉(zhuǎn)動(dòng)。 到現(xiàn)在 我的小車已經(jīng)能準(zhǔn)確的接收到遙控器接收的指令并按照指令進(jìn)行相應(yīng)的運(yùn)動(dòng)。 雖然在這個(gè)過(guò)程中出現(xiàn)了一些小插曲:比如昨天晚上51單片機(jī)燒了, 額, 連著開(kāi)發(fā)板一塊燒了 (捂臉), 還有實(shí)驗(yàn)室有多余的 (哈哈)。 到現(xiàn)在我的小車已經(jīng)具備基本的功能了, 前進(jìn)、后退、轉(zhuǎn)彎等, 雖然精度很差(因?yàn)槌绦蚴亲约簩懙模?但是也可以按照我的意愿跑了。 接下來(lái)應(yīng)該會(huì)在這各個(gè)小車的基礎(chǔ)上做一個(gè)尋跡的小車。 什么是在這個(gè)小車的基礎(chǔ)上呢? 就是這個(gè)小車功能不會(huì)刪除, 在加一個(gè)尋跡的功能; 然后可以在紅外控制和尋跡之間自由切換; 想玩哪個(gè)就玩那個(gè)。
代碼全部在附件里面。 由于附件不能添加.c文件, 所以代碼時(shí)用的.doc。 需要的朋友請(qǐng)自己復(fù)制到編譯器上面, 以免影響閱讀
|