关于Arduino驱动步进电机驱动器控制步进电机导致电机跑飞问题

꧁༺雨月·听枫༻ ꧂ 2024-08-08 21:13:38

最近在做一个项目,主要内容是,通过Arduino Mega2560控制3个步进电机驱动器,进而控制步进电机实现带目标物进行移动。代码中使用了定时器中断,1KHZ的频率访问定时器,再通过串口,发送指令,控制步进电机进行移动。在几乎快调试完成后,发现一个重大问题,在有时候突然发送指令时,步进电机会不受控制的跑飞,除非再次发送指令,不然步进电机会一直按照某种异常的速度不停移动。

步进电机是通过驱动器进行控制的,所以只需要DIR和PUL两个脚控制即可,PUL脉冲波形的频率在正常情况下,我只给到了400HZ,50%占空比。在异常情况下,频率会突然飚的很高,达到了几KHZ,但是程序中没有代码让他按照此种频率运行。

而且该问题出现的时机是偶然的,都在串口发送完指令,Arduino接受解析完指令,再控制步进电机是出现,概率很高。

不知道有没有大佬遇到类似情况,给小弟指条明路,由于是第一次使用Arduino 开发项目,代码还是参考网上的。

定时器中断部分代码

 

串口接收数据 部分代码

...全文
74 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

27,428

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