首页 > 编程知识 正文

液压舵机系统原理图,数字舵机控制原理

时间:2023-05-05 16:16:32 阅读:48477 作者:1018

在机器人机电控制系统中,舵机控制效果是性能的重要影响因素。 舵机可以在微机电系统和航模中作为基本的输出执行器,其简单的控制和输出使其与单片机系统的接口非常容易。

舵机是位置伺服驱动器,适用于角度可不断变化保持的控制系统。 其工作原理是控制信号从接收器的信道进入信号调制芯片,获得直流偏置电压。 其内部有产生周期20ms、宽1.5ms的基准信号的基准电路,将得到的直流偏置电压与电位计的电压进行比较,得到电压差输出。 最后,电压差的正负输出到电机驱动芯片,决定电机的正反方向。 电机转速一定时,通过级联减速齿轮旋转电位器,使电压差为0,停止电机旋转。

图1舵机控制要求

舵机控制信号是PWM信号,利用占空比的变化改变舵机的位置。 一般舵机控制要求如图1所示。

基于单片机的舵机转角控制

可以采用FPGA、模拟电路、单片机生成舵机控制信号,但FPGA成本高,电路复杂。 脉冲宽度调制信号的脉冲宽度转换一般采用利用调制信号得到有源滤波后的直流电压的方法,但需要50Hz (周期为20ms )的信号,对运算放大器元件的选择有很高的要求,从电路的体积和功耗的观点来看也难以采用。 5mV以上控制电压的变化会引起舵机的抖动,对于机载测控系统来说,电源和其它器件的信号噪声都远大于5mV,因此滤波电路的精度很难满足舵机控制精度的要求。

也可以使用单片机作为舵机的控制手段,使PWM信号的脉冲宽度在微秒级变化,提高舵机的转角精度。 单片机完成控制算法,进而将计算结果转换为PWM信号输出到舵机。 由于单片机系统是数字系统,其控制信号的变化完全取决于硬件的计数,因此外界干扰少,整个系统工作可靠。

单片机系统要实现舵机输出转角的控制,必须首先完成两项任务。 首先产生基本的PWM周期信号,本设计产生20ms的周期信号; 接着脉冲宽度的调整,也就是单片机模拟PWM信号的输出,并且调整占空比。

系统中只实现一个舵机的控制,采用的控制方式改变了单片机一个定时器中断的初始值,将20ms分为两次中断执行,一次短时间中断和一次长时间中断。 从而节约硬件电路,减少软件开销,控制系统工作效率和控制精度高。

具体设计过程:如欲将舵机转向左极限角度,其正脉冲为2ms,负脉冲为20ms-2ms=18ms,开始时在控制端口发送高电平,然后设置定时器2ms后产生中断通过中断程序将控制端口变更为低电平,将中断时间变更为18ms,18ms后在下一定时产生中断,通过修正重新开始控制的计时器中断的初始值的方法巧妙地形成脉冲信号,调整时间段的宽度,从而实现伺服

为了使软件通过定时中断收集其他信号,且产生PWM信号的程序不影响中断程序的执行,需要在长时间的定时中断中运行信号收集的函数。 也就是说,每次发生两次中断时,这些程序的执行周期还是20ms。 软件流程如图2所示。

生成图PWM信号的软件流程

当系统中需要控制几种舵机的精确旋转时,可以通过单片机和计数器进行脉冲计数生成PWM信号。

脉冲计数可以利用51单片机的内部计数器来实现,但由于软件系统的稳定性和程序结构的合理性,使用外部计数器比较合适,也可以提高CPU的工作效率。 实验后,从精度上考虑,对于FUTABA系列接收机,采用1MHz的外部晶振时,其控制电压幅值变化为0.6mV,且无误差积累,能够满足舵机的控制要求。 最后考虑到数字系统的离散误差,估计误差范围在0.3%以内,因此单片机和8253、8254等计数器芯片的PWM信号发生电路是可靠的。 图3是硬件连接图。

图3 PWA信号的计数和输出电路

基于8253生成PWM信号的程序主要有定义8253个寄存器的地址、控制字的写入、控制数据的写入三个内容。 软件流程如图4所示。 具体代码如下。

//重要程序和评论:

//计时器T0中断,向8253发送控制字和数据

void T0Int () interrupt 1

{

TH0=0xB1;

TL0=0xE0; //20ms时钟基准

//先写控制字,写计数值

SERVO0=0x30; //选择计数器0,写入控制字

PWM0=BUF0L; //先写低,后写高

PWM0=BUF0H;

SERVO1=0x70; //选择计数器1,写入控制字

PWM1=BUF1L;

PWM1=BUF1H;

SERVO2=0xB0; //选择计数器2,写入控制字

PWM2=BUF2L;

PWM2=BUF2H;

}

基于图8253生成PWA信号软件流程

系统的主要工作任务是控制多舵机的工作,且所用舵机工作周期均为20ms时,硬件产生的多路PWM波周期也要求相同。 采用51单片机内部定时器产生脉冲计数,正常工作的正脉宽不大于周期的1/8。 由此,在一个周期内以时分方式启动各路径的PWM波的上升沿,使用计时器中断T0来决定各路径的PWM波的输出宽度,计时器中断T1控制20ms的基极

准时间。
第1次定时器中断T0按20ms的 1/8设置初值,并设置输出I/O口,第1次T0定时中断响应后,将当前输出I/O口对应的引脚输出置高电平,设置该路输出正脉冲宽度,并启动第2次定时器中断,输出I/O口指向下一个输出口。第2次定时器定时时间结束后,将当前输出引脚置低电平,设置此中断周期为20ms的1/8减去正脉冲的时间,此路PWM信号在该周期中输出完毕,往复输出。在每次循环的第16次(2×8=16)中断实行关定时中断T0的操作,最后就可以实现8路舵机控制信号的输出。
也可以采用外部计数器进行多路舵机的控制,但是因为常见的8253、8254芯片都只有3个计数器,所以当系统需要产生多路PWM信号时,使用上述方法可以减少电路,降低成本,也可以达到较高的精度。调试时注意到由于程序中脉冲宽度的调整是靠调整定时器的初值,中断程序也被分成了8个状态周期,并且需要严格的周期循环,而且运行其他中断程序代码的时间需要严格把握。
在实际应用中,采用51单片机简单方便地实现了舵机控制需要的PWM信号。对机器人舵机控制的测试表明,舵机控制系统工作稳定,PWM占空比 (0.5~2.5ms 的正脉冲宽度)和舵机的转角(-90°~90°)线性度较好。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。