一、简介
接触STM32开发一段时间了,想用STM32做一个有意思的项目,经历了无数的调参调参再调参,终于让它站稳了,接一下就一步步的跟大家介绍一下,项目的整体实现过程—
二、项目介绍
【资料图】
STM32平衡小车是一种基于STM32芯片的智能小车,它可以通过自动控制来保持平衡,使其可以在不同的地形上稳定行驶。其使用范围非常广泛。需要用到一些基本的硬件组件,例如电机、轮子、陀螺仪、加速度计、电池等。通过设计的电路板进行连接,组成一个完整的系统。
三、硬件设计
根据上述需求,我进行了电路图设计
四、软件设计
4.1电机驱动编写
4.1.1电机引脚说明
编码电机
引脚说明:
| M1电机电源线(12V) |
| GND编码器地线 |
| C1电机编码器A相 |
| C2电机编码器B相 |
| VCC编码器电源3.3V |
| M2电机电源线(12V) |
4.1.2电机驱动模块说明
TB6612FNG电机驱动模块
| VCC:电源正极,一般接5V或3.3V电源。 |
| GND:电源负极,接地。 |
| AIN1:H桥A口输入1,接控制信号。 |
| AIN2:H桥A口输入2,接控制信号。 |
| PWMA:A口PWM输入,控制A口输出占空比。 |
| STBY:H桥使能信号,高电平使能,低电平关闭。 |
| AO1:H桥A口输出1,接电机正极。 |
| AO2:H桥A口输出2,接电机负极。 |
| BIN1:H桥B口输入1,接控制信号。 |
| BIN2:H桥B口输入2,接控制信号。 |
| PWMB:B口PWM输入,控制B口输出占空比。 |
| BO1:H桥B口输出1,接电机正极。 |
| BO2:H桥B口输出2,接电机负极。 |
根据原理图将对应硬件连接,接下来我们开始测试
4.1.3电机驱动实战
我们给PWMA、PWMB引脚输出PWM信号,控制电机转速,AO1、AO2、BO1、BO2设置位正转
真值表
| AO1 | AO2 | BO1 | BO2 |
| 1 | 0 | 1 | 0 |
以上主要通过引脚控制电机转动方向,下面讲一下STM32输出PWM原理
4.1.3.1 PWM原理
STM32通过初始化PA8、PA11这两个引脚,复用为TIM脉冲宽度调制模式1,通过修改TIM1通道1、4的寄存器存放数值,来控制PWM的输出脉宽。
#define PWMA TIM1->CCR1 //PA8
#define PWMB TIM1->CCR4 //PA11
通过以上设置,实现对电机转速、方向的控制
五、效果演示
审核编辑黄宇
国产宝马X5降价 xDrive30Li 尊享型M运动套装取消智能触控钥匙
iOS 16低电量可关闭电池百分比 避免用户产生“电量焦虑”
李想猜测林志颖驾撞车经过 解开安全带低头捡手机导致
女明星马思纯驾300万豪车逆行等 网友评论希望公众人物能够带个好头
美团单车对12岁以下未成年人说不 实名注册的用户必须年满16周岁
周杰伦《粉色海洋》MV正式上线 周杰伦携手儿子Romeo放送浪漫
福特发布投射大灯新技术 新技术的装车时间以及车型还未确定
《海贼王》真人剧大小路飞演员合照 真人剧集第一季共有10集
理想二季度交付量大涨6成 第二季度的毛利为人民币18.8亿元
网易云音乐iPadOS版新增桌面歌词功能 能进行切歌和暂停操作