STM32 SG90舵机应用

无意中翻到了一个舵机,想了解一下舵机的使用。
STM32 SG90舵机应用_第1张图片
舵机与普通的电机不同,它可以根据指令旋转到0至180度之间的任意角度然后精准的停下来。

原理是啥我也不知道。

从找的资料看到
“很多舵机的位置等级有1024个,如果舵机的有效角度范围为180度的话,其控制的角度精度是可以达到180/1024度约0.18度了,从时间上看其实要求的脉宽控制精度为2000/1024us约2us。
如果你拿了个舵机,连控制精度为1度都达不到的话,而且还看到舵机在发抖。在这种情况下,只要舵机的电压没有抖动,那抖动的就是你的控制脉冲了。”

橙色信号线 红色正极 棕色负极

舵机的控制一般需要一个20ms左右的时基脉冲,该脉冲的高电平部分一般为0.5ms~2.5ms范围内的角度控制脉冲部分。以180度角度伺服为例,那么对应的控制关系是这样的:
0.5ms--------------0度;
1.0ms------------45度;
1.5ms------------90度;
2.0ms-----------135度;
2.5ms-----------180度;

然而我的实测却不一样。

void Servo_Play(void)
{
	TIM_SetCompare2(TIM2, 40);
	delay_ms(500);
	TIM_SetCompare2(TIM2, 75);
	delay_ms(500);
	TIM_SetCompare2(TIM2, 110);
	delay_ms(500);
	TIM_SetCompare2(TIM2, 149);
	delay_ms(500);
	TIM_SetCompare2(TIM2, 199);
	delay_ms(500);
}

周期20ms,代码中的数字单位为10us。

对舵机有了初步的认识,先写下来,以免忘了。

你可能感兴趣的:(STM32)