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

高性能 Arduino 直流电机控制库

组件与物料

Arduino UNO ×1
通用 NPN 三极管 ×2
通用 PNP 三极管 ×2
1kΩ 电阻 ×2
1N4007 高压大电流二极管 ×4

应用与在线服务

项目简介

高性能 Arduino 直流电机控制库

本库专为工业运动控制设计,提供 16 种功能,能以最通用的方式控制任意直流电机。只需将 DC_Motor 文件夹复制到 Arduino 库目录 (如 C:\arduino-1.6.7\libraries) 即可使用。

库功能清单

  1. 控制电机旋转方向
  2. 0-100% 速度控制
  3. 软启动:指定时间内从 0% 加速至目标速度
  4. 平滑停止:指定时间内从当前速度减速至 0%
  5. 点动控制:指定方向短时抖动
  6. 直流制动:紧急/即时停止

函数详细说明

基础控制 (无速度控制)

  1. DC_Motor(int pin1, int pin2):声明驱动电机的 Arduino 引脚
  2. DC_Motor(int pin1, int pin2, int speed_flag):声明 PWM 输出引脚并启用速度控制 (speed_flag=1)
  3. start_motor(int dir):指定方向启动 (1=正转, 0=反转)
  4. forward():正转启动
  5. reverse():反转启动
  6. dc_break():瞬间停止电机*
  7. stop_motor():停止电机
  8. jogg_full_speed(int dir):全速点动 5 秒

* 注:需电机内部支持直流制动,且驱动电路需配备动态制动电阻 (DBR) 并做好保护,防止损坏。

带速度控制的高级功能 (需 PWM 引脚并用第 2 种构造函数初始化)

  1. set_speed(int speed):设定速度 0-100%
  2. forward_with_set_speed():以设定速度正转
  3. reverse_with_set_speed():以设定速度反转
  4. run_motor(int dir, int speed):指定方向和速度运行
  5. jogg_set_speed(int dir, int speed):指定速度点动
  6. motor_speed_zero():将速度降至 0 (停止)*
  7. soft_start(int dir, int speed, int time_in_sec):软启动,指定秒数从 0 加速到目标速度
  8. smooth_stop(int time_in_sec):平滑停止,指定秒数从当前速度减速到 0

* 带速度控制时不可用 stop_motor(),因其输出数字信号;应用 motor_speed_zero() 输出最小模拟量使电机停转。

示例程序

1) 全速正反转 (无速度控制)

#include 
DC_Motor motor(8, 12);

void setup() {}
void loop() {
  motor.forward();
  delay(5000);
  motor.stop_motor();
  delay(2000);
  motor.reverse();
  delay(5000);
  motor.stop_motor();
  delay(2000);
}

2) 设定速度正反转 (带速度控制)

#include 
DC_Motor motor2(9, 10, 1); // PWM 引脚 9,10 且启用速度标志

void setup() {}
void loop() {
  motor2.set_speed(40);
  motor2.forward_with_set_speed();
  delay(5000);
  motor2.motor_speed_zero();
  delay(2000);
  motor2.set_speed(80);
  motor2.reverse_with_set_speed();
  delay(5000);
  motor2.motor_speed_zero();
  delay(2000);
}

3) 双电机点动控制

#include 
DC_Motor motor(8, 12);
DC_Motor motor2(9, 10, 1);

void setup() {}
void loop() {
  motor.jogg_full_speed(1);
  motor.jogg_full_speed(0);
  motor2.jogg_set_speed(0, 80);
  motor2.jogg_set_speed(1, 30);
}

4) 软启动与平滑停止

#include 
DC_Motor motor2(9, 10, 1);

void setup() {}
void loop() {
  motor2.soft_start(1, 90, 10); // 正向 10 秒加速至 90%
  delay(3000);
  motor2.smooth_stop(5);        // 5 秒平滑停止
  motor2.soft_start(0, 50, 6);  // 反向 6 秒加速至 50%
  delay(3000);
  motor2.smooth_stop(3);        // 3 秒平滑停止
}

代码

库文件为 C 头文件,仅供下载,无在线预览。

原理图

Arduino UNO 配合 H 桥驱动器控制直流电机

高性能 Arduino 直流电机控制库

制造工艺

  1. Satellite CCRMA 套件:构建传感器驱动的音频效果器
  2. 自制家用作业书写机:Arduino + GRBL 控制的笔绘仪
  3. 基于 Arduino Uno 的人体检测救援机器人:传感器集成分步指南
  4. Arduino 通用双极性步进电机控制库——精准控制转速、角度、圈数与方向
  5. Android 手势遥控车:Raspberry Pi + Arduino 101 + 电机扩展板,I2T 协同控制
  6. 舵机驱动避障机器人:基于 Arduino 与 HC-SR04 构建
  7. Arduino UNO 自制循迹小车:从零构建自主巡线机器人
  8. Arduino + Android 蓝牙控制 Roomba Create 2 扫地机器人完整指南
  9. Arduino + MPU6050 姿态控制舵机:SG90 与 MG996R 精准跟随实战
  10. Bolt IoT + Arduino UNO 实现 6 路 LED 无级调光
  11. Arduino Uno驱动MAX7219级联8×8 LED矩阵:从入门到动画显示
  12. 适用于 Arduino 项目的智能室内导航机器人套件