梁工
发表于 2024-10-10 18:16:39
huatlwangl 发表于 2024-10-9 08:46
梁工好,您好,能麻烦您帮我看看嘛?我希望得到的是按下按键转一圈,转到一圈即使按着按键也不动了,松开按 ...
应该是按键重复执行了吧?按键使用下降沿、上升沿检测,就不会出现重复执行的情况。
huatlwangl
发表于 2024-10-15 11:00:49
梁工 发表于 2024-10-10 18:16
应该是按键重复执行了吧?按键使用下降沿、上升沿检测,就不会出现重复执行的情况。 ...
不是按键重复检测,更改了还是这样,并且我所希望得到的效果是:
1.按下正转按键,电机转动0-90度,释放按键电机回零位,达到90度即使按着按键仍然不转动。
2.现在的脉冲数是给定的,怎么实现呢。
梁工,方便加下我Q 1163676708
梁工
发表于 2024-10-15 11:05:50
huatlwangl 发表于 2024-10-15 11:00
不是按键重复检测,更改了还是这样,并且我所希望得到的效果是:
1.按下正转按键,电机转动0-90度,释放 ...
这个其实是非常简单的:
1、检测到按键按下(边沿检测),就给定90度对应的脉冲数和转向,启动电机即可。
2、检测到按键释放(边沿检测),就给定90度对应的脉冲数和转向(与上面相反),启动电机即可。
你出现重复启动,则必然是重复检测到启动条件,你的启动条件是按键按下,则就是重复检测到按键按下了。或者你可以仿真追踪一下,或者启动时串口发送一些信息指示一下。
huatlwangl
发表于 2024-10-15 11:07:36
梁工 发表于 2024-10-15 11:05
这个其实是非常简单的:
1、检测到按键按下(边沿检测),就给定90度对应的脉冲数和转向,启动电机即可。 ...
但是可能我在0-90度之间释放了按键呢,怎么给定回零脉冲
梁工
发表于 2024-10-15 11:59:13
huatlwangl 发表于 2024-10-15 11:07
但是可能我在0-90度之间释放了按键呢,怎么给定回零脉冲
根据当前转了多少脉冲,给定转回多少脉冲。步进电机控制是很简单的,没那么复杂,只要不失步,角度就是没有误差的。
huatlwangl
发表于 2024-10-15 17:30:28
梁工 发表于 2024-10-15 11:05
这个其实是非常简单的:
1、检测到按键按下(边沿检测),就给定90度对应的脉冲数和转向,启动电机即可。 ...
我试了,这样的操作后 比如我64细分,每次检测到正转按键标志位,赋值脉冲12800,会从在这样的现象:一直转动。因为我放在主程序中。每1Ms执行一次。这样就会及时脉冲数减到0,马上又会更新。
梁工
发表于 2024-10-15 17:36:42
huatlwangl 发表于 2024-10-15 17:30
我试了,这样的操作后 比如我64细分,每次检测到正转按键标志位,赋值脉冲12800,会从在这样的现象:一直 ...
还是你处理的问题,到位后,没有触发信号(按键),你居然自己又启动了,这就是你处理不当造成的。
huatlwangl
发表于 2024-10-15 22:15:48
梁工 发表于 2024-10-15 17:36
还是你处理的问题,到位后,没有触发信号(按键),你居然自己又启动了,这就是你处理不当造成的。 ...
梁工,这我不太明白,因为所需实现得功能按着按键,电机转动,转到到90度,不再转动,只要释放按键,电机就回零。
即使到位后,也没有触发信号(按键),您能给个思路吗?困扰太久了
huatlwangl
发表于 2024-10-16 09:15:07
huatlwangl 发表于 2024-10-15 22:15
梁工,这我不太明白,因为所需实现得功能按着按键,电机转动,转到到90度,不再转动,只要释放按键,电机 ...
我现在的思路是数脉冲,但是数的脉冲。怎么给呢,如果在释放按键后将数的的脉冲信号复制给总脉冲,那就会出现我上面叙述的不停下来的问题
梁工
发表于 2024-10-16 09:50:52
huatlwangl 发表于 2024-10-15 22:15
梁工,这我不太明白,因为所需实现得功能按着按键,电机转动,转到到90度,不再转动,只要释放按键,电机 ...
按键按下(边沿检测),检测到一次按下,就算你按季个小时,都是只检测到一次按下的动作,这是按键检测最基本的啊。
举个简单例子,按下键对一个变量+1(比如电子钟调整时间时),不管按下多久,都是+1,你试下实现这个功能,就能明白了。