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