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


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

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