STM32 PWM控制舵机 您所在的位置:网站首页 cjx2s2510接线图 STM32 PWM控制舵机

STM32 PWM控制舵机

2023-08-20 14:15| 来源: 网络整理| 查看: 265

STM32——PWM 控制舵机 通用定时输出PWM PWM的工作原理PWM的模式 TIM_OCMode_PWM1 (边沿对齐模式)TIM_OCMode_PWM2(中央对齐模式) 占空比 舵机 实物图接线舵机工作原理周期TPWM占空比 TIM3 PWM输出 驱动SG90电机 配置过程: 1. 使能GPIO时钟,TIM定时器时钟,部分重映射时钟2. 重映射定时器3. 配置GPIO结构体4. 配置通用定时器TIM结构体5. 配置PWM stm32 超声波感应开盖垃圾桶 motor.cmotor.hHC_SR04.cHC_SR04.husart.cusart.hmain.cstm32 超声波感应开盖垃圾桶 效果展示

通用定时输出PWM

以TIM3为例,STM32的通用定时器氛围TIM2,TIM3,TIM4,TIM5,每个定时器都有独立的四个通道可以用来作为: 输入捕获,输出比较,PWM输出,单脉冲模式输出等。

STM32的定时器除了TIM6和TIM7(基本定时器)之外,其他的定时器都可以产生PWM波输出,高级定时器TIM1,TIM8可以同时产生7路PWM输出,而通用定时器可以同时产生4路PWM输出,这样STM32可以最多同时输出30路PWM输出!

PWM的工作原理

在这里插入图片描述

以向上计数为例,讲述PWM原理:

在PWM输出模式下除了CNT(计数器当前值),ARR(自动重装载值),CCRx(捕获/比较寄存器值)。

当CNT小于CCRx时,TIMx_CHx通道输出低电平

当CNT等于或大于CCRx时,TIMx_CHx通道输出高电平

所谓脉宽调制信号(PWM波),就是一个TIMx_ARR自动重装载寄存器确定频率(由它决定PWM周期),TIM_CCRx寄存器确定占空比信号。

PWM的模式 TIM_OCMode_PWM1 (边沿对齐模式)

在这里插入图片描述

向上计数时: 当TIMx_CNTTIMx_CCRx,CCR1通道1为无效电平,否则为有效电平。

TIM_OCMode_PWM2(中央对齐模式)

向上计数时: 当TIMx_CNTTIMx_CCRx,CCR1通道1为有效电平,否则为无效电平。

占空比

在这里插入图片描述

是指在一个周期内,信号处于高电平的时间占据整个信号周期的百分比。

舵机 实物图

在这里插入图片描述

接线

SG9O电机

硬件接线:

红线 : 3.3v/ 5v 黑 / 棕线 : GND 黄线 : 信号线

舵机工作原理

舵机的主要组成部分为伺服电机,所谓伺服就是服从信号的要求而动作。在信号来之前,转子停止不动;信号来到之后,转子立即运动。因此我们就可以给舵机输入不同的信号,来控制其旋转到不同的角度。 舵机接收的是PWM信号,当信号进入内部电路产生一个偏置电压,触发电机通过减速齿轮带动电位器移动,使电压差为零时,电机停转,从而达到伺服的效果。简单来说就是给舵机一个特定的PWM信号,舵机就可以旋转到指定的位置。

在这里插入图片描述

舵机上有三根线,分别是GND、VCC和SIG,也就是地线、电源线和信号线,其中的PWM波就是从信号线输入给舵机的。 一般来说,舵机接收的PWM信号频率为50HZ,即周期为20ms。当高电平的脉宽在0.5ms~2.5ms之间时舵机就可以对应旋转到不同的角度。

在这里插入图片描述

t = 0.5ms——————-舵机会转到 0 ° t = 1.0ms——————-舵机会转到 45° t = 1.5ms——————-舵机会转到 90° t = 2.0ms——————-舵机会转到 135° t = 2.5ms——————-舵机会转到 180° 12345 周期T

PWM周期为20ms = 0.02s = (7200*200)/72000000

PWM占空比

是指在一个周期内,信号处于高电平的时间占据整个信号周期的百分比.由于PWM周期为20ms,所以(以舵机会转动 45°为例),占空比就应该为1ms/20ms = 5%,所以TIM_SetCompare1的 TIMx 捕获比较 1 寄存器值就为200 * 5% = 10

单位: % (0%~100%)

TIM3 PWM输出 驱动SG90电机 配置过程: 1. 使能GPIO时钟,TIM定时器时钟,部分重映射时钟 //1.使能GPIO时钟、定时器时钟、复用时钟 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); 1234 2. 重映射定时器

在这里插入图片描述

//2.重映射定时器 GPIO_PinRemapConfig(GPIO_PartialRemap_TIM3, ENABLE); 12 3. 配置GPIO结构体 GPIO_InitTypeDef gpioInitStructure;


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有