zengan007 发表于 2016-7-7 19:13:58

步进电机方向、定位跪求大神!


大神们,我们电机只能让他旋转300度,两边都是结构限位。现在的问题是我电机如果碰到了那个结构限位的物体,那我软件怎么做才可以识别它呢?我手头上只有上面的光电开关和圆盘。求大神们给点思路啊!
还有靠这两个东西如何判断电机正转还是反转啊?定位呢? 在线跪求大神!

funnynypd 发表于 2016-7-7 19:29:18

More picture?

ztrx 发表于 2016-7-7 20:13:56

判断电机正转还是反转?正反转不是要自己控制的吗

kenshudemayi 发表于 2016-7-7 20:22:29

得两路有相位差的信号吧

gujingji 发表于 2016-7-7 20:25:30

你的这两个光电开关分别输出的信号应该就是有相位差的信号,根据A相和B相哪个超前来判断方向,最好用示波器测一下就可以了

zengan007 发表于 2016-7-7 20:33:56

funnynypd 发表于 2016-7-7 19:29
More picture?

大哥,只有这两个东西!

zengan007 发表于 2016-7-7 20:38:47

ztrx 发表于 2016-7-7 20:13
判断电机正转还是反转?正反转不是要自己控制的吗

是哦,那这个问题就不算,尴尬!

zengan007 发表于 2016-7-7 20:40:59

gujingji 发表于 2016-7-7 20:25
你的这两个光电开关分别输出的信号应该就是有相位差的信号,根据A相和B相哪个超前来判断方向,最好用示波器 ...

哦,大哥,那如果电机碰到结构限位呢?我看到电机一直卡在那里,但是光电开关里面采集的数据还是在变化呢!

ztrx 发表于 2016-7-7 20:57:39

上面那个是在哪里买的?

NJ8888 发表于 2016-7-7 21:01:03

看你光电传感器两组,安放相对码盘合适位置能输出接近正交的脉冲,依靠这个信息能识别方向,如果驱动时,发送驱动但电机不转,那就考虑到限位了,停止发驱动

zengan007 发表于 2016-7-7 21:46:56

ztrx 发表于 2016-7-7 20:57
上面那个是在哪里买的?

有两个东东,你指哪一个?

zengan007 发表于 2016-7-7 21:50:28

NJ8888 发表于 2016-7-7 21:01
看你光电传感器两组,安放相对码盘合适位置能输出接近正交的脉冲,依靠这个信息能识别方向,如果驱动时,发 ...

哥,比如我在运动中突然遇到限位了,但是电机不是停止,而是一直在那里抖动,如果电流大的话抖动就大,那么光电开光就依然可以检测到数据,

zengan007 发表于 2016-7-7 21:55:50

zengan007 发表于 2016-7-7 21:50
哥,比如我在运动中突然遇到限位了,但是电机不是停止,而是一直在那里抖动,如果电流大的话抖动就大,那 ...

大哥,这个是处理我的光电开关的中断函数,我就是通过判断M1,M2的数值来定义是不是停止和运行的,但是抖动的时候数据也还是有,而且如果电流给的小的话,电机一直在那里抖,那些数值既然和正常走没有太大的差别,我表示醉了

NJ8888 发表于 2016-7-7 22:06:30

明明有正交编码器单元,自动加或减,你只要去读数据反复数据总不向你期望的值变动(限定检测时间内)那就是卡了

sbusr 发表于 2016-7-7 22:15:50

找那种带编码器的电机,自己装的,要调好两个光耦的相位差在90度。正负的限位光耦是另外的。电机停止都在抖的话,可能是驱动器的电流控制频率产生共振了。我们自己做的步进电机控制器就是,有一个电机就抖的声音比较明显,最近发现的,还没做调整。

merphy 发表于 2016-7-7 22:45:21

跪下拍个照片

flash3g 发表于 2016-7-8 07:31:43

限位开关能不能用的上??

wang137long 发表于 2016-7-8 08:22:42

检测到限位开关就要关驱动的电了

zengan007 发表于 2016-7-8 08:38:18

flash3g 发表于 2016-7-8 07:31
限位开关能不能用的上??

机械限位,

zengan007 发表于 2016-7-8 08:38:43

wang137long 发表于 2016-7-8 08:22
检测到限位开关就要关驱动的电了

机械限位

keshipt 发表于 2016-7-8 08:43:53

你图中的元件有码盘有2位的光槽传感器,相当于只有AB项的编码器,根据AB项的相位差判断出方向,至于定位只要对AB脉冲进行计数计算出行程即可,建议增加一个到位检测点作为Z项零点信号,这样每次开机后先找到Z点然后标定相关的参数,就可以判断方向和定位了,当然如果条件允许换绝对值编码器是最省事的,缺点是成本高

