一、简介
SG90舵机是一种常见的小型伺服电机,广泛用于机器人、遥控模型、自动化系统等各种应用。它可以精确地控制角度,因此被广泛应用于需要精确位置控制的项目中,如机械臂、遥控飞机和机器人等。
接线:
控制方法:
则我们可以通过STM32的定时器PWM模式控制舵机。
二、HAL库代码
首先用CUBEMX设置定时器2为PWM模式,
我们要得到20ms的周期,则设置PSC为71 ARR为19999.
SG90.c的代码如下:
#include "SG90.h"
void SG90_Init()
{
HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_1);
}
void SG90_SetAngle(uint8_t angle) {
uint32_t pulse = 500 + (angle * 2000 / 180);
if (pulse < 500) pulse = 500;
if (pulse > 2500) pulse = 2500;
__HAL_TIM_SET_COMPARE(&htim2, TIM_CHANNEL_1, pulse);
}
代码逻辑如下: