亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

直流电机控制库

组件和用品

Arduino UNO
× 1
通用晶体管 NPN
× 2
通用晶体管 PNP
× 2
电阻 1k ohm
× 2
1N4007 – 高电压、高额定电流二极管
× 4

应用和在线服务

Arduino IDE

关于这个项目

在这里,我展示了 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桥驱动器

制造工艺

  1. 使用真实传感器控制效果
  2. 在家制作 DIY 作业书写机
  3. 使用 Arduino Uno 的人体检测机器人系统
  4. 双极步进电机库
  5. 使用 Raspberry Motor Shield 的 Android 控制玩具
  6. 带伺服电机的机器人避障
  7. 线跟随机器人
  8. 使用 Arduino 和 Android 设备控制 Roomba 机器人
  9. 使用 Arduino 和 MPU6050 控制伺服电机
  10. 使用 Bolt 和 Arduino 控制 LED 亮度
  11. 使用 Arduino Uno 控制 LED 矩阵
  12. 超酷室内导航机器人