尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

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

实用指南:51单片机基础-直流电机控制
📅 发布时间:2026/6/21 9:37:49

实用指南: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接电机A
OUT3, OUT4接电机B

2.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 <reg52.h>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;
  • 驱动两个电机实现智能小车;
  • 引入编码器实现速度反馈;
  • 学习红外避障或循迹功能。

本章标志着你已掌握基本的电机控制能力,下一章将进入步进电机的学习,实现精确角度控制。


相关新闻

  • 2025国内电子万能试验机公司推荐榜
  • 2025年口碑好的船用安全绳优质厂家推荐榜单
  • 2025年电脑维修常见故障渠道口碑排行榜单

最新新闻

  • Python实战RSA算法:从数论原理到完整加密引擎实现
  • 2026年知名的大连驾校快速拿证/大连驾校大学生学车/大连驾校口碑排行榜 - 行业平台推荐
  • 2026年靠谱的台州短视频拍摄/工厂短视频/台州短视频服务型公司推荐 - 行业平台推荐
  • 世界杯蹭热点做内容别瞎忙活!聚合型导航自媒体指南走完选题、写稿、剪辑、发布全流程
  • 2026年热门的大连无人机吊运/大连无人机勘测/大连无人机考试/大连无人机陪驾陪练可靠服务公司 - 品牌宣传支持者
  • 终极AMD Ryzen调校指南:用SMUDebugTool解锁处理器隐藏性能

日新闻

  • 2026速览惠州叛逆青少年学校前十大排名名单出炉 - 武汉中职最新信息发布
  • 2026上饶白蚁消杀哪家好?15年本土2大权威白蚁防治公司推荐(金盾虫控/青蚁卫士) - 我叫一
  • 天龙八部单机版终极数据管理工具:5个技巧快速掌握游戏数据编辑

周新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号