【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

相关推荐
黑妹天下第一乖9 小时前
第 08 讲:阿加犀 AidGenSE 端侧大模型服务化与 OpenAI 兼容接口
人工智能·嵌入式硬件·深度学习·机器人·iot
辰哥单片机设计9 小时前
漏水传感器(STM32)
stm32·单片机·嵌入式硬件
恶魔泡泡糖10 小时前
stm32F103C8T6标准库串口接收之多串口基础应用5
stm32·单片机·嵌入式硬件
木子单片机10 小时前
基于51单片机计步器—无线蓝牙APP上传
单片机·嵌入式硬件·51单片机·keil
智者知已应修善业10 小时前
【51单片机只有一个8*8点阵数据如何滚动起来一片595+一组IO+花样】2022-1-15
c++·经验分享·笔记·单片机·蓝桥杯·硬件架构
恒锐丰科技林技术员10 小时前
EG2123A 三相独立半桥驱动芯片解析与工程应用
经验分享·嵌入式硬件·硬件工程
硅基手札11 小时前
【Linux 内核专栏 13】快IO层
linux·服务器·嵌入式硬件
vx-程序开发11 小时前
【计算机毕设】51300童装超市管理系统的设计与实现
java·vue.js·spring boot·源码·课程设计·毕设·大作业
李日华大战鸡红11 小时前
滑膜观测器(学习记录)
stm32·单片机·学习·matlab·机器人
白搞电子11 小时前
ESP32-S31 项目如何制作 Windows 一键烧录包:完整镜像、esptool 与数据边界
windows·stm32·单片机