OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 10808|回复: 13

请教一下大家,关于使用限位开关控制步进电机的问题

[复制链接]

210

主题

773

帖子

0

精华

初级会员

Rank: 2

积分
124
金钱
124
注册时间
2018-3-26
在线时间
288 小时
发表于 2021-4-29 16:04:13 | 显示全部楼层 |阅读模式
20金钱
请教一下大家,关于使用限位开关控制步进电机的问题,我的工作原理是这样,当按下正传按键时,电机拉动仓门向前,碰到限位开关后停止,当按下反传按键时,电机拉动仓门向后,碰到限位开关后停止,现在遇到一些问题,当电机向前运动到前方的限位开关后可以停止,但是程序就卡在这里了,向后运行按键没有反应,这是代码,大家帮我分析一下

  1. void step_pulse(uchar state,uint16 speed,uint16 mileage)
  2. {
  3. int i=0;
  4. unsigned char P4_state;
  5. if(state){                   //回仓
  6. EN=0;
  7.    for(i = 0;i <mileage;i++)
  8. {   
  9.    
  10.         DIR=0;
  11.         PUL=0;                        //高低电平脉冲驱动
  12.                 uDelay1(speed);
  13.                 PUL=1;                    //高速
  14.                 uDelay1(speed);       
  15.          do
  16.     {
  17.         P4_state=P4;
  18.         if(P4_state&0x01)   //Already in the Zero
  19.         {
  20.           // EN=1;
  21.           PUL=0;
  22.         }
  23.     }while(P4_state&0x01);
  24.   }
  25.   }
  26.   else{                 //出仓
  27.   EN=0;
  28.    for(i = 0;i <mileage;i++)
  29. {
  30.         DIR=1;
  31.         PUL=0;                        //高低电平脉冲驱动
  32.                 uDelay1(speed);
  33.                 PUL=1;                    //高速
  34.                 uDelay1(speed);
  35.          do
  36.     {
  37.         P4_state=P4;
  38.         if(P4_state&0x02)   //Already in the Zero
  39.         {
  40.           // EN=1;
  41.          PUL=0;
  42.         }
  43.     }while(P4_state&0x02);
  44.        
  45.   }
  46.   }
  47. }
复制代码


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

12

主题

3391

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
8651
金钱
8651
注册时间
2020-5-11
在线时间
4110 小时
发表于 2021-4-29 16:32:05 | 显示全部楼层
在程序中加一点代码,往串口发数据,看它到底运行到了哪里。
专治疑难杂症
回复

使用道具 举报

210

主题

773

帖子

0

精华

初级会员

Rank: 2

积分
124
金钱
124
注册时间
2018-3-26
在线时间
288 小时
 楼主| 发表于 2021-4-29 16:33:36 | 显示全部楼层
LcwSwust 发表于 2021-4-29 16:32
在程序中加一点代码,往串口发数据,看它到底运行到了哪里。

都是运行到if里面卡住了
  1. if(P4_state&0x01)   //Already in the Zero
  2.         {
  3.           // EN=1;
  4.           PUL=0;
  5.         }
复制代码
回复

使用道具 举报

12

主题

3391

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
8651
金钱
8651
注册时间
2020-5-11
在线时间
4110 小时
发表于 2021-4-29 17:15:33 | 显示全部楼层
支持者2400 发表于 2021-4-29 16:33
都是运行到if里面卡住了

把P4_state的值通过串口发出来看看
专治疑难杂症
回复

使用道具 举报

210

主题

773

帖子

0

精华

初级会员

Rank: 2

积分
124
金钱
124
注册时间
2018-3-26
在线时间
288 小时
 楼主| 发表于 2021-4-30 08:35:19 | 显示全部楼层
LcwSwust 发表于 2021-4-29 17:15
把P4_state的值通过串口发出来看看

电路板没设置串口
回复

使用道具 举报

11

主题

2147

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4897
金钱
4897
注册时间
2015-1-10
在线时间
613 小时
发表于 2021-5-5 10:31:56 | 显示全部楼层
代码里面加个方向,你的限位也是有方向的,前限位触发只能往后走,后限位触发只能往前走
回复

使用道具 举报

17

主题

78

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
456
金钱
456
注册时间
2021-9-6
在线时间
59 小时
发表于 2021-9-16 10:46:36 | 显示全部楼层
我想请问下,你的限位开关怎么给单片机一个信号的
回复

使用道具 举报

34

主题

252

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
473
金钱
473
注册时间
2020-5-11
在线时间
217 小时
发表于 2021-9-16 11:24:30 | 显示全部楼层
1wandy 发表于 2021-9-16 10:46
我想请问下,你的限位开关怎么给单片机一个信号的

碰到限位,限位开关就是有一个信号,接到单片机的输入端口
回复

使用道具 举报

17

主题

78

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
456
金钱
456
注册时间
2021-9-6
在线时间
59 小时
发表于 2021-9-16 14:00:06 | 显示全部楼层
asshole 发表于 2021-9-16 11:24
碰到限位,限位开关就是有一个信号,接到单片机的输入端口

C:\Users\dell\Desktop上图是没有碰到限位器的波形,下图是碰到了的波形,限位器是sx674-wr,我设置的是上升沿触发,但是在测试中,一直进入中断
微信图片_20210916135648.jpg
回复

使用道具 举报

34

主题

252

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
473
金钱
473
注册时间
2020-5-11
在线时间
217 小时
发表于 2021-9-16 14:22:48 | 显示全部楼层
1wandy 发表于 2021-9-16 14:00
上图是没有碰到限位器的波形,下图是碰到了的波形,限位器是sx674-wr,我设置的是上升沿触发,但是在测试 ...

我记得这个限位器是有个灯的啊,我每次都是直接用万用表量电平了
回复

使用道具 举报

17

主题

78

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
456
金钱
456
注册时间
2021-9-6
在线时间
59 小时
发表于 2021-9-16 14:29:23 | 显示全部楼层
asshole 发表于 2021-9-16 14:22
我记得这个限位器是有个灯的啊,我每次都是直接用万用表量电平了

用万用表应该怎么接,一个接地一个接信号线吗
回复

使用道具 举报

17

主题

78

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
456
金钱
456
注册时间
2021-9-6
在线时间
59 小时
发表于 2021-9-16 17:04:03 | 显示全部楼层
asshole 发表于 2021-9-16 11:24
碰到限位,限位开关就是有一个信号,接到单片机的输入端口

您好,有相关的代码可以参考吗
回复

使用道具 举报

17

主题

78

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
456
金钱
456
注册时间
2021-9-6
在线时间
59 小时
发表于 2021-9-16 17:06:44 | 显示全部楼层
asshole 发表于 2021-9-16 14:22
我记得这个限位器是有个灯的啊,我每次都是直接用万用表量电平了

或者有什么负载要接吗
回复

使用道具 举报

34

主题

252

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
473
金钱
473
注册时间
2020-5-11
在线时间
217 小时
发表于 2021-9-17 09:36:11 | 显示全部楼层
1wandy 发表于 2021-9-16 17:06
或者有什么负载要接吗

不用啊,直接上电,当到达限位的时候量信号线与地线或者信号线与电源线之间的电压,看你的光电开关是NPN的还是PNP 的,你这个需求我最近也写了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-28 13:05

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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