Fw: [問題] 步進馬達如何歸零

看板Electronics作者 (鳳山下智久)時間8年前 (2017/10/13 10:52), 編輯推噓2(205)
留言7則, 3人參與, 8年前最新討論串1/1
※ [本文轉錄自 Mechanical 看板 #1Pu2AsvJ ] 作者: kennykobe (鳳山下智久) 看板: Mechanical 標題: [問題] 步進馬達如何歸零 時間: Fri Oct 13 10:19:31 2017 目前現在用Raspberry pi控制步進馬達來轉,不過目前遇到的問題是 4個步進馬達轉好幾百圈之後,每一個步進馬達停的位置都不一樣 不清楚是因為每一個步進馬達買來之後,原始的位置就不同 還是因為程式方面沒有做讓步進馬達歸零的動作,目前使用的步進馬達是5V步進馬達(4相 5線 28BYJ-48-5V) 程式碼如下: def forward( steps ): for i in range( steps ): setStep(0, 1, 1, 0) time.sleep(0.01) setStep(1, 1, 0, 0) time.sleep(0.01) setStep(1, 0, 0, 1) time.sleep(0.01) setStep(0, 0, 1, 1) time.sleep(0.01) setStep(0, 1, 1, 0) def backward( steps ): for i in range( steps ): setStep(0, 0, 1, 1) time.sleep(0.01) setStep(1, 0, 0, 1) time.sleep(0.01) setStep(1, 1, 0, 0) time.sleep(0.01) setStep(0, 1, 1, 0) time.sleep(0.01) setStep(0, 0, 1, 1) def setStep(w1, w2, w3, w4): GPIO.output(coil_A_1_pin, w1) GPIO.output(coil_A_2_pin, w2) GPIO.output(coil_B_1_pin, w3) GPIO.output(coil_B_2_pin, w4) setStep(0, 0, 0, 0) forward(45) backward(45) 請各位大大幫忙解惑了,感激不盡!! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.120.179.172 ※ 文章網址: https://www.ptt.cc/bbs/Mechanical/M.1507861174.A.E53.html ※ 發信站: 批踢踢實業坊(ptt.cc) ※ 轉錄者: kennykobe (59.120.179.172), 10/13/2017 10:52:26

10/13 12:13, 8年前 , 1F
用示波器量一下 I/O時序
10/13 12:13, 1F

10/13 15:43, 8年前 , 2F
要作得準應該需要掛encoder
10/13 15:43, 2F

10/14 13:48, 8年前 , 3F
驅動電流足夠嗎,是否換相速度太高造成失步
10/14 13:48, 3F

10/14 16:41, 8年前 , 4F
推樓上的建議,可以先把速度降慢一點試試
10/14 16:41, 4F

10/14 16:45, 8年前 , 5F
另外樓主這作法是開迴路控制,在不知道目前相位的情況下
10/14 16:45, 5F

10/14 16:45, 8年前 , 6F
,有可能一開始的幾個換相都是錯的,因此也造成了相互間
10/14 16:45, 6F

10/14 16:45, 8年前 , 7F
的位置差
10/14 16:45, 7F
文章代碼(AID): #1Pu2fhTm (Electronics)