新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 牛人業(yè)話 > PIC馬達(dá)控制器:你尚不知道的那些

PIC馬達(dá)控制器:你尚不知道的那些

—— PIC馬達(dá)控制器:還有你尚未聽聞的
作者:EEPW編譯 時間:2015-01-19 來源:電子產(chǎn)品世界 收藏

  幾周來我拿著一本《實際的生活和工作》(技術(shù)手冊)一直忙個不停,直到昨晚在布賴頓,我才終于完成了項目,結(jié)束了這種繁忙的日子。

本文引用地址:http://www.butianyuan.cn/article/268343.htm

  eve一直在檢驗他的音頻固件升級想法是否可行:并不是像80年代人們使用ZX Spectrum那樣,這里需要用squeaks和farts上傳Arduino“草圖”。當(dāng)然,用文字描述看起來沒什么稀奇,不過eve的這種方法卻蘊(yùn)藏的無限可能和巨大潛力,我想他不會停止對其進(jìn)一步探索的腳步。

  與此同時,國際航行學(xué)會聯(lián)合會(lain)需要一個簡單的項目——磁鐵控制型。我們已經(jīng)畫好了PCB并通過在面包板上驗證無誤,所以現(xiàn)在剩下的工作就是固件編碼。

 (注意:大型號場效應(yīng)MOSFET管IRF640用作,而不是簡單的NPN型晶體管。原因之一:如果選用小型200mA 2N2222A,那么馬達(dá)就會分得更大的電流,而此處選用的MOSFET管內(nèi)部含有一續(xù)流二極管,可用于反映感性負(fù)載的電流變化)

  而事實上控制器的原理非常簡單——在霍爾效應(yīng)傳感器上方放置一磁鐵則啟動馬達(dá);再次將磁鐵靠近傳感器則關(guān)閉馬達(dá)。通常兩級狀態(tài)機(jī)的控制采用這種方法。但是我們還需要注意以下幾個方面:

  首先,用PP3電池為馬達(dá)供電。

  因此首先確保微控制器沒有獨占整個電池供能,此外微控制器應(yīng)時時對霍爾傳感器的輸入引腳狀態(tài)進(jìn)行查詢,包括不需要時將切換到睡眠狀態(tài)。當(dāng)然,這也意味著需要設(shè)置喚醒中斷,將微控制器切換到工作模式。

  下面是我們遇到的情況:

  下面這幾點值得一提

  a) 采用內(nèi)聯(lián)匯編。使用Oshonsoft編譯器的優(yōu)點在于,簡單通過使用匯編結(jié)束標(biāo)志和匯編指令,就可以在基本代碼中加入?yún)R編語言。要注意,在匯編語句和命令之間必須使用Tab跳格或空格,否則編譯器會將下一個字符默認(rèn)為標(biāo)簽,而非指令。

  b)采用INTCON.IOCIE = 1控制中斷。例如,IOCAN.5 = 1命令讓A5引腳變成低電平(連接電動機(jī)寄存器的上升沿叫做IOCAP)時,設(shè)備進(jìn)入中斷狀態(tài)。值得慶幸的是這個中斷命令也可以用于設(shè)備喚醒。

  c)盡管添加了注釋,測試時我們還是對“關(guān)機(jī)”程序進(jìn)行了測試(通過使LED閃爍數(shù)次來提示設(shè)備即將進(jìn)入睡眠狀態(tài))。事實證明,用這種方法體現(xiàn)設(shè)備是否進(jìn)入睡眠模式很奏效(設(shè)備也確實沒有運(yùn)行任何進(jìn)程)。檢查方法是:注釋掉“關(guān)機(jī)”以及LED閃爍指令,并添加ASM:SLEEP睡眠語句注釋。此時LED應(yīng)當(dāng)閃爍,1至2秒左右的延遲后再次閃爍(固件運(yùn)行正常情況時)。此時如果再次啟用睡眠語句,則LED只會閃爍一次:因為睡眠語句禁用了程序執(zhí)行權(quán)限。

  當(dāng)然,啟用中斷指令時應(yīng)確保其他空閑的輸入引腳被浮置,防止意外觸發(fā)中斷。盡管IOCAN寄存器僅屏蔽輸出被監(jiān)測的引腳狀態(tài),但確保上拉電阻對于任何輸入引腳都能正常工作也不是壞事,我們只是以防萬一。

  于是幾杯茶的工夫,我們就完成了這個相當(dāng)簡單的項目。當(dāng)然,我們也和那些書呆子胡扯了半天。編寫固件和測試完成后,剩下的就是給國際航行學(xué)會聯(lián)合會(lain)發(fā)送郵件,希望我們的成果對他們有所幫助。

霍爾傳感器相關(guān)文章:霍爾傳感器工作原理


霍爾傳感器相關(guān)文章:霍爾傳感器原理
上拉電阻相關(guān)文章:上拉電阻原理


關(guān)鍵詞: PIC 馬達(dá)控制器

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