STM32驱动SG90舵机
- 关于SG90舵机
- SG90转动角度与占空比的关系
- 驱动SG90舵机代码
-
- SG90舵机正常驱动现象
- 总结
关于SG90舵机
SG90是一种小型伺服电机,通常用于模型制作和小型机械应用中:
问题 | 答案 |
---|
SG90的工作电压是多少 | SG90的工作电压通常为3V至7.2V |
SG90最大扭矩是多少 | SG90的最大扭矩约为1.5kg/cm |
SG90的工作温度范围是多少 | SG90的工作温度范围通常为0°C至55°C |
SG90的控制方式是什么 | SG90的控制方式通常为PWM控制,可以使用Arduino,STM32等微控制器进行控制 |
SG90可以旋转多少度 | SG90可以旋转约180度 |
SG90的尺寸是多少 | SG90的尺寸约为23mm x 12.2mm x 29mm |
SG90转动角度与占空比的关系
SG90舵机通常使用50赫兹(Hz)的PWM信号进行控制,这意味着PWM周期为20毫秒(ms),每个周期内包含50个PWM脉冲。每个脉冲的宽度应该在0.5毫秒(ms)到2.5毫秒(ms)之间,对应的脉冲占空比为2.5%到12.5%。具体的PWM频率和占空比范围可能会因舵机型号和制造商而异,因此建议在使用之前查看SG90舵机的数据手册以获取准确的规格参数。
角度 | 占空比 |
---|
0 | 2.5% |
45 | 5% |
90 | 7.5% |
135 | 10% |
180 | 12.5% |
驱动SG90舵机代码
①确定控制引脚
将舵机的控制引脚连接到您的微控制器或电路板上的数字引脚。通常,您可以使用STM32或者Arduino或树莓派等单片机控制舵机。
②写代码
下面展示一些 内联代码片
。
void SETPWM(uint8_t flag)
{
switch(flag)
{
case 1:
if(duty>=150)
{
while(duty!=200)
{
TIM_SetCompare3(TIM1, duty+=1);
delay_ms(10);
}
}
break;
case 2:
if(duty>=150)
{
while(duty!=150)
{
TIM_SetCompare3(TIM1, duty-=1);
delay_ms(10);
}
}
break;
case 3:
if(duty>=100)
{
while(duty!=150)
{
TIM_SetCompare3(TIM1, duty+=1);
delay_ms(10);
}
}
break;
case 4:
if(duty>=100)
{
while(duty!=100)
{
TIM_SetCompare3(TIM1, duty-=1);
delay_ms(10);
}
}
break;
}
}
int main(void)
{
ADVANCE_TIM_Init();
TIM_SetCompare3(TIM1,duty);
while(1)
{
SETPWM(1);
SETPWM(2);
SETPWM(4);
SETPWM(3);
}
}
SG90舵机正常驱动现象
正确驱动舵机后可以看到舵机呈现45-135度左右晃头现象!
总结
在平时的DIY小车或者其他的DIY需要用到舵机的地方都可以采取此方式驱动,博文中仅贴出相关功能代码,需要源代码的可以留言邮箱获取哦,长期发布电子相关文章,喜欢的点个关注吧~~
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)