zengan007 发表于 2016-7-8 08:47:45

NJ8888 发表于 2016-7-7 22:06
明明有正交编码器单元,自动加或减,你只要去读数据反复数据总不向你期望的值变动(限定检测时间内)那就是 ...

大哥,你可以在具体一点么?你的意思是我的那个光电开关里面的数据能够自动加减?这要怎么搞?菜鸟求详解

NJ8888 发表于 2016-7-8 08:53:19

zengan007 发表于 2016-7-8 08:47
大哥,你可以在具体一点么?你的意思是我的那个光电开关里面的数据能够自动加减?这要怎么搞?菜鸟求详解 ...

不是光电开关能自动加减,是mcu比如stm32的政教编码器接口,内部计数器能根据相位状况自动向加方向或减方向实时计数

zengan007 发表于 2016-7-8 09:14:00

keshipt 发表于 2016-7-8 08:43
你图中的元件有码盘有2位的光槽传感器,相当于只有AB项的编码器,根据AB项的相位差判断出方向,至于定位只 ...

大哥,通过光电开关监测到的脉冲数就不是特别准呢,有时候一抖动就会变,我经常测验电机走一圈光电开关出来的值都不一样。而且有时候碰到结构限位时最开始数据都没有怎么变,要撞击好多下才变化!
光电开关那两根线的波形确实有不一样的地方,正转的时候A超前B 90度,反转B超前A90度 ,那单片机如何处理这样的信号呢?望大神指点一二!

hy2515131 发表于 2016-7-8 09:14:03

结构限位处应该有光电开关限位吧,我看日本的机器都是只有一个光电开关   设备装完后就要调电机转的方向 LZ是要用两个光电开关做成编码器的AB相位的信号?

zengan007 发表于 2016-7-8 09:15:54

hy2515131 发表于 2016-7-8 09:14
结构限位处应该有光电开关限位吧,我看日本的机器都是只有一个光电开关   设备装完后就要调电机转的方向 LZ ...

我是看别人用两个我也参照的用的,但是具体怎么用不知道!{:sad:}

hy2515131 发表于 2016-7-8 09:15:56

NJ8888 发表于 2016-7-7 22:06
明明有正交编码器单元,自动加或减,你只要去读数据反复数据总不向你期望的值变动(限定检测时间内)那就是 ...

用stm32的专用接口吗?不知道是哪个接口啊,请指教,我也在弄这个东东

zengan007 发表于 2016-7-8 09:19:18

NJ8888 发表于 2016-7-8 08:53
不是光电开关能自动加减,是mcu比如stm32的政教编码器接口,内部计数器能根据相位状况自动向加方向或减方 ...

哦哦,谢谢大哥的热心评价,之前还不知道STM32有正交编码器这个接口呢,汗。。。我试试看

zengan007 发表于 2016-7-8 09:19:58

hy2515131 发表于 2016-7-8 09:15
用stm32的专用接口吗?不知道是哪个接口啊,请指教,我也在弄这个东东

定时器里面的,我也再试,你搞掂了分享下经验{:lol:}

hy2515131 发表于 2016-7-8 09:20:36

zengan007 发表于 2016-7-8 09:15
我是看别人用两个我也参照的用的,但是具体怎么用不知道!

电机还是要有限位的,我这里有台日本机器,电机轴上面只装了一个光电开关,行程的两端各有一个光电开关,电机轴上的光电开关是替代编码器的,作用判断电机有没有运行丢步

hy2515131 发表于 2016-7-8 09:22:08

zengan007 发表于 2016-7-8 09:19
定时器里面的,我也再试,你搞掂了分享下经验

我不是马上要做,之前有做一个这样的类似版本,后来停了,现在也是在想办法解决这样的问题

keshipt 发表于 2016-7-8 11:20:50

hy2515131 发表于 2016-7-8 09:15
用stm32的专用接口吗?不知道是哪个接口啊,请指教,我也在弄这个东东



这是我常用的STM32 编码器接口,使用起来很简单,我是4倍频用,500线的编码器当2000线用

zengan007 发表于 2016-7-8 11:25:29

keshipt 发表于 2016-7-8 11:20
这是我常用的STM32 编码器接口,使用起来很简单,我是4倍频用,500线的编码器当2000线用 ...

500线编码器? 大哥,我这个光电开关能用你这种思路做么?

keshipt 发表于 2016-7-8 12:03:34

