Robofun 機器人論壇

標題: 用Arduino控制三顆步進馬達! [打印本頁]

作者: vegewell    時間: 2012-1-31 19:25
標題: 用Arduino控制三顆步進馬達!
Arduino mega接 L298N ic
arduino control 3 stepper motor
http://youtu.be/823DvJUh1GU
[youtube]823DvJUh1GU[/youtube]
作者: vegewell    時間: 2012-1-31 19:30
步進馬達是蠻精準的!
可惜步進馬達比較重,扭力比較小,不太適合用在機器人身上,
玩一下過過癮.
作者: pizg    時間: 2012-1-31 22:03
本帖最後由 pizg 於 2012-2-2 12:44 編輯
步進馬達是蠻精準的!
可惜步進馬達比較重,扭力比較小,不太適合用在機器人身上,
玩一下過過癮.
vegewell 發表於 2012-1-31 19:30


步進馬達雖然已經很準確了, 但嚴格說起來它也不是那麼精準.
正轉1000圈反轉1000圈之後它還會回到原來的位置嗎?

馬達軸心的誤差, 線圈阻值和繞線的誤差, 減速齒輪的誤差, 電流大小的誤差...,
有很多因素都會影響它的精準度, 這使我想到繪圖機在繪圖之前都會有校準的動作.

步進馬達還是有很多地方可以玩的, 例如這個就很棒:
Kinetic Art - Dynamic Structure 29117 http://www.youtube.com/watch?v=kaO3Jp2O39g&feature=watch_response
v大您也可以如法泡製讓那3顆步進馬達跳起舞來.
作者: nichal    時間: 2012-2-1 09:15
如果正轉1000圈反轉1000圈沒回到原來的位置
那代表有失步啦~~~
在不失步的情況下
理論上不管多少圈都可以回到原來的位置上
校準是為了確認原點與比對失步狀況而已啦!!


加了減速機就不是原來的步進馬達了
因為如果步進馬達不準
大概不會有更準的馬達可以用
伺服馬達也是加了Encoder才變準的
也不是馬達本體就很準.....

舉凡所有定位要求精準的機構
通常都會用步進馬達
看一下眾多的加工機台使用的馬達就會發現了
機構的誤差並不能算在馬達身上哩......


(出來捍衛一下步進馬達的地位)
作者: vegewell    時間: 2012-2-1 15:04
步進馬達應該是最精準.
這點nichal比較有經驗比較清楚,
尤其高品質又貴的步進馬達及驅動器,
那更是精準的沒話說,
你看那ic的線那麼細小,
都能很快的牽焊好,
很厲害.
那個影片是線條在跳慢波,
是動畫,
跟步進馬達沒關係.
作者: pizg    時間: 2012-2-2 00:35
本帖最後由 pizg 於 2012-2-2 00:41 編輯

回復 5# vegewell


不管是用哪一種磁激方式, 我發現我的馬達都無法在轉1圈之後回到原來的位置, 好像會差個零點幾度.
所以下指令讓它跑100圈之後, 誤差更大了.

我用的是這一款馬達 http://goods.ruten.com.tw/item/show?21110130138034
作者: vegewell    時間: 2012-2-2 02:21
回復 6# pizg


你買的這個控器板加上 步進馬達雖然只有 $120,
可是在大陸買更便宜,一半的價格.

依我看,這個ULN2003步進馬達驅動板,
就是專門為這顆五線的減速步進馬達,所設計的,
是給學生實習用的 [類步進馬達],
以後你要買四線的,
像我這顆轉幾圈都回到原點,
不要買六線舊型的.
作者: nichal    時間: 2012-2-2 10:16
那是齒輪箱的誤差啦!!
不是馬達的問題~~~

