搜索
bottom↓
回复: 47

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

[复制链接]

出0入0汤圆

发表于 2016-7-7 19:13:58 | 显示全部楼层 |阅读模式

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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

发表于 2016-7-7 19:29:18 | 显示全部楼层
More picture?

出0入4汤圆

发表于 2016-7-7 20:13:56 | 显示全部楼层
判断电机正转还是反转?正反转不是要自己控制的吗

出0入0汤圆

发表于 2016-7-7 20:22:29 来自手机 | 显示全部楼层
得两路有相位差的信号吧

出0入0汤圆

发表于 2016-7-7 20:25:30 | 显示全部楼层
你的这两个光电开关分别输出的信号应该就是有相位差的信号,根据A相和B相哪个超前来判断方向,最好用示波器测一下就可以了

出0入0汤圆

 楼主| 发表于 2016-7-7 20:33:56 | 显示全部楼层

大哥,只有这两个东西!

出0入0汤圆

 楼主| 发表于 2016-7-7 20:38:47 | 显示全部楼层
ztrx 发表于 2016-7-7 20:13
判断电机正转还是反转?正反转不是要自己控制的吗

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

出0入0汤圆

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

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

出0入4汤圆

发表于 2016-7-7 20:57:39 | 显示全部楼层
上面那个是在哪里买的?

出0入0汤圆

发表于 2016-7-7 21:01:03 | 显示全部楼层
看你光电传感器两组,安放相对码盘合适位置能输出接近正交的脉冲,依靠这个信息能识别方向,如果驱动时,发送驱动但电机不转,那就考虑到限位了,停止发驱动

出0入0汤圆

 楼主| 发表于 2016-7-7 21:46:56 | 显示全部楼层
ztrx 发表于 2016-7-7 20:57
上面那个是在哪里买的?

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

出0入0汤圆

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

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

出0入0汤圆

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

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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

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

出0入0汤圆

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

出0入0汤圆

发表于 2016-7-7 22:45:21 来自手机 | 显示全部楼层
跪下拍个照片

出0入0汤圆

发表于 2016-7-8 07:31:43 | 显示全部楼层
限位开关能不能用的上??

出100入90汤圆

发表于 2016-7-8 08:22:42 来自手机 | 显示全部楼层
检测到限位开关就要关驱动的电了

出0入0汤圆

 楼主| 发表于 2016-7-8 08:38:18 | 显示全部楼层
flash3g 发表于 2016-7-8 07:31
限位开关能不能用的上??


机械限位,

出0入0汤圆

 楼主| 发表于 2016-7-8 08:38:43 | 显示全部楼层
wang137long 发表于 2016-7-8 08:22
检测到限位开关就要关驱动的电了

机械限位

出90入372汤圆

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

出0入0汤圆

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

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

出0入0汤圆

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

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

出0入0汤圆

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

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

出0入0汤圆

发表于 2016-7-8 09:14:03 | 显示全部楼层
结构限位处应该有光电开关限位吧,我看日本的机器都是只有一个光电开关   设备装完后就要调电机转的方向 LZ是要用两个光电开关做成编码器的AB相位的信号?

出0入0汤圆

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

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

出0入0汤圆

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

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

出0入0汤圆

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

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

出0入0汤圆

 楼主| 发表于 2016-7-8 09:19:58 | 显示全部楼层
hy2515131 发表于 2016-7-8 09:15
用stm32的专用接口吗?不知道是哪个接口啊,请指教,我也在弄这个东东

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

出0入0汤圆

发表于 2016-7-8 09:20:36 | 显示全部楼层
zengan007 发表于 2016-7-8 09:15
我是看别人用两个我也参照的用的,但是具体怎么用不知道!

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

出0入0汤圆

发表于 2016-7-8 09:22:08 | 显示全部楼层
zengan007 发表于 2016-7-8 09:19
定时器里面的,我也再试,你搞掂了分享下经验

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

出90入372汤圆

发表于 2016-7-8 11:20:50 | 显示全部楼层
hy2515131 发表于 2016-7-8 09:15
用stm32的专用接口吗?不知道是哪个接口啊,请指教,我也在弄这个东东



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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2016-7-8 11:25:29 | 显示全部楼层
keshipt 发表于 2016-7-8 11:20
这是我常用的STM32 编码器接口,使用起来很简单,我是4倍频用,500线的编码器当2000线用 ...

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

出90入372汤圆

发表于 2016-7-8 12:03:34 | 显示全部楼层
zengan007 发表于 2016-7-8 11:25
500线编码器? 大哥,我这个光电开关能用你这种思路做么?

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

出100入85汤圆

发表于 2016-7-8 13:24:40 来自手机 | 显示全部楼层
这码盘是相对的,要加个原点感应才行。

出0入0汤圆

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

出0入0汤圆

发表于 2016-7-8 19:31:33 | 显示全部楼层
正交解码 计数 即可完成

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

出0入0汤圆

 楼主| 发表于 2016-7-9 09:16:17 | 显示全部楼层
阿豪博士 发表于 2016-7-8 19:31
正交解码 计数 即可完成

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

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

出0入0汤圆

 楼主| 发表于 2016-7-9 09:17:35 | 显示全部楼层
keshipt 发表于 2016-7-8 12:03
可以,原理是一样的,只是我的编码器比你的多了一个Z零点脉冲

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

出0入0汤圆

 楼主| 发表于 2016-7-9 09:24:48 | 显示全部楼层
ap0705307 发表于 2016-7-8 18:56
编码器可以计算位置的,当跟你实际走的不一致的时候就是碰到限位了!

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

出0入0汤圆

 楼主| 发表于 2016-7-9 09:25:16 | 显示全部楼层
whatcanitbe 发表于 2016-7-8 13:24
这码盘是相对的,要加个原点感应才行。

不加也行的吧

出100入85汤圆

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

出0入0汤圆

 楼主| 发表于 2016-7-9 10:22:23 | 显示全部楼层
whatcanitbe 发表于 2016-7-9 09:32
不加关机上电后你怎么知道当前位置。就算你有存当前位置,如果在关机后有人动了下轴,你怎么知道。 ...

我有霍尔传感器。。。

出0入0汤圆

发表于 2016-7-9 16:21:52 | 显示全部楼层
Y轴使用霍尔传感器定位,X轴使用编码器定位。

出0入0汤圆

发表于 2016-7-10 12:25:19 | 显示全部楼层
在盘上再钻一个洞,在限位的地方,对着盘上的洞再装一个光电开关,如果检测到光电开关通电了,就说明到限位了。

出0入8汤圆

发表于 2016-7-13 05:47:47 来自手机 | 显示全部楼层
merphy 发表于 2016-7-7 22:45
跪下拍个照片

嗯。这个我支持。

出0入8汤圆

发表于 2016-7-13 05:48:58 来自手机 | 显示全部楼层
楼主,这点儿事犯不上跪求。哈。

出0入0汤圆

发表于 2016-7-21 01:09:44 | 显示全部楼层
电机方向应该在你的程序里面已经确定了,很好判断,先算出光电盘没走一格的角度,计数光电盘输出的脉冲个数,判断电机走了多少度。这样不就可以完成控制了吗。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-23 08:23

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表