如何更有效地旋轉(zhuǎn)步進電機 , 第 2 部分
在本系列的第 1 部分中,我提供了一些關(guān)鍵想法:
· 設(shè)計步進電機。
· 步進電機可能很耗電。
· 反電動勢 (EMF) 將指示步進電機負載。
· 您可以根據(jù)反電動勢控制輸出電流。
· 這可以幫助節(jié)省一些電力。
· 不談現(xiàn)行法規(guī)!
所以現(xiàn)在所有的概念工作都完成了(閱讀:根本沒有真正的工作),是時候看看這個概念是否有任何現(xiàn)實基礎(chǔ)。我可以制作一個可以根據(jù)反電動勢自動調(diào)整步進輸出電流以節(jié)省電力的系統(tǒng)原型嗎?讓我們來看看。
第 1 步:步進器選擇
我的辦公桌上碰巧有一個步進電機。我不知道它來自哪里,但我想我會使用它。有人親切地寫下“2.8A 1.4mH”。
第二步:步進驅(qū)動器選擇
正如我在第 1 部分中所揭示的,DRV8711可以對步進電機的反電動勢進行采樣。這比從頭開始設(shè)計整個系統(tǒng)要容易得多。
第三步:硬件原型
我必須親自感謝TI 設(shè)計了DRV8711 BoosterPack。我將使用此設(shè)備進行原型設(shè)計。
DRV8711器件是一款步進電機控制器,它使用外部N溝道MOSFET來驅(qū)動-個雙極步進電機或兩個刷式直流電機。該器件集成了一個微步進分度器,此分度器能夠支持全步長至1/256步長的步進模式。通過使用自適應(yīng)消隱時間和包括自動混合衰減模式在內(nèi)的多種不同的電流衰減模式,可實現(xiàn)非常平滑的運動系統(tǒng)配置。電機停止轉(zhuǎn)動由一個可選反電勢(EMF)輸出報告。
一個簡單的步進/方向或脈寬調(diào)制(PWM)接口可輕松連接至控制器電路。一個SPI串行接口被用來設(shè)定器件運行。輸出電流(扭矩)、步進模式、衰減模式和堵轉(zhuǎn)檢測功能都可以通過SPI串行接口進行編程。還提供了用于過流保護、短路保護、欠壓鎖定和過熱保護的內(nèi)部關(guān)斷功能。故障狀況通過FAULTn引腳進行指示,并且每種故障狀況通過SPI由一個專用位進行報告。
在線查看他的原理圖,我遇到了一個問題:BEMF 引腳未路由到 MSP430? LaunchPad。根據(jù)DRV8711數(shù)據(jù)表,此關(guān)鍵引腳是代表反電動勢的模擬電壓所在的位置。我需要將此電壓讀入 MSP430 設(shè)備,以便我可以控制何時增加或減少步進電機電流。
是時候做一些電路板修改了!正如你在下面看到的,我從板上取下了電位器(R6),并且非常不雅地將一根電線從 C7 焊盤連接到 POT 網(wǎng)絡(luò)。至少我知道 POT 網(wǎng)絡(luò)路由到 MSP430 模數(shù) (ADC) 輸入。
第 4 步:步進器表征
現(xiàn)在我可能擁有一個可以讓我對步進電機的反電動勢進行采樣的功能性硬件,我首先對電機進行表征,然后再進行閉環(huán)控制編程。在繼續(xù)進行 C 編程之前,我想確保這個計劃有機會成功。
當我說“表征電機”時,我只是指確定在電機旋轉(zhuǎn)時可以從DRV8711測量的反電動勢電壓。我可以通過使用BOOST-DRV8711 附帶的固件和圖形用戶界面 (GUI) 來實現(xiàn)這一點(如下圖 3 所示)。我想對幾個不同速度的幾個不同的反電動勢測量值進行平均。
這個 GUI 讓我可以控制電機速度,我將使用示波器查看 BEMF 引腳在做什么。每當準備好在 BEMF 引腳上查看新的反電動勢樣本時, DRV8711上稱為 STALLn/BEMFVn 的另一個引腳就會拉低。當然,這只適用于“外部停頓檢測模式”,這需要將 CTRL 寄存器中的 EXSTALL 位寫入 1。下面的圖 4 顯示了實時情況。
DRV8711能夠使用 STALL 寄存器的 VDIV 位將反電動勢按 1/4、1/8、1/16 或 1/32 縮放。我的電機似乎使用 1/4 設(shè)置在 318rpm 時輸出 3V,效果很好。扭矩寄存器還有一個稱為 SMPLTH 的位,它告訴DRV8711在對步進電機的反電動勢進行采樣之前等待多長時間。對于我的電機,50μs 的最低設(shè)置似乎工作正常。我設(shè)置了我的DRV8711寄存器設(shè)置并以不同的速度獲取了一些數(shù)據(jù)。
這個數(shù)據(jù)對我來說是非常鼓舞人心的。如果電機負載增加并且步進電機開始失速,反電動勢將反映這一點并減少。我需要根據(jù)反電動勢關(guān)閉控制回路,并確保在反電動勢減小時電機電流(扭矩)增加。相反,如果電機運行良好且反電動勢穩(wěn)定,那么我可能會降低電機電流(扭矩),因為沒有必要讓電機保持在這個速度下旋轉(zhuǎn)。