基于STM32的平衡小车设计过程分享(1)

一、简介

接触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设置位正转

真值表

AO1AO2BO1BO2
1010

以上主要通过引脚控制电机转动方向,下面讲一下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

通过以上设置,实现对电机转速、方向的控制

五、效果演示



审核编辑 黄宇

  • 3
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一口气吃不成胖子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值