|
STM32驱动舵机实现功能:按下编码器按钮,角度增加45°,正转编码器,角度加一,反转编码器,角度减一。
舵机介绍:如图,这种蓝色舵机有三根引线,红色为+5v 棕色为GND 橙色为信号线
舵机
这种舵机为模拟舵机,采用pwm信号驱动,根据不同的占空比,舵机可以输出不同的角度,具体的对应关系如下图所示:
舵机驱动信号
主函数:
#include "stm32f10x.h" // Device header
#include "OLED.h"
#include "EncoderAndServo.h"
#include "Delay.h"
int main()
{
int32_t i ;
uint16_t Angle,KeyNum=0;
OLED_Init();
EncoderAndServo_Init();
OLED_DisplayString(1,1,"Angle:");
while(1)
{
i+=Return_Num();//获取编码器返回值
if(Return_KeyNum())//判断编码器按键是否按下
{
i+=50;
}
if(i>250)i=50;
if(i<50)i=50;
Angle=i;
TIM3_SetCompare((uint16_t)i);//将i传递给捕获比较寄存器
OLED_DisplayNum(1,7,(uint16_t)((((float)Angle-50.0)/200.0)*180.0),3);//角度显示
}
}
代码部分:
- <blockquote>#include "stm32f10x.h" // Device header
复制代码
|
|