关于Arduino驱动步进电机驱动器控制步进电机导致电机跑飞问题
最近在做一个项目,主要内容是,通过Arduino Mega2560控制3个步进电机驱动器,进而控制步进电机实现带目标物进行移动。代码中使用了定时器中断,1KHZ的频率访问定时器,再通过串口,发送指令,控制步进电机进行移动。在几乎快调试完成后,发现一个重大问题,在有时候突然发送指令时,步进电机会不受控制的跑飞,除非再次发送指令,不然步进电机会一直按照某种异常的速度不停移动。
步进电机是通过驱动器进行控制的,所以只需要DIR和PUL两个脚控制即可,PUL脉冲波形的频率在正常情况下,我只给到了400HZ,50%占空比。在异常情况下,频率会突然飚的很高,达到了几KHZ,但是程序中没有代码让他按照此种频率运行。
而且该问题出现的时机是偶然的,都在串口发送完指令,Arduino接受解析完指令,再控制步进电机是出现,概率很高。
不知道有没有大佬遇到类似情况,给小弟指条明路,由于是第一次使用Arduino 开发项目,代码还是参考网上的。

定时器中断部分代码
串口接收数据 部分代码
相关推荐
arduino控制57步进电机
arduino控制57步进电机 ,串口通讯数据控制旋转停止,旋转速度
【步进电机与Arduino使用教程】
了解如何使用 Arduino 使用 ULN2003、L298N 和 A4988 等驱动器控制双极和单极步进电机。在本文中,我将向您展示开始使用步进电机所需了解的所有信息。步进电机用于各种设备,从 3D 打印机和 CNC 机器到 DVD 驱动器、加热管道,甚至模拟时钟。然而,尽管步进电机很受欢迎,但许多实验者都回避使用步进电机,因为它们似乎需要复杂的连接和代码。
使用 ULN2003 驱动器和 Arduino 控制 28BYJ-48 步进电机
使用 ULN2003 驱动器和 Arduino 控制 28BYJ-48 步进电机
【步进电机】Arduino+驱动器驱动2相四线4 步(初阶)
https://blog.csdn.net/ff_tt/article/details/78397811#commentBox 这种搭配: 上来就放程序给你们!!看了太多理论,写不出驱动程序就很抓急,还是驱动起来,听着滋滋的电磁声,才让人颇有成就感~~ 只需三步,三步登天! 第一步,拷贝驱动程序: #define CLK 7 void setup() { pinMode(CLK,OUTPUT)...
arduino作为下位机控制步进电机
arduino作为下位机,通过串口与上位机完成通讯,接收上位机命令,实现对步进电机的控制。


单片机/工控
