# stm32_Motor_PID_1 **Repository Path**: lyglary/stm32_Motor_PID_1 ## Basic Information - **Project Name**: stm32_Motor_PID_1 - **Description**: 个人学习PID时做的,基于stm32的PID电机控制源码,本实验包含6个电机控制实验,电机的PWM控制,编码器测速_定时器捕获法和外部中断法,位置式PID,增量式PID,串级PID,代码简洁易懂,十分适合PID入门。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 4 - **Created**: 2025-08-22 - **Last Updated**: 2025-08-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # stm32_PID_Motor 基于stm32的PID电机控制源码,本实验包含6个电机控制实验,电机的PWM控制,编码器测速_定时器捕获法和外部中断法,位置式PID,增量式PID,串级PID。见个人CSDN文章[使用stm32实现电机的PID控制](https://blog.csdn.net/weixin_43811044/article/details/127956227?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22127956227%22%2C%22source%22%3A%22weixin_43811044%22%7D) ### 0.接线图 | 模块引脚| 单片机引脚| |--|--| | OLED_SCL |PB8 | | OLED_SDA |PB9 | | 按键K1 |PC9 | | 按键K2 |PC8 | | TB6612_AIN1 |PB12 | | TB6612_AIN2 |PB13 | | 编码器A相 |PB6 | | 编码器B相 |PB7 | ### 1.电机的PWM控制 ![输入图片说明](doc/1.jpg) 按下K2,电机启动/关闭,按下K1切换电机旋转方向 OLED上显示电机PWM数值 ### 2.编码器测速_定时器捕获法 电机速度的采集途径有两种,定时器捕获和外部中断法。 ![输入图片说明](doc/2.jpg) 按下K2,电机启动/关闭,按下K1切换电机旋转方向 OLED上显示电机PWM数值以及定时器采集到的速度。 ### 3.编码器测速_外部中断法 ![输入图片说明](doc/3.jpg) 按下K2,电机启动/关闭,按下K1切换电机旋转方向 OLED上显示电机PWM数值以及定时器采集到的速度。 ### 3.增量式PID 按下K2,电机启动/关闭 为了方便观察数据,需要用到调参软件,如下图所示 ![输入图片说明](doc/4.png) 然后打开野火上位机调参软件 选择 PID调试助手,选择通道1和通道2打开,这时就能看到有波形出来 ### 4.位置式PID 按下K2,电机启动/关闭 ### 5.串级PID(位置+速度) 串级PID其实就是位置环PID+速度环PID,两环依次连接一起