STM32F103C8T6(HAL库)驱动舵机

简介: STM32F103C8T6(HAL库)驱动舵机

1、简介

常见的舵机分为360°和180°两种,本次对180°舵机进行驱动,舵机驱动需要通过PWM信号进行驱动。本文通过定时器中的PWM信号设定使得SG90舵机进行不同角度的转动。


2、PWM信号和舵机角度关系

对于舵机的驱动,需要20ms的脉冲,高电平时间在0.5ms-2.5ms区间即可控制舵机在0-180°角度进行转动。常见角度对应关系如下所示:



3、Cubemax初始化配置如下:

3.1基础配置

首先进行时钟树等基础配置。

3.2 PWM配置

信号引脚选用PB1,对应定时器3通道4,如下图所示:


接着在定时器对PWM进行配置,如下图所示:


9d594e47e06ab689fe780400bed586ac.png


接着对PSC、arr参数进行设置,定时器计算过程点击:STM32定时器定时计算。参数设置如下所示:


27ab0b9af379d82d1591de0db18e01b7.png


硬件接线:褐色接负极,红色接正极,橘黄色接信号(PB1)。

接着生成代码。


4、代码实现过程如下:

4.1 在主函数中打开对应的定时器时钟,代码如下所示:

HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_4);//打开对应定时器通道

接着在循环中进行角度设置,代码如下所示:

while (1)
  {
        //45°
         __HAL_TIM_SET_COMPARE(&htim3, TIM_CHANNEL_4, 100);//相当于一个周期内(20ms)有1ms高脉冲
        HAL_Delay(500);
        //180°
        __HAL_TIM_SET_COMPARE(&htim3,TIM_CHANNEL_4,250); //相当于一个周期内(20ms)有2.5ms高脉冲
    HAL_Delay(500);
        /* USER CODE END WHILE */
    /* USER CODE BEGIN 3 */
  }

演示效果如下:

链接:https://pan.baidu.com/s/1pd65o7_ruirq30GdJPuhTw

提取码:0s0z


上文如有错误,恳请各位大佬指正。

相关文章
STM32Cubemx PWM驱动加湿器模拟火山喷发效果
STM32Cubemx PWM驱动加湿器模拟火山喷发效果
277 14
STM32Cubemx PWM驱动SG90舵机
STM32Cubemx PWM驱动SG90舵机
640 13
STM32CubeMX mpu6050驱动
STM32CubeMX mpu6050驱动
215 10
STM32CubeMX EC11旋转编码器驱动
STM32CubeMX EC11旋转编码器驱动
1113 10
STM32CubeMX OLED驱动
STM32CubeMX OLED驱动
216 10
|
芯片
STM32CubeMX TM1637驱动数码管
STM32CubeMX TM1637驱动数码管
746 6
|
传感器
手把手在STM32F103C8T6上构建可扩展可移植的DHT11驱动
【8月更文挑战第29天】本文详细介绍在STM32F103C8T6上构建可扩展且可移植的DHT11温湿度传感器驱动的步骤,包括硬件与软件准备、硬件连接、驱动代码编写及测试。通过这些步骤,可根据实际项目需求优化和扩展代码。
595 0
STM32CubeMX WS2812B灯驱动
STM32CubeMX WS2812B灯驱动
898 1
STM32CubeMX ULN2003步进电机驱动
STM32CubeMX ULN2003步进电机驱动
328 0
STM32Cubemx TB6612直流电机驱动
STM32Cubemx TB6612直流电机驱动
766 0