1.舵机介绍
舵机是一种位置伺服的驱动器,常被用于遥控汽车、机器人等领域,结构主要包括小型直流电机、变速齿轮组、可调电位器和控制电路板四个部分,如下图,舵机的外部一般接有三根线,分别是黑(接地线)、红(电源线)、棕(白或者黄,信号线)三种颜色进行区分。
2.舵机工作原理
2.1-基准信号
舵机的内部有一个基准电路,可以产生周期为20ms且宽度为1.5ms的基准信号,由信号发生器或者单片机发出信号,舵机内部电路则将获得的直流偏置电压与电位器的电压进行比较,获得一个电压差输出,然后经由舵机内部电路板上的IC来判断转动方向,之后驱动马达转动,通过减速齿轮组将动力输出至摆臂,同时由位置检测器送回信号,判断是否已经到达指定位置。
2.2-转动角度
舵机的转动角度是通过调节PWM(脉冲宽度调制)信号的占空比来实现的标准PWM信号的周期固定为20ms,频率50Hz,以常见的9g舵机为例,脉宽在0.5ms和2.5ms之间调节就对应着舵机转角的0°~180°,如下图:
对应关系如下:
3.PWM的实现
void Timer0_Init()//定时器0初始化
{
TMOD = 0X01; //设置定时器模式
TH0 = (65536-500)/256; //设置定时器初值
TL0 = (65536-500)%256;
ET0 = 1; //允许定时器0中断
TR0 = 1; //启动定时器0
EA = 1; //打开总中断
}
void Timer0_Int() interrupt 1//定时器0的中断服务函数
{
TR0 = 0; //关闭定时器0
TH0 = (65536-500)/256; //设置定时器初值
TL0 = (65536-500)%256;
counter++;
if(counter >= 40) //20ms到了
{
counter = 0;
}
if(counter < angle)
{
Pwm_val = 1;
}
else
{
Pwm_val = 0;
}
TR0 = 1; //启动定时器0
}
4.实物结果展示
基于51单片机的舵机控制文章来源:https://www.toymoban.com/news/detail-599513.html
5.资料分享
单片机+舵机+PWM+独立按键文章来源地址https://www.toymoban.com/news/detail-599513.html
到了这里,关于基于51单片机的舵机控制(PWM)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!