【proteus仿真】基于STM32单片机直流电机控制设计(仿真图+程序)

前言

直流电机调速是嵌入式小车、机器人项目最基础的模块,很多毕设、课程设计都会用到 L298N 驱动芯片配合 STM32 实现电机正反转与 PWM 调速。本文带来一套完整 Proteus 仿真工程,通过独立按键控制电机启动、正转、反转、加速、减速,OLED 屏幕显示运行状态与 PWM 转速,串口虚拟终端输出转速信息,示波器观测 PWM 波形,适合新手学习 STM32 定时器 PWM 输出、L298N 电机驱动原理。

一、系统整体方案

主控芯片:STM32F103C8T6 硬件模块:

  1. L298N 电机驱动芯片:驱动直流电机,控制电机正反转
  2. 独立按键:启动、正转、反转、加速、减速 5 个功能按键
  3. OLED12864 显示屏:显示电机方向、PWM 转速数值、运行开关状态
  4. 串口 Virtual Terminal:打印电机转速信息,调试查看
  5. 数字示波器:观测 PWM 输出波形,直观观察占空比变化

功能设计: ✅ 按键启动 / 停止电机 ✅ 电机正转、反转方向切换 ✅ PWM 占空比调节,实现电机加速、减速调速 ✅ OLED 实时显示方向、转速、运行状态 ✅ 串口终端打印转速数据 ✅ 示波器实时观察 PWM 波形变化

二、Proteus 仿真电路解析

  1. STM32 主控单元 STM32F103C8T6 作为核心,使用定时器输出 PWM 信号给到 L298N 的 ENA 使能引脚;普通 GPIO 输出高低电平控制 IN1、IN2,决定电机旋转方向。PA 口外接 5 个独立按键,实现人机交互。
  2. L298N 电机驱动电路 L298N 是常用直流电机驱动,IN1、IN2 控制电机转向:
  • IN1=1,IN2=0:电机正转
  • IN1=0,IN2=1:电机反转 ENA 引脚接收 STM32 输出的 PWM 波形,通过改变 PWM 占空比,调节电机平均电压,实现调速。二极管 D11、D12 为续流二极管,吸收电机断电产生反向电动势,保护驱动芯片。OUT1、OUT2 接直流电机。
  1. 按键输入电路 PA13 启动按键、PA12 正转按键、PA11 反转按键、PA15 加速按键、PA14 减速按键,采用独立按键输入,程序内部做按键消抖处理,检测按键按下事件执行对应逻辑。
  2. OLED 显示模块 OLED 屏幕实时打印电机工作状态:旋转方向(正转 / 反转)、当前 PWM 转速数值、电机开启 / 关闭状态,直观反馈系统运行情况。
  3. 串口虚拟终端 & 示波器
  • Virtual Terminal:串口实时打印电机转速:XX,用于软件调试,观测转速变化。
  • Digital Oscilloscope 示波器:接入 PWM 输出引脚,可以直观看到 PWM 方波,加速时占空比变大,减速时占空比变小,验证 PWM 输出是否正常。

三、软件设计思路

  1. 外设初始化:GPIO 按键初始化、定时器 PWM 初始化、OLED 初始化、串口 USART 初始化。
  2. 主循环扫描按键,软件消抖,识别按键按下动作:
    • 启动按键:电机开启 / 停止切换
    • 正转按键:设置 IN1、IN2 电平,电机正向旋转
    • 反转按键:修改 IN1、IN2 电平,电机反向旋转
    • 加速按键:PWM 比较值增加,增大占空比,电机转速提高
    • 减速按键:PWM 比较值减小,减小占空比,电机转速降低
  3. 将当前方向、转速状态刷新到 OLED 屏幕。
  4. 通过串口把转速数值发送至虚拟终端打印输出。
  5. 循环扫描,持续响应按键操作。

四、仿真运行效果

仿真运行后,OLED 屏幕显示电机方向、转速数值以及开关状态; 按下正转 / 反转按键,电机切换旋转方向;按下加速、减速,PWM 占空比改变,示波器波形同步变化,串口终端持续打印电机转速。

截图现象:OLED 显示反转 转速:60 开;虚拟终端不断输出电机转速:60;示波器窗口可以看到 PWM 方波输出。

五、知识点总结

  1. PWM 调速原理:通过定时器输出不同占空比方波,调节电机等效平均电压,实现调速,占空比越大电机转速越高。
  2. L298N 逻辑:IN1、IN2 控制转向,ENA 引脚 PWM 控制转速。
  3. 按键消抖:机械按键存在抖动,程序必须延时消抖,避免误触发。
  4. 示波器在仿真中的作用:不用外接硬件,直接观测 PWM 波形,快速定位 PWM 输出异常问题。

六、拓展改进方向

  1. 实物项目可以增加编码器,实现闭环 PID 调速,精准控制电机实际转速。
  2. 增加蓝牙模块,手机蓝牙发送指令控制电机启停、正反转调速。
  3. 增加限位开关,实现电机到位停止逻辑。
  4. 扩展两路 L298N 驱动,实现小车双电机差速控制。

关键词:STM32 Proteus仿真 L298N PWM调速 直流电机

通过网盘分享的文件:仿真文件获取.zip

链接: https://pan.baidu.com/s/1V5zzxbpHc_fRqfGIzSdLfg?pwd=6666 提取码: 6666

相关推荐
天空'之城1 小时前
单片机基础核心知识点汇总(十八)
单片机·嵌入式硬件
736c2 小时前
STM32-看门狗 10
stm32·单片机
虎王物联2 小时前
工业Modbus TCP协议深度实战:STM32 HAL库实现从机通信与数据上云
stm32·物联网·网络协议·tcp/ip·嵌入式
luiyarch2 小时前
汽车电子ISO 26262功能安全系列(第17期):系统集成与测试——验证系统级安全机制
嵌入式硬件·安全·车载系统·汽车
DevHub5 小时前
CANopen 教程:STM32 实现 CANopen 从站,3 个回调替代手写对象字典
c语言·驱动开发·stm32·单片机·嵌入式硬件·mcu
单片机仿真设计7 小时前
【proteus仿真】基于 STM32 农业大棚巡检小车 (仿真图+程序)
stm32·单片机·嵌入式硬件·proteus·毕设
Hello_Damon_Nikola9 小时前
AiP9M161个人护理产品方案从设计到实现
单片机·嵌入式硬件
智购科技无人售货机工厂9 小时前
2026自动售货机热敏打印模块集成:从串口驱动到小票自动裁切的工程实践~YH
android·stm32·单片机·嵌入式硬件·系统架构
736c9 小时前
STM32-PWR 09
stm32·单片机