這東西用在冷氣的排風口最多
沒回到原點也沒關係的
因為他都會多跑一些
藉由機構過極限不會損壞的方式
強迫排風檔片回到原點
要準一點的
就不要配備減速箱
這樣就一定很準了.....
非要減速箱不可
據我所知
目前最好的精密型也不敢保證做到100%
大多數是在97~98%之間~~~
還是選直驅大扭力的吧!!
不然就得用伺服回授的方式處理了.......
作者: pizg    時間: 2012-2-2 12:36
回復 7# vegewell


    感謝V, N兩位大大的說明.

另外請問, 在磁激中為何都要加入delay指令? 沒加的話就不會運轉.
一旦加入delay指令之後, 又要如何做才能讓多顆步進馬達同步運轉?
作者: nichal    時間: 2012-2-3 11:37
因為MCU的運作速度很快
指令與指令之間可能幾個uS就完成了
步近馬達沒辦法接受這麼快的換相信號
所以一定轉不起來

另外
不太懂你所謂同步的意思?
基本上同一組訊號可以同時送給多組步進馬達
只要送信號給不同組的緩衝器就可以了
這樣就是信號同步

但這樣可不保證每個馬達會同時轉起來
除非每個馬達的啟動條件與負載條件都完全相同
得調適到一個大家都可以順利動作的換相頻率
這樣才能真的同步

以上
提供您您參考看看
作者: pizg    時間: 2012-2-3 12:36
本帖最後由 pizg 於 2012-2-3 13:18 編輯
因為MCU的運作速度很快
指令與指令之間可能幾個uS就完成了
步近馬達沒辦法接受這麼快的換相信號
所以一定 ...
nichal 發表於 2012-2-3 11:37



    感謝您的解說.

我是想試做一個這樣的裝置 >> Kinetic Art - Dynamic Structure 29117 http://www.youtube.com/watch?v=kaO3Jp2O39g&feature=watch_response

所以馬達最好能同步運轉(同時動作或做一樣的動作).

您能不能稍微描述一下是怎樣的緩衝器, 有沒有這樣的IC或電路圖?
作者: nichal    時間: 2012-2-3 13:51
其實就是把信號送給好幾個2003啦!!
然後每一個2003各自推一個馬達
(2003就是緩衝器, 不過信號有反相)

如果功率要大一點
可能就要換MOSFET或達靈頓電晶體
電路很一般
看一下電晶體的驅動方式就知道了~~~
作者: vegewell    時間: 2012-2-3 14:07
nichal 這樣解釋就很清楚了,
就是要再花錢買多個2003緩衝器,
不過pizg 你那個影片是動畫,
不是馬達做的.
作者: pizg    時間: 2012-2-3 14:43
回復 12# nichal


    呵~~我手上剛好是有好幾個ULN2003, 是不是如下接法:
             pin1~4   -> ULN2003 -> STEEPER1
MCU  -> pin5~8   -> ULN2003 -> STEEPER2
             pin9~12 -> ULN2003 -> STEEPER3
若是這樣的話, MCU的pin不就被用光了?  除了改用Arduino meag之外, 我可以像Arduino UNO只用3個pin + 74HC595就可以控制許多LED那樣來接線嗎, 是不是也可以用HEF4094?

另外, 如下的電路流程:
MCU -> CD4050-> FT5754 -> 步進馬達
這CD4050就是緩衝器嗎?
作者: pizg    時間: 2012-2-3 14:45
回復 13# vegewell


    呵~~感謝您的提醒.
不過若能把它做成裝置藝術,
實體化之後感覺應該會很棒.
作者: nichal    時間: 2012-2-4 13:42
回復 14# pizg


    不用那麼多pin啦!!
同樣四隻腳, 一次可以送給多個2003
不過要記得在腳位加上提升電阻確定high-low準位就可以了
因為2003的輸入端是信號源不是動力源
所以吃的電很少
不過還是要試一下
接太多怕阻抗不匹配會誤動作
我最多一個MCU pin接過三隻2003pin
如果這三個的動作是必須一模一樣的話
這樣接應該最快(不考慮失步與誤差)




歡迎光臨 Robofun 機器人論壇 (https://robofun.net/forum/) Powered by Discuz! X3.2