作者kennykobe (凤山下智久)
看板Electronics
标题Fw: [问题] 步进马达如何归零
时间Fri Oct 13 10:52:26 2017
※ [本文转录自 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://webptt.com/cn.aspx?n=bbs/Mechanical/M.1507861174.A.E53.html
※ 发信站: 批踢踢实业坊(ptt.cc)
※ 转录者: kennykobe (59.120.179.172), 10/13/2017 10:52:26
1F:推 HiJimmy: 用示波器量一下 I/O时序 10/13 12:13
2F:→ Jhih8051: 要作得准应该需要挂encoder 10/13 15:43
3F:推 oisi: 驱动电流足够吗,是否换相速度太高造成失步 10/14 13:48
4F:→ Jhih8051: 推楼上的建议,可以先把速度降慢一点试试 10/14 16:41
5F:→ Jhih8051: 另外楼主这作法是开回路控制,在不知道目前相位的情况下 10/14 16:45
6F:→ Jhih8051: ,有可能一开始的几个换相都是错的,因此也造成了相互间 10/14 16:45
7F:→ Jhih8051: 的位置差 10/14 16:45