PIC馬達控制器:你尚不知道的那些
幾周來我拿著一本《實際的生活和工作》(技術(shù)手冊)一直忙個不停,直到昨晚在布賴頓,我才終于完成了項目,結(jié)束了這種繁忙的日子。
本文引用地址:http://www.ex-cimer.com/article/268343.htmeve一直在檢驗他的音頻固件升級想法是否可行:并不是像80年代人們使用ZX Spectrum那樣,這里需要用squeaks和farts上傳Arduino“草圖”。當然,用文字描述看起來沒什么稀奇,不過eve的這種方法卻蘊藏的無限可能和巨大潛力,我想他不會停止對其進一步探索的腳步。
與此同時,國際航行學會聯(lián)合會(lain)需要一個簡單的項目——磁鐵控制型馬達控制器。我們已經(jīng)畫好了PCB并通過在面包板上驗證無誤,所以現(xiàn)在剩下的工作就是固件編碼。
(注意:大型號場效應MOSFET管IRF640用作馬達控制器,而不是簡單的NPN型晶體管。原因之一:如果選用小型200mA 2N2222A,那么馬達就會分得更大的電流,而此處選用的MOSFET管內(nèi)部含有一續(xù)流二極管,可用于反映感性負載的電流變化)
而事實上控制器的原理非常簡單——在霍爾效應傳感器上方放置一磁鐵則啟動馬達;再次將磁鐵靠近傳感器則關(guān)閉馬達。通常兩級狀態(tài)機的控制采用這種方法。但是我們還需要注意以下幾個方面:
首先,用PP3電池為馬達供電。
因此首先確保PIC微控制器沒有獨占整個電池供能,此外微控制器應時時對霍爾傳感器的輸入引腳狀態(tài)進行查詢,包括不需要時將PIC切換到睡眠狀態(tài)。當然,這也意味著需要設置喚醒中斷,將微控制器切換到工作模式。
下面是我們遇到的情況:
下面這幾點值得一提
a) 采用內(nèi)聯(lián)匯編。使用Oshonsoft編譯器的優(yōu)點在于,簡單通過使用匯編結(jié)束標志和匯編指令,就可以在基本代碼中加入?yún)R編語言。要注意,在匯編語句和命令之間必須使用Tab跳格或空格,否則編譯器會將下一個字符默認為標簽,而非指令。
b)采用INTCON.IOCIE = 1控制中斷。例如,IOCAN.5 = 1命令讓A5引腳變成低電平(連接電動機寄存器的上升沿叫做IOCAP)時,設備進入中斷狀態(tài)。值得慶幸的是這個中斷命令也可以用于設備喚醒。
c)盡管添加了注釋,測試時我們還是對“關(guān)機”程序進行了測試(通過使LED閃爍數(shù)次來提示設備即將進入睡眠狀態(tài))。事實證明,用這種方法體現(xiàn)設備是否進入睡眠模式很奏效(設備也確實沒有運行任何進程)。檢查方法是:注釋掉“關(guān)機”以及LED閃爍指令,并添加ASM:SLEEP睡眠語句注釋。此時LED應當閃爍,1至2秒左右的延遲后再次閃爍(固件運行正常情況時)。此時如果再次啟用睡眠語句,則LED只會閃爍一次:因為睡眠語句禁用了程序執(zhí)行權(quán)限。
當然,啟用中斷指令時應確保其他空閑的輸入引腳被浮置,防止意外觸發(fā)中斷。盡管IOCAN寄存器僅屏蔽輸出被監(jiān)測的引腳狀態(tài),但確保上拉電阻對于任何輸入引腳都能正常工作也不是壞事,我們只是以防萬一。
于是幾杯茶的工夫,我們就完成了這個相當簡單的項目。當然,我們也和那些書呆子胡扯了半天。編寫固件和測試完成后,剩下的就是給國際航行學會聯(lián)合會(lain)發(fā)送郵件,希望我們的成果對他們有所幫助。
霍爾傳感器相關(guān)文章:霍爾傳感器工作原理
霍爾傳感器相關(guān)文章:霍爾傳感器原理 上拉電阻相關(guān)文章:上拉電阻原理
評論