datasheet

AT89C2051多路舵机控制电路详解

2016-10-09来源: eechina关键字:AT89C2051  多路舵机  控制电路
  舵机是一种位置伺服的驱动器。它接收一定的控制信号,输出一定的角度,适用于那些需要角度不断变化并可以保持的控制系统。在微机电系统和航模中,它是一个基本的输出执行机构。以FUTABA-S3003型舵机为例,图1是FUFABA-S3003型舵机的内部电路
  舵机的工作原理是:PWM信号由接收通道进入信号解调电路BA66881。的12脚进行解调,获得一个直流偏置电压。该直流偏置电压与电位器的电压比较,获得电压差由BA6688的3脚输出。该输出送人电机驱动集成电路BA6686,以驱动电机正反转。当电机转速一定时,通过级联减速齿轮带动电位器R。,旋转,直到电压差为O,电机停止转动。舵机的控制信号是PWM信号,利用占空比的变化改变舵机的位置。
  


  舵机的控制方法
  电源线和地线用于提供舵机内部的直流电机和控制线路所需的能源.电压通常介于4~6V,一般取5V。注意,给舵机供电电源应能提供足够的功率。控制线的输入是一个宽度可调的周期性方波脉冲信号,方波脉冲信号的周期为20 ms(即频率为50 Hz)。当方波的脉冲宽度改变时,舵机转轴的角度发生改变,角度变化与脉冲宽度的变化成正比。某型舵机的输出轴转角与输入信号的脉冲宽度之间的关系可用围 3来表示。
  


  舵机控制器硬件电路设计
  从上述舵机转角的控制方法可看出,舵机的控制信号实质是一个可嗣宽度的方波信号(PWM)。该方波信号可由FPGA模拟电路单片机来产生。采用FPGA成本较高,用模拟电路来实现则电路较复杂,不适合作多路输出。一般采用单片机作舵机的控制器。目前采用单片机做舵机控制器的方案比较多,可以利用单片机的定时器中断实现PWM。该方案将20ms的周期信号分为两次定时中断来完成:一次定时实现高电平定时Th;一次定时实现低电平定时T1。Th、T1的时间值随脉冲宽度的变换而变化,但,Th+T1=20ms。该方法的优点是,PWM信号完全由单片机内部定时器的中断来实现,不需要添加外围硬件。缺点是一个周期中的PWM信号要分两次中断来完成,两次中断的定时值计算较麻烦;为了满足20ms的周期,单片机晶振的频率要降低;不能实现多路输出。也可以采用单片机+8253计数器的实现方案。该方案由单片机产生计数脉冲(或外部电路产生计数脉冲)提供给8253进行计数,由单片机给出8253的计数比较值来改变输出脉宽。该方案的优点是可以实现多路输出,软件设计较简单;缺点是要添加l片8253计数器,增加了硬件成本。本文在综合上述两个单片机舵机控制方案基础上,提出了一个新的设计方案,如图4所示。
  


  该方案的舵机控制器以AT89C2051($0.5940)单片机为核心,555构成的振荡器作为定时基准,单片机通过对555振荡器产生的脉冲信号进行计数来产生PWM信号。该控制器中单片机可以产生8个通道的PWM信号,分别由AT89C2051的P1.0~Pl.7(12~19引脚)端口输出。输出的8 路PWM信号通过光耦隔离传送到下一级电路中。因为信号通过光耦传送过程中进行了反相,因此从光耦出来的信号必须再经过反相器进行反相。方波信号经过光耦传输后,前沿和后沿会发生畸变,因此反相器采用CD40106($0.1125)施密特反相器对光耦传输过来的信号进行整形,产生标准的PWM方波信号。笔者在实验过程中发现,舵机在运行过程中要从电源吸纳较大的电流,若舵机与单片机控制器共用一个电源,则舵机会对单片机产生较大的干扰。因此,舵机与单片机控制器采用两个电源供电,两者不共地,通过光耦来隔离,并且给舵机供电的电源最好采用输出功率较大的开关电源。该舵机控制器占用单片机的个SCI串口。串口用于接收上位机传送过来的控制命令,以调节每一个通道输出信号的脉冲宽度。MAX232($2.0686)为电平转换器,将上位机的RS232($780.5000)电平转换成TTL电平。
  实现多路PWM信号的原理
  


  在模拟电路中,PWM脉冲信号可以通过直流电平与锯齿波信号比较来得到。在单片机中,锯齿波可以通过对整型变量加1操作来实现,如图5所示。假定单片机程序中设置一整型变量SawVal,其值变化范围为O~N。555振荡电路产生的外部计数时钟信号输入到AT89C2051的INTO脚。每当在外部计数时钟脉冲的下降沿,单片机产生外部中断,执行外部中断INT0的中断服务程序。每产生一次外部中断,对SawVal执行一次加1操作,若SawVal已达到最大值N,则对SawVal清O。SawVal值的变化规律相当于锯齿波,如图5所示。若在单片机程序中设置另一整型变量DutyVal,其值的变化范围为 O~N。每当在SawVal清0时,DulyVal从上位机发送的控制命令中读入脉冲宽度系数值,例如为H(0≤H≤N)。若 DutyVal≥SawVal,则对应端口输出高电平;若DutyVal《Sawval,则对应端口输出低电平。从图5中可看出,若改变 DutyVal的值,则对应端口输出脉冲的宽度发生变化,但输出脉冲的频率不变,此即为PWM波形。

关键字:AT89C2051  多路舵机  控制电路

编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/article_2016100930264.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:基于USB接口的高增益数据采集系统的设计
下一篇:一种基于AT89S52和CAN总线的家居安防系统设计

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

IIC读写AT24C02代码1——通过串口命令控制R/W

IIC读写AT24C02代码1——通过串口命令控制R/W,并显示到串口!主函数/*-----------------------------------------------  IIC编程 1  编写:Louis   邮箱:kaly.liu@163.com  日期:2015.05.25  修改:通过串口命令,控制EEPROM的读写。并从串口提示。  晶振:11.0592MHZ------------------------------------------------*/#include <REG52.H> #include<
发表于 2019-05-21

IIC读写AT24C02代码2——串口命令控制多页读写

通过串口输入 R 、W 进行控制程序读写IIC设备。波特率9600bps,晶振115200HZ。main.c/*-----------------------------------------------  IIC编程 1  编写:Louis   邮箱:kaly.liu@163.com  日期:2015.06.01  修改:通过串口命令R/W,控制EEPROM的读R写W。并从串口提示。  改进:增加对页读写功能  晶振:11.0592MHZNOTE:*通过实测发现,AT24C02可以连续写入16BYTE字节,而且地址要连续的两个页。就是0~15,16
发表于 2019-05-21

IIC之AT24C256的读写程序

一个通用的24C01-24C256共9种EEPROM的字节读写操作程序,此程序有五个入口条件,分别为读写数据缓冲区指针,进行读写的字节数,EEPROM首址,EEPROM控制字节,以及EEPROM类型。此程序结构性良好,具有极好的容错性,程序机器码也不多:DataBuff为读写数据输入/输出缓冲区的首址Length 为要读写数据的字节数量Addr 为EEPROM的片内地址 AT24256为0~32767Control 为EEPROM的控制字节,具体形式为(1)(0)(1)(0)(A2)(A1)(A0)(R/W),其中R/W=1,表示读操作,R/W=0为写操作,A2,A1,A0为EEPROM的页选或片选地址;enumer为枚举变量,需
发表于 2019-05-21
IIC之AT24C256的读写程序

51单片机读写EEPROM(AT24C02)

  AT24C02的存储容量为2K bit,内容分成32页,每页8Byte,共256Byte,操作时有两种寻址方式:芯片寻址和片内子地址寻址。 (1)芯片寻址:AT24C02的芯片地址为1010,其地址控制字格式为1010A2A1A0R/W。其中A2,A1,A0可编程地址选择位。A2,A1,A0引脚接高、低电平后得到确定的三位编码,与1010形成7位编码,即为该器件的地址码。R/W为芯片读写控制位,该位为0,表示芯片进行写操作。 (2)片内子地址寻址:芯片寻址可对内部256B中的任一个进行读/写操作,其寻址范围为00~FF,共256个寻址单位。函数声明:IIC开始函数:void
发表于 2019-05-13
51单片机读写EEPROM(AT24C02)

IIC读写AT24Cxx (S3C2440)

IIC(Inter-Integrated Circuit,I2C)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微处理器及其外围设备,它的最主要优点是简单和有效。它只需要数据线SDA和时钟线SCL,就能够实现CPU与被控IC之间、IC与IC之间进行双向传送。s3c2440内部有一个IIC总线接口,因此为我们连接带有IIC通信模块的外围设备提供了便利。它具有四种操作模式:主设备发送模式、主设备接收模式、从设备发送模式和从设备接收模式。在这里我们只把s3c2440当做IIC总线的主设备来使用,因此只介绍前两种操作模式。在主设备发送模式下,它的工作流程为:首先配置IIC模式,然后把从设备地址写入接收发送数据移位寄存器
发表于 2019-05-10
IIC读写AT24Cxx (S3C2440)

stm32与AT24C02的I2C通信总结(模拟时序)

iic_start(void);//起始信号void iic_end(void);//终止信号void iic_senddata(u8 data);//主器件发送一个字节数据void iic_master_ack(void);//主机应答信号void iic_master_nack(void);//主机非应答信号void iic_wait_ack(void);//等待从机应答信号void iic_master_write(u8 type,u8 address,u8 data);u8 iic_master_read(u8 address);u8 iic_readdata(void); iic.c文件如下
发表于 2019-04-23
stm32与AT24C02的I2C通信总结(模拟时序)

小广播

何立民专栏

单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2019 EEWORLD.com.cn, Inc. All rights reserved