成为码农半年了,第一次在csdn上写博客,意在分享自己的学习方法和对学习内容的鉴定。小白一枚,望指点。
1.我认为的舵机
舵机由电动机、传动部件和离合器组成。接受指令而工作。舵机大部分由伺服电机组成,舵机接受PWM信号,舵机就旋转角度。所以就可以给舵机输入不同的信号,来控制其旋转到不同的角度。
2.舵机的工作原理
舵机有三根接线:电源线,地线,信号线。电源线和地线大家都知道,PWM波就是从信号线输出到舵机。SG90舵机接收的PWM信号频率为50HZ,T=1/f,所以周期为20ms。当高电平的脉宽在0.5ms-2.5ms之间时舵机就可以对应旋转到不同的角度。
3。如何使用PWM来控制舵机的角度
由公式:72000000/((TIM_Period+1)*(TIM_Prescaler+1)) = f可以求出TIM_Period(周期)和TIM_Prescaler(预分频)的值。 占空比:t/T。t即为脉宽。根据舵机50Hz = 20ms 一个周期,如果频率为50Hz ,也就是说一个周期是20ms ,那么一秒钟就有 50次PWM周期。由于PWM周期为20ms,如果舵机会转动90度,占空比就应该为1.5ms/20ms = 7.5%,所以TIM_SetCompare1的 TIMx 捕获比较 1 寄存器值就为200-200*7.5% =185. 所以在SG90云台中:
#define SG90_Right_90 TIM_SetCompare2(TIM2