特別注意:測量電壓的時候千萬要小心,不要短路到不該碰到的接點,很可能會造成4988燒毀!!! 若沒把握,可以先貼上絕緣膠帶,只露出測量點。
特別注意:4988的輸出電流,超過 1A 的話,必須加裝散熱片。超過 1.5A,需要再加風扇。即使有安裝散熱片、風扇,限制電流都不可以超過 2A,否則 IC 會燒毀。
首先,要得到基本完整的概念,可以仔細閱讀 Pololu 的 「A4988 Stepper Motor Driver Carrier, Black Edition」pdf 檔,還有 A4988 的 datasheet。另外 reprap 網站的說明 (https://reprap.org/wiki/Sanguinololu) 也是一個很好的開始。
其他參考 網頁,可以看看別人的經驗,再回頭仔細把前述資料看一次,就會更有概念。
- https://www.hkepc.com/forum/viewthread.php?fid=259&tid=2553842&extra=&page=1
- http://diy3dprint.blogspot.com/2013/11/4988.html
- https://all3dp.com/2/vref-calculator-tmc2209-tmc2208-a4988/
A4988 概述
下面的圖檔表示此驅動板的使用示意圖 (擷取自 Pololu 的 pdf 檔)
A4988 控制板上有一個半可調電阻,可以調整步進馬達的限制電流。要知道限制電流多大,最直接的辦法是測量接到步進馬達的電流,但那樣做實在太危險了,可能會把板子或電錶都燒了。比較保險的做法是量可調電阻中間抽頭的電壓值 Vref。
下面的圖檔是此驅動板的電路圖 (擷取自 Pololu 的 pdf 檔)
下圖是 A4988 IC 的方塊圖。
如何設定限制電流
可以看到馬達的電流會流經 Rs,測量 Rs 的壓降即可換算得到馬達線圈的電流。控制流經馬達的電流大小可以達到細步的功能。電流限制 (Current Limit) 的計算,如下面的公式
IL = Vref / (8*Rs)
Pololu 的板子的 Rs 為 0.05Ω,而大陸的 clone 板子大都是 0.1Ω。SMD 的標示為 R100,可以把 R 看成是小數點,這要讀數就很容易理解了。
要決定多少的限制電流,可以參考 reprap 網站的說明 (https://reprap.org/wiki/Sanguinololu)
A good starting point for the current is times its rated current. This is typically ~1A with the recommended 1.68A NEMA17 motors and that is about the maximum current the Pololu can deliver without a heatsink or a fan. Note that the rated current of a motor is usually that which gives an 80C temperature rise, which is too hot for plastic brackets, hence the reason to under-run them.
假如馬達的額定電流為 1.7A,則工作電流決定為 1.7A *0.7 =1.19A,就設為 1.2A 吧。考慮大家應該都會買 clone 的 A4988板,則 Rs 為 0.1Ω。計算得到 Vref = 1.2A * 0.8 = 0.96V。
不過,後來量出廠的電壓都是 0.66V 左右,最後就都用這個電壓值了,電流為 0.83A,使用起來也都沒有問題。電流小一點,比較安全一點。
驅動馬達的電源和電路板本身用的電源是分開的,Vref 是由直接由電路板的電源和分壓電阻決定的。因此測量 Vref,可以把 A4988 的板子插在主控板上,接上電源來測試,不需接馬達及其他連線。例如,Makerbase 的 MKS. Gen_L V1.0,供應的 Vdd 是 5V,雖然板子使用的電源是 12V。
決定限制電流
在不同地方出現的 0.7,或 70% 是一個容易讓人誤解的地方。
首先所謂的馬達額定電流,例如 1.7A,就是超過這電流馬達就會燒了。並不是馬達工作時要供應這麼大的電流。在 reprap 網站的說明是指,使用額定電流的 70% 是一個不錯的選擇,也是比較安全的。
另外,在 Pololu 的說明提到另一個限制電流的 70%,那是指使用 full step 來控制步進馬達時,兩個 phase 的線圈都會保持在 ON 的狀態,只是極性相同或相反。而流經每個線圈的電流會是限制電流的 70%。所以,這段敘述完全可以忽略,以免搞得更糊塗,除非你要用實際測量線圈電流來調整 Vref。
結論是,你想用多少電流來驅動馬達,就把限制電流設成那個值,如額定電流的 70%。工作電流越大,馬達的力矩越大,反應更快。電流越小,加矩越小,至於會不會造成失步呢? 我推測若是力矩不夠造成的失步,應該不會是偶發性的,而是持續性的。
另外,要考慮 A4988 的工作條件,在未加散熱片或風扇的情況下,驅動板最大能提供約 1A的電流。假如供應到更大的電流,會讓 IC 的溫度達到上升到 80C,塑膠外盒可能會熔化了。A4988 IC 內部有保護電,過熱就會 shutdown 電路,切斷 FET 的輸出,直到不再過熱才會繼續恢復 FET 的輸出。所以,若是 A4988 驅動板太熱,則會造成步進馬達失步。若碰到這情形,解決辦法是降低工作電流,以及加強散熱。
步進馬達的細步控制
一般解釋步進馬達的動作原理,都是指 full-step 運作。兩個 phase 的電流都一樣,只是同相或反相。假如步進馬達一圈分成 200 steps,則每一 full step 為 1.8°。
事實上,可以控制兩個 phase 的電流大小比例,讓轉子停在兩個極性中間不同的位置,就是細步控制。如下是 half-step 控制,可控制的步數多了一倍。
quarter-step 控制,精細度又再加倍。
下圖 是 Eighth-step 控制。
A4988 最多到 Sixteenth-Step Increments,圖太複雜,就不擷圖了。