作者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
※ kennykobe:转录至看板 Electronics 10/13 10:52
1F:→ wisdom: 归零要有外部感测器,譬如光电开关。你可以先在马达轴心上 10/13 13:07
2F:→ wisdom: 做标记。转完以後看标记有没有在正确位置。没有的话就是失 10/13 13:07
3F:→ wisdom: 步。 10/13 13:08
有没有办法是透过程式来归零呢??感觉这方法有点难懂
※ 编辑: kennykobe (59.120.179.172), 10/13/2017 13:36:53
4F:推 woodsy: 没办法 一定要靠外部归零 看你用SENSOR 还是机械撞击 10/13 13:42
5F:→ woodsy: 通常每出去一次 回家一定要归零一次 尤其跑久了附载增加 10/13 13:43
6F:→ woodsy: 那种走钟的事情会更明显 10/13 13:43
如果只能透过外部仪器归零,那有什麽网站有使用方法呢?感谢大大
※ 编辑: kennykobe (59.120.179.172), 10/13/2017 14:36:03
7F:推 woodsy: 我不太懂你的意思 通常一个位置感应器就好 或者 10/13 16:15
8F:→ woodsy: 拿个墙壁给他撞 重点是 先让孩子回家 10/13 16:16
9F:→ woodsy: 因为位置确认是机构问题 你不可能靠程式解 10/13 16:17
10F:→ wisdom: 另外你有透过放大电路来驱动马达吗? 10/13 19:27
11F:推 airawesu: 没回授值 脉波传送都有可能丢掉了 靠外部感测器才是正道 10/13 19:36
12F:推 largesperm: 你自己往前走 1 万步看看 一定不会是一万步 10/13 21:55
13F:→ largesperm: 需要计步器来帮你计算 10/13 21:56
14F:→ OSTW: 如果只有马达,加encoder. 如果是转linear motion,加switch. 10/14 03:19
15F:推 lisn0814: 需原点复归 10/14 09:06
16F:→ Haoer: 动越多,错误越多,所以机器会定时归零 10/14 15:44
17F:→ Haoer: 归零的时机会,有时很机器启动时,有时是运作一段时间後 10/14 15:44
18F:→ Haoer: ex:转向头灯,车子启动时,会左右移到感测点,做归零 10/14 15:46
19F:→ Haoer: ex:印表机启动时会左右移到边界,做归零,印多张後也会 10/14 15:46
20F:→ Haoer: 所以,如何归零?找到零点,将计数器=0 10/14 15:47
21F:→ firesula: 如何知道归零了 就是靠sensor feedback 10/16 00:13