找回密码
 立即注册
楼主: 梁工

51开源,步进电机驱动 程序, 直接驱动, 或驱动步进电机驱动器 一共8个程序

  [复制链接]
  • 打卡等级:偶尔看看III
  • 打卡总天数:50
  • 最近打卡:2025-04-30 22:59:03

73

主题

5882

回帖

1万

积分

超级版主

积分
12073
发表于 2024-10-10 18:16:39 | 显示全部楼层
huatl*** 发表于 2024-10-9 08:46
梁工好,您好,能麻烦您帮我看看嘛?我希望得到的是按下按键转一圈,转到一圈即使按着按键也不动了,松开按 ...

应该是按键重复执行了吧?按键使用下降沿、上升沿检测,就不会出现重复执行的情况。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:15
  • 最近打卡:2025-03-26 09:09:59

6

主题

104

回帖

351

积分

中级会员

积分
351
发表于 2024-10-15 11:00:49 | 显示全部楼层
梁*** 发表于 2024-10-10 18:16
应该是按键重复执行了吧?按键使用下降沿、上升沿检测,就不会出现重复执行的情况。 ...

不是按键重复检测,更改了还是这样,并且我所希望得到的效果是:
1.按下正转按键,电机转动0-90度,释放按键电机回零位,达到90度即使按着按键仍然不转动。
2.现在的脉冲数是给定的,怎么实现呢。
梁工,方便加下我Q 1163676708

点评

这个其实是非常简单的: 1、检测到按键按下(边沿检测),就给定90度对应的脉冲数和转向,启动电机即可。 2、检测到按键释放(边沿检测),就给定90度对应的脉冲数和转向(与上面相反),启动电机即可。 你出现重复  详情 回复 发表于 2024-10-15 11:05
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:50
  • 最近打卡:2025-04-30 22:59:03

73

主题

5882

回帖

1万

积分

超级版主

积分
12073
发表于 2024-10-15 11:05:50 | 显示全部楼层
huatl*** 发表于 2024-10-15 11:00
不是按键重复检测,更改了还是这样,并且我所希望得到的效果是:
1.按下正转按键,电机转动0-90度,释放 ...

这个其实是非常简单的:
1、检测到按键按下(边沿检测),就给定90度对应的脉冲数和转向,启动电机即可。
2、检测到按键释放(边沿检测),就给定90度对应的脉冲数和转向(与上面相反),启动电机即可。
你出现重复启动,则必然是重复检测到启动条件,你的启动条件是按键按下,则就是重复检测到按键按下了。或者你可以仿真追踪一下,或者启动时串口发送一些信息指示一下。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:15
  • 最近打卡:2025-03-26 09:09:59

6

主题

104

回帖

351

积分

中级会员

积分
351
发表于 2024-10-15 11:07:36 | 显示全部楼层
梁*** 发表于 2024-10-15 11:05
这个其实是非常简单的:
1、检测到按键按下(边沿检测),就给定90度对应的脉冲数和转向,启动电机即可。 ...

但是可能我在0-90度之间释放了按键呢,怎么给定回零脉冲

点评

根据当前转了多少脉冲,给定转回多少脉冲。步进电机控制是很简单的,没那么复杂,只要不失步,角度就是没有误差的。  详情 回复 发表于 2024-10-15 11:59
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:50
  • 最近打卡:2025-04-30 22:59:03

73

主题

5882

回帖

1万

积分

超级版主

积分
12073
发表于 2024-10-15 11:59:13 | 显示全部楼层
huatl*** 发表于 2024-10-15 11:07
但是可能我在0-90度之间释放了按键呢,怎么给定回零脉冲

根据当前转了多少脉冲,给定转回多少脉冲。步进电机控制是很简单的,没那么复杂,只要不失步,角度就是没有误差的。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:15
  • 最近打卡:2025-03-26 09:09:59

6

主题

104

回帖

351

积分

中级会员

积分
351
发表于 2024-10-15 17:30:28 | 显示全部楼层
梁*** 发表于 2024-10-15 11:05
这个其实是非常简单的:
1、检测到按键按下(边沿检测),就给定90度对应的脉冲数和转向,启动电机即可。 ...

我试了,这样的操作后 比如我64细分,每次检测到正转按键标志位,赋值脉冲12800,会从在这样的现象:一直转动。因为我放在主程序中。每1Ms执行一次。这样就会及时脉冲数减到0,马上又会更新。

点评

还是你处理的问题,到位后,没有触发信号(按键),你居然自己又启动了,这就是你处理不当造成的。  详情 回复 发表于 2024-10-15 17:36
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:50
  • 最近打卡:2025-04-30 22:59:03

73

主题

5882

回帖

1万

积分

超级版主

积分
12073
发表于 2024-10-15 17:36:42 | 显示全部楼层
huatl*** 发表于 2024-10-15 17:30
我试了,这样的操作后 比如我64细分,每次检测到正转按键标志位,赋值脉冲12800,会从在这样的现象:一直 ...

还是你处理的问题,到位后,没有触发信号(按键),你居然自己又启动了,这就是你处理不当造成的。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:15
  • 最近打卡:2025-03-26 09:09:59

6

主题

104

回帖

351

积分

中级会员

积分
351
发表于 2024-10-15 22:15:48 来自手机 | 显示全部楼层
梁工 发表于 2024-10-15 17:36
还是你处理的问题,到位后,没有触发信号(按键),你居然自己又启动了,这就是你处理不当造成的。 ...

梁工,这我不太明白,因为所需实现得功能按着按键,电机转动,转到到90度,不再转动,只要释放按键,电机就回零。
即使到位后,也没有触发信号(按键),您能给个思路吗?困扰太久了

点评

按键按下(边沿检测),检测到一次按下,就算你按季个小时,都是只检测到一次按下的动作,这是按键检测最基本的啊。 举个简单例子,按下键对一个变量+1(比如电子钟调整时间时),不管按下多久,都是+1,你试下实现  详情 回复 发表于 2024-10-16 09:50
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:15
  • 最近打卡:2025-03-26 09:09:59

6

主题

104

回帖

351

积分

中级会员

积分
351
发表于 2024-10-16 09:15:07 | 显示全部楼层
huatl*** 发表于 2024-10-15 22:15
梁工,这我不太明白,因为所需实现得功能按着按键,电机转动,转到到90度,不再转动,只要释放按键,电机 ...

我现在的思路是数脉冲,但是数的脉冲。怎么给呢,如果在释放按键后将数的的脉冲信号复制给总脉冲,那就会出现我上面叙述的不停下来的问题
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:50
  • 最近打卡:2025-04-30 22:59:03

73

主题

5882

回帖

1万

积分

超级版主

积分
12073
发表于 2024-10-16 09:50:52 | 显示全部楼层
huatl*** 发表于 2024-10-15 22:15
梁工,这我不太明白,因为所需实现得功能按着按键,电机转动,转到到90度,不再转动,只要释放按键,电机 ...

按键按下(边沿检测),检测到一次按下,就算你按季个小时,都是只检测到一次按下的动作,这是按键检测最基本的啊。

举个简单例子,按下键对一个变量+1(比如电子钟调整时间时),不管按下多久,都是+1,你试下实现这个功能,就能明白了。
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 09:00 , Processed in 0.166208 second(s), 115 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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