SG90 180°舵机的使用

SG90 180°舵机的使用

SG90的介绍

舵机是一种位置(角度)伺服的驱动器,适用于需要角度不断变化并可以保持的控制系统,可以根据控制信号来输出指定的角度(常见的有0-90°、0-180°、0-360°)。
其实质是一个伺服马达。又分为模拟舵机和数字舵机。

  1. 模拟舵机:需要不断发送PWM信号,才能旋转到指定位置。(例如想转10°,要不断发送10°PWM信号直到指定位置才能停止)
  2. 数字舵机:只需给一个PWM信号,即可旋转到指定位置。(例如想转10°,发送一次10°PWM信号就可以转到10°)
    接线
    红色----VCC
    棕色----GND
    橙色----信号线(连接到单片机输出PWM的引脚)
    对180°的舵机来说,舵机的控制一般需要一个20ms的时基脉冲,该脉冲的高电平部分一般为0.5ms~2.5ms范围内的角度控制脉冲部分,对应控制180°舵机的0-180°,呈线性变化。
    以180度角度伺服为例,那么对应的控制关系是这样的(t为高电平时间):
    t=0.5ms(占空比2.5%)---------0°;
    t=1.0ms(占空比5%)-----------45°;
    t=1.5ms(占空比7.5%)---------90°;
    t=2.0ms(占空比10%)---------135°;
    t=2.5ms(占空比12.5%)-------180°;

即: 高电平时间 = 0.5 m s + (角度 / 180 ° ) × 2 m s 高电平时间=0.5ms+(角度/180°)×2ms 高电平时间=0.5ms+(角度/180°×2ms
注意:舵机有一个基准角度即0°,所有角度的控制都是相对基准角度来说的,如果已经到达指定角度,则舵机不会再旋转。舵机的旋转一般为逆时针旋转。
在这里插入图片描述

180°的视角:
在这里插入图片描述


代码说明

采用通用定时器的PWM输出控制舵机,周期为20ms,通过改变占空比改变角度。以定时器3的通道一为例。

  1. 图形配置
    在这里插入图片描述

  2. 重要语句
    开启PWM中断
    HAL_TIM_PWM_Start_IT(&htim3, TIM_CHANNEL_1);
    改变占空比
    __HAL_TIM_SET_COMPARE(&htim3,TIM_CHANNEL_1,Pulse);

  3. 代码
    改变角度函数
    因为计数器频率为1M,故理论上角度的精度可达0. 1°,但考虑到舵机的控制精度,建议角度精度为 1°

void Angle_Control(uint16_t angle)
{
	uint16_t pulse;
	pulse=500+(int)(angle*100/9);
	__HAL_TIM_SET_COMPARE(&htim3,TIM_CHANNEL_1,pulse);
}

中断回调函数

void HAL_TIM_PWM_PulseFinishedCallback(TIM_HandleTypeDef *htim)
{
	n++;
}

参考文档:https://blog.csdn.net/Chrstian/article/details/124564112

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值