【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

相关推荐
新晨单片机设计34 分钟前
S018A-基于STM32单片机脉搏计(光电对管)【Proteus仿真+Keil程序+原理图】
stm32·单片机·嵌入式硬件·proteus
HRTOS35 分钟前
HRTOS Debug:8051实时操作系统资源状态监控与分析
单片机·嵌入式硬件·51单片机
李永奉38 分钟前
中科蓝讯SDK开发-耳机项目功耗问题排查教程
c语言·开发语言·嵌入式硬件·物联网·智能手机
崇山峻岭之间1 小时前
HC32F460PETB的PH2的EMB_IN4
单片机
Rocktech_ruixun1 小时前
机器人集群调度方案硬件如何选型?瑞迅科技RK3588/3576/3568分级方案解析
人工智能·嵌入式硬件·机器人·边缘计算
youcans_1 小时前
【嵌入式软件AI编程】12. Claude Code的基本操作
stm32·单片机·ai编程·嵌入式软件·claude code
SilicoCode1 小时前
正点原子HAL库与江协科技标准库关于中断的对比解析
单片机·嵌入式硬件
smartpi_ai1 小时前
离线语音模块能当麦克风用吗?识别与录音的两套逻辑、“150 条“的词数语义与中英文切换固件的两条路径
嵌入式硬件·语音识别
Brilliantwxx2 小时前
【STM32】 从HAL库源码深度解析I2C(源码解析+面试题)
开发语言·stm32·单片机·嵌入式硬件·架构
xx~t2 小时前
嵌入式——ARM——汇编1
linux·汇编·arm开发·嵌入式硬件·arm