实用指南:51单片机基础-直流电机控制

实用指南:51单片机基础-直流电机控制

第十三章 直流电机控制1. 导入在前几章中,我们学习了LED、数码管、蜂鸣器、按键等人机交互设备的控制。本章将引入直流电机(DC Motor),作为执行机构的重要代表,广泛应用于风扇、小车、机器人等系统中。

直流电机通过输入直流电压产生旋转运动,但51单片机I/O口输出电流有限,无法直接驱动电机。因此,需要通过驱动电路(如H桥、三极管)实现控制。

本章目标:

理解直流电机的工作原理;掌握使用L298N驱动电机;实现电机启停、正反转控制;通过PWM调节电机速度(软件模拟);为后续智能小车、电机控制系统打下基础。2. 硬件设计2.1 直流电机特性工作电压:3V ~ 12V(常见5V、6V、12V);转速与电压成正比;转向与电压极性有关;启动电流较大(可达1A以上),需外部驱动。2.2 驱动方案选择常用驱动芯片:芯片特点L298N双H桥,可驱动两个电机,最大2A,支持PWM调速L9110单通道H桥,驱动能力强,逻辑清晰ULN2003达林顿阵列,适合小功率电机三极管(如TIP122)简单电路,但仅支持单向控制本章采用L298N模块,因其稳定、易用、支持正反转与PWM。

2.3 L298N引脚说明引脚功能说明VCC电机电源输入(5~35V)GND公共地5V输出5V(当ENA、ENB接跳线时,可对外供电)IN1, IN2通道A输入控制(接单片机I/O)IN3, IN4通道B输入控制ENA通道A使能(接PWM或高电平)ENB通道B使能OUT1, OUT2接电机AOUT3, OUT4接电机B2.4 电路连接单电机控制(使用通道A):L298N引脚连接说明IN1→ P2.0(控制方向)IN2→ P2.1(控制方向)ENA→ P2.2(使能,接PWM)OUT1, OUT2接直流电机两端VCC接12V电源(或6V)GND与单片机共地5V不接(若外部供电)或接VCC(若需给单片机供电)注意:L298N的逻辑电压与电机电压可分离,确保GND共地。

3. 软件设计3.1 控制逻辑(H桥原理)IN1IN2ENA电机状态101正转011反转001刹车(快速停止)111刹车XX0不转(使能关闭)“X”表示任意状态。

3.2 定义控制引脚

#include

sbit IN1 = P2^0;

sbit IN2 = P2^1;

sbit ENA = P2^2;

void delay_ms(unsigned int ms) {

unsigned int i, j;

for (i = 0; i < ms; i++)

for (j = 0; j < 125; j++);

}

3.3 电机基本控制函数

// 电机停止

void motor_stop() {

IN1 = 0;

IN2 = 0;

ENA = 1; // 使能开启,但输入为0 → 刹车

}

// 电机正转

void motor_forward() {

IN1 = 1;

IN2 = 0;

ENA = 1;

}

// 电机反转

void motor_backward() {

IN1 = 0;

IN2 = 1;

ENA = 1;

}

// 电机关闭(使能关闭)

void motor_disable() {

ENA = 0;

}

3.4 主程序:正反转控制

void main() {

while(1) {

motor_forward(); // 正转3秒

delay_ms(3000);

motor_stop(); // 停止1秒

delay_ms(1000);

motor_backward(); // 反转3秒

delay_ms(3000);

motor_stop();

delay_ms(1000);

}

}

3.5 软件模拟PWM调速由于51单片机无硬件PWM(部分增强型有),可使用软件模拟。

// 软件PWM控制速度(占空比0~100)

void pwm_motor(unsigned char duty) {

unsigned char i;

for (i = 0; i < 100; i++) {

if (i < duty) {

ENA = 1; // 高电平

} else {

ENA = 0; // 低电平

}

delay_ms(1); // 周期100ms,频率10Hz(可优化)

}

}

注意:此方法占用CPU,建议在主循环中调用,避免影响其他功能。

使用示例:

void main() {

IN1 = 1; IN2 = 0; // 设定正转方向

while(1) {

pwm_motor(30); // 30% 速度

delay_ms(2000);

pwm_motor(70); // 70% 速度

delay_ms(2000);

}

}

实际中可通过按键调节duty值。

3.6 结合按键控制电机引入独立按键控制电机模式:

K1:正转K2:反转K3:停止3.7 编译与下载Keil中创建工程;确保L298N连接正确,电机电源独立;编译生成HEX;下载至单片机;按下按键或运行程序,观察电机是否按预期转动。若电机不转:

检查VCC供电是否正常;确认GND共地;测量IN1/IN2电平是否变化;检查ENA是否开启。##4. 小结

本章通过控制直流电机,掌握了执行机构的基本驱动方法,主要内容包括:

硬件连接:学会使用L298N模块安全驱动电机;控制逻辑:掌握H桥正反转、刹车、使能控制;软件实现:编写启停、正反转函数;速度调节:通过软件PWM模拟调速;人机交互:结合按键实现手动控制。4.1 常见问题与解决问题原因解决方法电机不转电源未接、ENA为低检查电机供电与使能信号只能单向转IN1/IN2逻辑错误检查方向控制代码发热严重电流过大、散热不足加散热片,避免堵转PWM无效占空比太低或周期过长优化PWM频率(建议1~2kHz)4.2 下一步学习建议使用定时器中断生成更精准PWM;驱动两个电机实现智能小车;引入编码器实现速度反馈;学习红外避障或循迹功能。本章标志着你已掌握基本的电机控制能力,下一章将进入步进电机的学习,实现精确角度控制。

风雨相关

明日之后合金钻头多久成熟
365体育平台真假怎么分

明日之后合金钻头多久成熟

🌀 10-07 💧 阅读 7350
PRIME Z390-A
365体育手机版下载安装

PRIME Z390-A

🌀 01-12 💧 阅读 3982
代理服务器有什么用?一篇文章讲清楚代理服务器的原理与应用
365体育手机版下载安装

代理服务器有什么用?一篇文章讲清楚代理服务器的原理与应用

🌀 10-30 💧 阅读 1161
键盘重启电脑按哪个键
365体育手机版下载安装

键盘重启电脑按哪个键

🌀 09-30 💧 阅读 3969