直流电机控制库
组件和用品
| × | 1 | ||||
| × | 2 | ||||
| × | 2 | ||||
| × | 2 | ||||
| × | 4 |
应用和在线服务
|
关于这个项目
图> 图> 图>
在这里,我展示了 Arduino 库来控制直流电机。该库拥有如此多的设施和灵活性,可以以所需的方式控制任何直流电机。该库是根据 industrialmotion control 设计的 要求。该库具有 16 种不同的功能,因此可以以最通用的方式控制电机。这是库中的设施列表
1. 控制电机旋转方向
2. 控制电机转速0-100%
3.可以提供软启动 在指定时间内到电机 - 表示电机速度将在指定时间内从 0% 增加到所需水平
4.它可以提供平稳停止 在指定时间内到电机 - 表示电机速度将在指定时间内从当前速度下降到 0%
5.可以应用点动控制 向任一方向电机 - 表示电机将向指定方向猛拉
6.可对电机施加DC BREAK(即立即或紧急停止)
这里给出了所有库函数的简要说明。之后给出了一些示例,解释了如何使用该库来控制电机。给出了三个视频,显示了这些示例的演示。最后建议电路采用目前广泛用于控制直流电机的H桥电路。
要在您的 arduino 草图中使用此库,只需复制 DC_Motor 文件夹进入arduino库文件夹的根目录,如C:\arduino-1.6.7\libraries
库函数说明:
1. DC_Motor(int pin1, int pin2): 这个函数声明了驱动直流电机的arduino引脚
2. DC_Motor(int pin1, int pin2, int speed_flag): 该函数声明了驱动直流电机的arduino的模拟输出引脚
3. start_motor(int dir): 此功能启动电机按指定方向旋转。如果方向为1 - 电机将开始正向旋转,反之亦然
4. forward(): 此功能将启动电机正向旋转
5. reverse(): 此功能将启动反向旋转的电机
6. dc_break(): 此功能会立即停止旋转电机*
7. stop_motor(): 此功能将停止旋转电机
8. jogg_full_speed(int dir) : 此功能将在所需方向全速向电机施加加加速度 5 秒
*注意: - 此功能仅在直流电机具有此类直流断路的内部安排时才起作用。此外,正确的电机驱动电路必须设计有动态制动电阻 (DBR),并且必须完全小心,以免损坏电机或电路。
以上所有功能都为直流电机提供了简单的控制。它们不控制电机的速度。接下来的 8 个功能控制电机的速度和方向。但是使用这些功能需要选择arduino的模拟输出引脚。直流电机必须用第二个函数初始化,速度标志设置为 1
9. set_speed(int speed): 此功能将设置直流电机速度在 0 到 100% 之间
10. forward_with_set_speed(): 此功能将启动直流电机以设定速度正转
11. reverse_with_set_speed(): 此功能将启动直流电机以设定速度反转
12. run_motor(int dir, int speed): 此功能将使直流电机以设定速度向任一方向旋转
13. jogg_set_speed(int dir, int speed): 此功能将以设定的速度向任一方向的电机施加加加速度
14. motor_speed_zero()*: 该功能将电机速度降低到0 - 表示停止电机
15. soft_start(int dir, int speed, inttime_in_sec) : 此功能将在指定时间内在任一方向上将电机速度从 0 增加到所需级别。时间必须以秒为单位选择
16. smooth_stop(int time_in_sec): 此功能将在指定时间内将电机速度从当前运行速度降低到 0。时间必须以秒为单位选择
*注意:这里不能使用stop_motor()函数,因为它给出数字输出,而这个函数给出最小的模拟输出,使直流电机速度为零。用速度控制直流电机时,不要只停止电机,而要使其速度为零。
示例:
1) 全速正向和反向旋转直流电机(无速度控制)
/*此程序将使直流电机正转5秒
然后停止 2 秒,再次将电机反向旋转
5秒,连续停2秒
由印度古吉拉特邦 A M Bhatt (+91-9998476150) 创建
2016/12/10
*/
#include
DC_Motormotor(8, 12);
voidsetup()
{
}
空循环()
{
motor.forward();
延迟(5000);
motor.stop_motor();
延迟(2000);
motor.reverse();
延迟(5000);
motor.stop_motor();
延迟(2000);
}
2) 以设定速度正反转直流电机(带速度控制)
/*此程序将使直流电机正转5秒
以 40% 速度停止 2 秒,然后再次反转电机
80%速度连续5秒
由印度古吉拉特邦 A M Bhatt (+91-9998476150) 创建
2016/12/10
*/
#include
DC_Motor motor2(9, 10, 1);
voidsetup()
{
}
空循环()
{
motor2.set_speed(40);
motor2.forward_with_set_speed();
延迟(5000);
motor2.motor_speed_zero();
延迟(2000);
motor2.set_speed(80);
motor2.reverse_with_set_speed();
延迟(5000);
motor2.motor_speed_zero();
延迟(2000);
}
3) 在有速度控制和无速度控制的情况下,对电机进行双向点动
/*这个程序将点动应用到两个不同的直流电机
* 对第一台电机双向全速点动
* 然后向第二个电机提供 80% 的反向速度
* 方向和前进方向的 30% 速度
* 由 Ashutosh M Bhatt(+91-9998476150),古吉拉特邦(印度)创建
* 22/10/2016
*/
#include
DC_Motor motor(8, 12);
DC_Motor motor2(9, 10, 1);
voidsetup()
{
}
voidloop()
{
motor.jogg_full_speed(1);
motor.jogg_full_speed(0);
motor2.jogg_set_speed(0, 80);
motor2.jogg_set_speed(1, 30);
}
4) 对电机应用软启动和平滑停止
/*此程序将使电机软启动并提高其速度
10 秒内从 0 到 90% 正向
然后它在 5 秒内从 90% 平滑停止到 0
6秒内反方向再次软启动从0到50%
并最终在 3 秒内从 50% 平滑停止到 0
由印度古吉拉特邦 A M Bhatt (+91-9998476150) 创建
2016/12/10
*/
#include
DC_Motor motor2(9, 10, 1);
voidsetup()
{
}
voidloop()
{
motor2.soft_start(1, 90, 10);
延迟(3000);
motor2.smooth_stop(5);
motor2.soft_start(0, 50, 6);
延迟(3000);
motor2.smooth_stop(3);
}
代码
- 直流电机控制库
直流电机控制库C 头文件
该库控制所有类型直流电机的速度和方向无预览(仅限下载)。
示意图
用于控制直流电机的Arduino UNO和H桥驱动器制造工艺