基于STM32F103C8T6的循迹避障小车完整制作过程(详细)

您所在的位置:网站首页 智能循迹小车的硬件原理是什么意思 基于STM32F103C8T6的循迹避障小车完整制作过程(详细)

基于STM32F103C8T6的循迹避障小车完整制作过程(详细)

2024-03-27 04:06| 来源: 网络整理| 查看: 265

接上篇

链接:基于STM32F103C8T6的循迹避障小车完整制作过程(详细)----上篇(第123点)

其实上篇就是一些基础的东西,本篇讲一下如何让小车循迹 四,如何通过pwm调整电机的转速(调节小车的快慢) 1,为何pwm能调速度?

我的理解是,对于直流电机来讲,一上高平电机就会转动,如果改变了高电平占有的比例,就是让电机在单位时间内接到的高电平时间减少,它的速度就会减小。 注意这里的pwm是由单片机输出到电机驱动的IN1-IN4端的,所以我们要进行软件设置,以输出想要的高电平,这里主要就是软件方面的事啦。

2,如何连接stm32和电机驱动?

stm32没有单独的pwm模块,它是利用定时器来输出pwm的,每个定时器有4个通道,我们需要找到定时器这4个通道所接的引脚,再将这4个引脚接到电机驱动的输入端上就好了。先简单回顾一下stm32定时器的相关知识。首先我查看了stm3210x系列的技术手册 在这里插入图片描述 可以看到的是,我们手上的这块STM32F103C8T6有3个通用定时器(我的工程中把这三个定时器都用完了),再往下,每个定时器有4个通道,我们需要找到这4个通道分别对应的引脚。比如我给电机所使用的定时器为TIM3,查看数据手册对引脚的定义后发现如下: 在这里插入图片描述 所以定时器3的通道1-4分别对应的是PA6,PA7,PB0,PB1,我将这4个引脚分别接到电机驱动的IN1-IN4,如此一来,关于电机调速的硬件电路我们已经搭好了。

3,如何设置定时器输出4路可调pwm?

这是最关键的地方了,先贴一下我的电机设置的代码吧,下面是moter.c程序

#include "moter.h" void CarGo(void) { TIM_SetCompare1(TIM3 , 400); //数值越大速度越慢 TIM_SetCompare2(TIM3 , 900); TIM_SetCompare3(TIM3 , 400); TIM_SetCompare4(TIM3 , 900); } void CarStop(void) { TIM_SetCompare1(TIM3 , 900); TIM_SetCompare2(TIM3 , 900); TIM_SetCompare3(TIM3 , 900); TIM_SetCompare4(TIM3 , 900); } void CarBack(void) { TIM_SetCompare1(TIM3 , 900); TIM_SetCompare2(TIM3 , 300); TIM_SetCompare3(TIM3 , 900); TIM_SetCompare4(TIM3 , 300); } void CarLeft(void) { TIM_SetCompare1(TIM3 , 900); TIM_SetCompare2(TIM3 , 300); TIM_SetCompare3(TIM3 , 300); TIM_SetCompare4(TIM3 , 900); } void CarBigLeft(void) { TIM_SetCompare1(TIM3 , 900); TIM_SetCompare2(TIM3 , 100); TIM_SetCompare3(TIM3 , 100);


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3