
前言
直流电机调速是嵌入式小车、机器人项目最基础的模块,很多毕设、课程设计都会用到 L298N 驱动芯片配合 STM32 实现电机正反转与 PWM 调速。本文带来一套完整 Proteus 仿真工程,通过独立按键控制电机启动、正转、反转、加速、减速,OLED 屏幕显示运行状态与 PWM 转速,串口虚拟终端输出转速信息,示波器观测 PWM 波形,适合新手学习 STM32 定时器 PWM 输出、L298N 电机驱动原理。
一、系统整体方案
主控芯片:STM32F103C8T6 硬件模块:
- L298N 电机驱动芯片:驱动直流电机,控制电机正反转
- 独立按键:启动、正转、反转、加速、减速 5 个功能按键
- OLED12864 显示屏:显示电机方向、PWM 转速数值、运行开关状态
- 串口 Virtual Terminal:打印电机转速信息,调试查看
- 数字示波器:观测 PWM 输出波形,直观观察占空比变化
功能设计: ✅ 按键启动 / 停止电机 ✅ 电机正转、反转方向切换 ✅ PWM 占空比调节,实现电机加速、减速调速 ✅ OLED 实时显示方向、转速、运行状态 ✅ 串口终端打印转速数据 ✅ 示波器实时观察 PWM 波形变化
二、Proteus 仿真电路解析
- STM32 主控单元 STM32F103C8T6 作为核心,使用定时器输出 PWM 信号给到 L298N 的 ENA 使能引脚;普通 GPIO 输出高低电平控制 IN1、IN2,决定电机旋转方向。PA 口外接 5 个独立按键,实现人机交互。
- L298N 电机驱动电路 L298N 是常用直流电机驱动,IN1、IN2 控制电机转向:
- IN1=1,IN2=0:电机正转
- IN1=0,IN2=1:电机反转 ENA 引脚接收 STM32 输出的 PWM 波形,通过改变 PWM 占空比,调节电机平均电压,实现调速。二极管 D11、D12 为续流二极管,吸收电机断电产生反向电动势,保护驱动芯片。OUT1、OUT2 接直流电机。
- 按键输入电路 PA13 启动按键、PA12 正转按键、PA11 反转按键、PA15 加速按键、PA14 减速按键,采用独立按键输入,程序内部做按键消抖处理,检测按键按下事件执行对应逻辑。
- OLED 显示模块 OLED 屏幕实时打印电机工作状态:旋转方向(正转 / 反转)、当前 PWM 转速数值、电机开启 / 关闭状态,直观反馈系统运行情况。
- 串口虚拟终端 & 示波器
- Virtual Terminal:串口实时打印
电机转速:XX,用于软件调试,观测转速变化。 - Digital Oscilloscope 示波器:接入 PWM 输出引脚,可以直观看到 PWM 方波,加速时占空比变大,减速时占空比变小,验证 PWM 输出是否正常。
三、软件设计思路
- 外设初始化:GPIO 按键初始化、定时器 PWM 初始化、OLED 初始化、串口 USART 初始化。
- 主循环扫描按键,软件消抖,识别按键按下动作:
- 启动按键:电机开启 / 停止切换
- 正转按键:设置 IN1、IN2 电平,电机正向旋转
- 反转按键:修改 IN1、IN2 电平,电机反向旋转
- 加速按键:PWM 比较值增加,增大占空比,电机转速提高
- 减速按键:PWM 比较值减小,减小占空比,电机转速降低
- 将当前方向、转速状态刷新到 OLED 屏幕。
- 通过串口把转速数值发送至虚拟终端打印输出。
- 循环扫描,持续响应按键操作。
四、仿真运行效果
仿真运行后,OLED 屏幕显示电机方向、转速数值以及开关状态; 按下正转 / 反转按键,电机切换旋转方向;按下加速、减速,PWM 占空比改变,示波器波形同步变化,串口终端持续打印电机转速。
截图现象:OLED 显示
反转 转速:60 开;虚拟终端不断输出电机转速:60;示波器窗口可以看到 PWM 方波输出。
五、知识点总结
- PWM 调速原理:通过定时器输出不同占空比方波,调节电机等效平均电压,实现调速,占空比越大电机转速越高。
- L298N 逻辑:IN1、IN2 控制转向,ENA 引脚 PWM 控制转速。
- 按键消抖:机械按键存在抖动,程序必须延时消抖,避免误触发。
- 示波器在仿真中的作用:不用外接硬件,直接观测 PWM 波形,快速定位 PWM 输出异常问题。
六、拓展改进方向
- 实物项目可以增加编码器,实现闭环 PID 调速,精准控制电机实际转速。
- 增加蓝牙模块,手机蓝牙发送指令控制电机启停、正反转调速。
- 增加限位开关,实现电机到位停止逻辑。
- 扩展两路 L298N 驱动,实现小车双电机差速控制。
关键词:
STM32Proteus仿真L298NPWM调速直流电机
通过网盘分享的文件:仿真文件获取.zip
链接: https://pan.baidu.com/s/1V5zzxbpHc_fRqfGIzSdLfg?pwd=6666 提取码: 6666