APP下载

一种单片机精确控制舵机偏转角度的设计

2020-11-09梁婷

写真地理 2020年33期
关键词:单片机

梁婷

摘 要: 本文阐述了STC15F系列单片机产生双路可调占空比的PWM信号同时控制两只舵机的设计原理,同时详解了水平方位及垂直仰角方向舵机调节的程序设计,文中给出了PWM信号控制舵机角度精度的推算及编程实现,合理巧妙的利用单片机有限的资源,对于舵机角度控制的应用场景有较大的参考价值。

关键词: 单片机;PWM信号控制舵机;偏转角度设计

【中图分类号】TM33     【文献标识码】A     【DOI】10.12215/j.issn.1674-3733.2020.33.145

1 舵机PWM信号与控制精度制定

1.1 PWM 信号的定义

PWM 信号为脉宽调制信号,其特点在于他的上升沿与下降沿之间的时间宽度,具体的时间宽窄协议参考图1,给出了舵机一种标准协议规定的PWM控制舵机的信号波形图。

1.2 PWM信号控制舵机转到指定角度

舵机的角度是由控制信号脉冲的持续时间决定的,这叫做脉冲编码调制(PCM)。舵机的控制一般需要一个20ms左右的时基脉冲,该脉冲的高电平部分一般为0.5ms-2.5ms范围,总间隔为2ms。脉冲的宽度将决定马达转动的距离。例如:1.5毫秒的脉冲,电机将转向90度的位置(通常称为中立位置,对于180°舵机来说,就是90°位置)。如果脉冲宽度小于1.5毫秒,那么电机轴向朝向0度方向。如果脉冲宽度大于1.5毫秒,轴向就朝向180度方向。以180度舵机为例,对应的控制关系是这样的:0.5ms对应0度、1.0ms对应45度、1.5ms对应90度、2.0ms对应135度、2.5ms对应180度;

1.3 PWM信号控制精度制定

假设用12MHZ的晶体振荡器作为时钟,单片机定时计时器的最小时间单元为 1uS。那么 0.5mS-2.5ms的宽度为 2mS = 2000uS。舵机可以转动 180 度,那么理论控制精度为180度÷2000=0.09 度。

8位单片机其数据分辨率为256,那么经过舵机极限参数实验,得到应该将其划分为 250 份。那么 0.5mS---2.5ms的寬度为 2mS = 2000uS。2000uS÷250=8uS,则PWM的控制精度为8us。我们可以以 8uS 为单位递增控制舵机转动与定位。舵机可以转动 180度,那么180 度÷250=0.72 度,则舵机的控制精度为 0.72度.

编程实践时,一个完整的PWM信号的周期20mS,设定20mS的调节占空比从0%至100%的调节值为从0至500。那么从0.5mS至2.5ms的调节值为从12.5至62.5,取程序计算数据的类型为整数类型,则180度÷50=3.6度。舵机的控制精度为 3.6度.

2 单片机两个定时计数器单元输出双路PWM信号的的程序设计

本文采用的是8位STC15F2K60S2测试设计程序。设定周期为20mS的PWM的信号调节占空比从0%至100%的调节值为从0至500的设计程序参考,其中选用11.0592MHZ的晶体振荡器作为时钟,与12MHZ的晶体振荡器作为时钟相比的有少许差异,但对控制精度的影响不大。增强型的8位单片机stc15F系列的单片机内部自带PWM信号发生器的有一些不可预知的跳变现象,会引起舵机的突然大幅度转动,在这里我们设定定时计数器T0和T1,在中断中断服务子函数实现单片机I/0口引脚持续稳定的PWM信号输出。图2给出定时计数器T1控制的第二路PWM程序参考。

两路独立的子函数程序 ConfigPWM1,ConfigPWM2,分设置定时计数器T0和T1,中断服务子函数实现单片机I/0口引脚持续稳定的双路PWM信号输出,相互独立,互不干扰。控制两路舵机,较好的完成控制水平方位及垂直仰角方向的调节,控制效果较为理想。

参考文献

[1] 一种无人机用一体式电动舵机的研究[J].李怀兵,徐豪榜,晋华峰,陆豪,聂振金.微电机.2017(04).

[2] 电机控制中的16位PWM在C8051单片机中的实现[J].何曦光,阮祥发,赵燕.中国水运(学术版).2006(05).

猜你喜欢

单片机
基于单片机的SPWM控制逆变器的设计与实现
基于单片机的层次渐变暖灯的研究
基于单片机的多功能智能插排
基于单片机的便捷式LCF测量仪
小议PLC与单片机之间的串行通信及应用
MSP430单片机在仿真中要注意的几点问题
基于单片机的平衡控制系统设计
基于单片机的三维LED点阵设计
Microchip推出两个全新PIC单片机系列
基于Proteus的单片机控制系统的仿真设计