目录
一、目标
实现stm32驱动舵机旋转0°,45°,90°,135°,180°等角度。
二、准备
stm32f103(c8t6),舵机(SG90 9g),杜邦线
接线:舵机红线-----------5V(mcu)
舵机棕线-----------GND(mcu)
舵机黄线-----------PA1(视情况而定)
三、原理
通过修改单片机输出的pwm信号的占空比来调节舵机旋转角度。 舵机频率50Hz。周期20ms:将0.5ms,1ms,1.5ms,2ms,2.5ms映射到0°,45°,90°,135°,180°.(即占空比为0.5ms/20ms*200时舵机旋转0°,占空比为1ms/20ms*200时舵机旋转45°...)(200是cube所设计数个数(count period))
四、cubemx
开启定时器pwm通道(TIM2-CH2)周期20ms,psc=7200-1,count peiod=200-1。
五、程序
法①:TIM2->CCR2=25; //直接修改寄存器CCR的值(TIM2->CCR2:定时器2的CCR寄存器的通道2)(25即180°)
法②:uint8_t i=0;
__HAL_TIM_SET_COMPARE(&htim2,TIM_CHANNEL_2,i+=5);
HAL_Delay(1000);
if(i>=30)
{
i=0;
}