楼主: 驴友花雕
|
【花雕学编程】Arduino动手做(223)---二相四线42步进电机 |
实验开源代码
|
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程) 实验二百二十三:42步进电机二相四线+A4988驱动模块+设置扩展板 项目实验之六:步进电机循环转动200步暂停一秒 实验开源代码
|
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程) 实验二百二十三:42步进电机二相四线+A4988驱动模块+设置扩展板 项目实验之七:步进电机速度、位置和加速度的随机变化 实验开源代码
|
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程) 实验二百二十三:42步进电机二相四线+A4988驱动模块+设置扩展板 项目实验之八:驱动步进电机顺时针5圈和逆时针5圈 实验开源代码
|
本帖最后由 驴友花雕 于 2024-7-22 11:32 编辑 代码的工作原理: 从定义步进和方向引脚开始,这里将它们连接到Arduino引脚3和2。 该语句用于为常量值命名。编译程序时,编译器会将对此常量的任何引用替换为定义的值。所以在你提到的任何地方,编译器都会在编译程序时将其替换为值 2。
这里定义了一个常量。驱动器设置为全步模式,所以将其设置为每转 200 步。如果设置不同,请更改此值 stepsPerRevolution。
在代码部分中,所有电机控制引脚都声明为数字输出,其功能为 setup()pinMode() 。
在代码部分,让电机在 CW 方向上缓慢旋转一圈,在 CCW 方向上快速旋转一圈。接下来,我们让电机高速向每个方向旋转 5 圈。那么如何控制速度、旋转方向和转数呢?
控制旋转方向: 为了控制步进电机的旋转方向,我们将 DIR(方向)引脚设置为高电平或低电平。为此,我们使用函数,根据步进电机的连接方式,将 DIR 引脚设置为高电平将使电机转动 CW 或 CCW。
控制步数或转数: 在此示例中,for 环路控制步进电机将采取的步数。for 循环中的代码导致步进电机的 1 步进。由于循环中的代码执行了 200 次 (stepsPerRevolution),因此会导致 1 次旋转。在最后两个循环中,for 循环中的代码执行 1000 次,这导致 1000 步或 5 转。 请注意,可以将 for 循环中的第二个项更改为所需的任何步骤数。 将导致 100 步,或半圈。
控制速度: 步进电机的速度由发送到STEP引脚的脉冲频率决定。频率越高,电机运行速度越快。可以通过更改代码来控制脉冲的频率。延迟越短,频率越高,电机运行速度越快。
|
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程) 实验二百二十三:42步进电机二相四线+A4988驱动模块+设置扩展板 项目实验之九:使用AccelStepper库控制步进电机的步数或转数 实验开源代码
|
本帖最后由 驴友花雕 于 2024-7-22 12:00 编辑 代码说明: 到 loop() 部分的代码的第一部分与前面的案例完全相同。 在循环中,将 while 循环与函数结合使用。首先,将步进电机的当前位置设置为零 currentPosition()stepper.setCurrentPosition(0)。
接下来,利用 while 循环。while 循环将连续且无限循环,直到括号内的表达式 () 变为 false。所以,在这种情况下,检查步进电机的当前位置是否不等于 400 步(!= means: 不等于)。虽然情况并非如此,但以设定的恒定速度运行步进电机 setSpeed()。
在循环的其余部分,做完全相同的事情,只是速度和目标位置不同。 |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed