看板 Electronics 關於我們 聯絡資訊
※ [本文轉錄自 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
HiJimmy: 用示波器量一下 I/O時序 10/13 12:13
Jhih8051: 要作得準應該需要掛encoder 10/13 15:43
oisi: 驅動電流足夠嗎,是否換相速度太高造成失步 10/14 13:48
Jhih8051: 推樓上的建議,可以先把速度降慢一點試試 10/14 16:41
Jhih8051: 另外樓主這作法是開迴路控制,在不知道目前相位的情況下 10/14 16:45
Jhih8051: ,有可能一開始的幾個換相都是錯的,因此也造成了相互間 10/14 16:45
Jhih8051: 的位置差 10/14 16:45