zengan007 发表于 2016-7-8 11:25
500线编码器? 大哥,我这个光电开关能用你这种思路做么?

可以,原理是一样的,只是我的编码器比你的多了一个Z零点脉冲

whatcanitbe 发表于 2016-7-8 13:24:40

这码盘是相对的,要加个原点感应才行。

ap0705307 发表于 2016-7-8 18:56:49

编码器可以计算位置的,当跟你实际走的不一致的时候就是碰到限位了!

阿豪博士 发表于 2016-7-8 19:31:33

正交解码 计数 即可完成

或者 脉冲移除中断 计数 实现计算好 脉冲当量

zengan007 发表于 2016-7-9 09:16:17

阿豪博士 发表于 2016-7-8 19:31
正交解码 计数 即可完成

或者 脉冲移除中断 计数 实现计算好 脉冲当量

嗯,我是用单片机的正交编码搞的,正反转、停止的时候还是可以区分的,就是读数与电机走的步数貌似不能等同起来。
现在还有一个另外的问题,我是用T4的PB6和PB7做正交编码的,因为我有两个电机,我想用T4的PB8和PB9做另外一个电机的正交编码,但是在定时器配置的时候我没有看到那个参数是可以区分这两种情况的,而且最终的读数都是用        temp = (s32)(TIM_GetCounter(TIM4));         获取的,瞬间不知咋整了。因为我单片机的其他定时器还有其他的用处,我不是特别想换,所以。。。

zengan007 发表于 2016-7-9 09:17:35

keshipt 发表于 2016-7-8 12:03
可以,原理是一样的,只是我的编码器比你的多了一个Z零点脉冲

大神,我现在用正交编码可以区分正反转、停止,就是读数与电机走的步数貌似不能等同起来。
现在还有一个另外的问题,我是用T4的PB6和PB7做正交编码的,因为我有两个电机,我想用T4的PB8和PB9做另外一个电机的正交编码,但是在定时器配置的时候我没有看到那个参数是可以区分这两种情况的,而且最终的读数都是用      temp = (s32)(TIM_GetCounter(TIM4));         获取的,瞬间不知咋整了。因为我单片机的其他定时器还有其他的用处,我不是特别想换,所以。。。

zengan007 发表于 2016-7-9 09:24:48

ap0705307 发表于 2016-7-8 18:56
编码器可以计算位置的,当跟你实际走的不一致的时候就是碰到限位了!

嗯,我是用单片机的正交编码搞的,正反转、停止的时候还是可以区分的,就是读数与电机走的步数貌似不能等同起来。
现在还有一个另外的问题,我是用T4的PB6和PB7做正交编码的,因为我有两个电机,我想用T4的PB8和PB9做另外一个电机的正交编码,但是在定时器配置的时候我没有看到那个参数是可以区分这两种情况的,而且最终的读数都是用      temp = (s32)(TIM_GetCounter(TIM4));         获取的,瞬间不知咋整了。因为我单片机的其他定时器还有其他的用处,我不是特别想换,所以。。。

zengan007 发表于 2016-7-9 09:25:16

whatcanitbe 发表于 2016-7-8 13:24
这码盘是相对的,要加个原点感应才行。

不加也行的吧

whatcanitbe 发表于 2016-7-9 09:32:54

不加关机上电后你怎么知道当前位置。就算你有存当前位置,如果在关机后有人动了下轴,你怎么知道。

zengan007 发表于 2016-7-9 10:22:23

whatcanitbe 发表于 2016-7-9 09:32
不加关机上电后你怎么知道当前位置。就算你有存当前位置,如果在关机后有人动了下轴,你怎么知道。 ...

我有霍尔传感器。。。

raydsp 发表于 2016-7-9 16:21:52

Y轴使用霍尔传感器定位,X轴使用编码器定位。

zwcled 发表于 2016-7-10 12:25:19

在盘上再钻一个洞,在限位的地方,对着盘上的洞再装一个光电开关,如果检测到光电开关通电了,就说明到限位了。

tongdayusu 发表于 2016-7-13 05:47:47

merphy 发表于 2016-7-7 22:45
跪下拍个照片

嗯。这个我支持。

tongdayusu 发表于 2016-7-13 05:48:58

楼主,这点儿事犯不上跪求。哈。

zpwang 发表于 2016-7-21 01:09:44

电机方向应该在你的程序里面已经确定了,很好判断,先算出光电盘没走一格的角度,计数光电盘输出的脉冲个数,判断电机走了多少度。这样不就可以完成控制了吗。
页: [1]
查看完整版本: 步进电机方向、定位跪求大神!