一、PWM工作原理
让计数器从0数到自动重装载值,不停计数。计数值小于输出比较寄存器时输出一种电平,大于输出比较寄存器时使出另一种电平。
修改定时器时钟源的速度以及预分频器等设置,可以修改计数器计数的速度
再加上修改自动重装载值,就可以调节PWM的周期频率
修改比较寄存器的大小,就可以调节PWM的占空比
二、舵机
当转轴被电机带动着转动时,电位器输出的电压就会改变,舵机内的控制板会对电位器的输出电压所代表的角度与我们输入的PWM的占空比所代表的角度进行比较,从而得出应该旋转的方向与角度,进而旋转到我们想要的角度
SG90舵机可以控制舵面范围从0°到180°旋转
舵机中0°到180°分别对应着500~2500us的高电平时长,我们通常使用50Hz也就是周期为20ms的PWM信号进行控制,因而500~2500us也就分别对应着2.5%~12.5%的占空比,也就对应着0°到180°的旋转角度。绝大多数的舵机控制的占空比范围都是2.5%~12.5%
输入占空比为2.5%的PWM舵机就转到0°位置,输入占空比为7.5%的PWM舵机就转到90°位置,输入占空比为12.5%的PWM舵机就转到180°位置
棕色线为地线(接GND),红色线为5V正极(接供电的GPIO口),橙色线是用来输入PWM信号的信号线(接单片机上输出PWM的GPIO口,并且通过CubeMx配置好定时器通道)
用50Hz的PWM信号控制舵机,假设当前的内部时钟是72MHz(就是那个内部时钟源的配置)。把预分频器设置为720分频(720-1),自动重装载值设置为2000(2000-1),就能将PWM信号的频率控制在50Hz