STM32系列——手把手教你驱动SG-90舵机

目录

前言

1. 舵机控制原理

2. cubmx配置

 3. keil5代码


前言

本教程基于stm32f103c8t6最小系统板,hal库开发。

操作简单,讲解直接清楚,旨在让大家少走弯路。

1. 舵机控制原理

舵机的控制一般需要一个20ms左右的时基脉冲,该脉冲的高电平部分一般为0.5ms-2.5ms范围内的角度控制脉冲部分,总间隔为2ms。以180度角度伺服为例,那么对应的控制关系是这样的:

2. cubmx配置

 这里使用定时器2的通道1产生PWM来控制舵机,将定时器2的周期配置为720*2000/72000000=0.02s=20ms,初始占空比为0;

 3. keil5代码

/* USER CODE BEGIN 2 */
HAL_TIM_PWM_Start(&htim2,TIM_CHANNEL_1);//***定时器初始化
  /* USER CODE END 2 */
 /* USER CODE BEGIN WHILE */
  while (1)
  { 
      int i=1000; //循环时间间隔1s
      
      __HAL_TIM_SET_COMPARE(&htim2,TIM_CHANNEL_1,50); //相当于一个周期内(20ms)有0.5ms高脉冲
      HAL_Delay(i);
      __HAL_TIM_SET_COMPARE(&htim2,TIM_CHANNEL_1,250); //相当于一个周期内(20ms)有2.5ms高脉冲
      HAL_Delay(i);
 
    /* USER CODE END WHILE */

 可以通过修改句柄__HAL_TIM_SET_COMPARE(&htim2,TIM_CHANNEL_1,250)里的参数可以实现舵机角度控制。

 以上就是STM32驱动SG90舵机的HAL库版本的代码,全部按我这个操作100%一次驱动舵机。

码字不易,希望喜欢的小伙伴别忘了点赞+收藏+关注,你们的肯定就是我创作的动力。

欢迎大家积极交流,本文未经允许谢绝转载!!!

猜你喜欢

转载自blog.csdn.net/weixin_62261692/article/details/129963715