当前位置:首页 > 单片机 > 单片机
[导读]为了实现对重物提升的精确控制,设计中选择了以Atmegal6单片机为核心的控制系统。根据控制要求,提出了实施以单片机主、从结构的控制方式。重点介绍了用光电编码器作为传感器、对传感器输出的脉冲信号进行整形、鉴相后送入单片机计数的硬件电路和单片机对计数脉冲、设定位移量进行计算处理的软件程序,根据计算结果完成相应的智能化控制。

随着微电子技术的发展,电气控制方式变得更加灵活多样,控制精度越来越高。智能化控制中越来越多地采用了以单片机为核心的控制单元实现设备的智能化控制。介绍以Atmega16单片机为控制核心,实现重物提升位移量的精确控制。
1 重物提升控制系统原理
    重物提升控制系统的设计目的是使用智能化的控制技术,将重物提升到预定高度。如图1所示是系统控制结构图,从控制结构图可以看出,控制系统研究对象是重物的提升和降落。主要的控制对象是卷扬机,通过卷扬机的正、反转运动实现控制目标。

    图中传感器选用光电编码器,光电编码器的转轴上安装一个轮,将其固定在导向轮上,这样光电编码器和导向轮同轴旋转,实现光电编码器转过的角度与导向轮转过的角度相等,重物提升的距离就是导向轮周长和转过总角度的乘积。设导向轮的直径为d,与其同轴连接的光电编码器每圈输出脉冲数设为k,那么脉冲当量为:

2 单片机主从结构的控制方式
    工程设计研究对象是控制卷扬机的转动,提升重物到预定高度,需要在运行前计算出运行的总脉冲数;设计要求显示屏能实时显示重物的高度,需要在运行中对采集的数据实时处理,计算出移动的距离;还要求对重物高度和导向轮周长进行设定,设定参数要能够存储和读出,这就需要带有存储功能的智能化器件。Atmega16单片机能够完成数据处理,内含EEPROM存储区,在掉电的情况下也能够保存数据,内含2个外输入计数器,能够实现计数任务,可以简化硬件电路。综合考虑,本设计选择Atmega16单片机作为核心器件实现任务要求。为了简化结构,突出模块设计,采用双芯片结构,以主、从机模式的设计方法实现控制要求。主机单元负责传感器信号的处理、人机界面参数设定、实时数据处理等工作。从机单元负责接收主机所发信号,响应主机决定是否输出实时的控制指令。
3 光电编码器测量位移
    光电编码器是一种通过光电转换将输出轴上的机械几何位移量转换成脉冲或数字量的传感器,这是目前高精度控制系统最常用的位移量测量传感器。光电编码器由光栅盘和光电检测装置组成,光栅盘是在一定直径的圆板上等分地开通若干个长方形孔。原理示意如图2所示。通过计算光电编码器输出脉冲的个数就能知道当前拖动的位移量,还可以通过计算每秒光电编码器输出脉冲的个数实现速度测量。
    用光电编码器测量位移时,不仅要知道位移的大小,还要知道位移的正负方向,判别方向是成功测量关键。现在市场上见到的光电编码器是4线接口或5线接口。4线接口的光电编码器能输出A、B两路脉冲,5线接口的能输出A、B、Z三路脉冲。光电编码器输出的A、B两路脉冲在相位上差90°,正转时A路超前B路90°,反转时B路超前A路90°。测量中依据A、B之间的相位差,就能够判别位移的方向符号,通过带符号的加运算,可以知道输出脉冲个数,计算出位移量。
4 传感器信号的提取电路设计
    如图3所示是传感器信号提取电路。光电编码器输出的信号通过74LS244进行整形后,输出理想的A、B相波形,U3(74LS74)是D触发器,把传感器输出整形方波信号的A相输入D1,B相作为D触发器的时钟信号CK,U3与U9(7400)共同组成鉴相电路,判断光电编码盘是正转还是反转。

    当光电编码器正向旋转时,通道A输出波形超前通道B输出波形90°,D触发器输出Q为高电平,Q为低电平,上面U9A与非门关闭保持高电平,计数脉冲不能通过U11;此时,下面U9B与非门打开,其输出计数脉冲D能够顺利通过U12进行传输,如图4(a)所示。
    当光电编码器逆时针旋转时,通道A输出波形比通道B输出波形滞后90°,D触发器Q输出为低电平,Q为高电平,上面U9A与非门打开,其输出计数脉冲C能够通过U11进行传输;此时,下面U9B与非门关闭保持高电平,计数脉冲不能通过,如图4(b)所示。

5 重物提升位移量的计算
    Atmega16微处理器内包含3个独立的定时器/计数器模块,其中T/C0、T/C2是8位定时器/计数器模块,T/C1是16位的定时器/计数器模块。硬件设计中选择T0、T1作为正反转计数器,记录光电编码器输出的正、负脉冲数。在软件设计中一定要将T0、T1计数器进行扩展,使其有足够的计数空间,扩展位移测量范围。笔者在设计软件时,将T0、T1进行扩展,使它们都是长整数(32位)形式,利用的就是计数器满产生溢出中断的形式扩展的。这样T0计数256个脉冲产生中断一次, T1计数65 536个脉冲产生中断一次。
    T0、T1控制寄存器设置及产生溢出中断程序为:
    …
    TCCR0=0x06; //计数脉冲由T0引脚输入,下降沿有效。
    TCCR1B=0x06; //计数脉冲由T1引脚输入,下降沿驱动
        有效。
    … 
  #pragma interrupt_handler timer1_ovf_isr:9//正计数 16bits
    void timer1_ovf_isr(void){
       cnt1++;                              //32位计数
  }
  #pragma interrupt_handler timer0_ovf_isr:10 //负计数8bits
  void timer0_ovf_isr(void){
       long c;
       cnt0++;                              //32位计数
       c=(cnt0>>8);                       //防止cnt0,cnt1溢出
       if(c && (cnt1>=c))
       {cnt1-=c;                                    //计算计数差值
          cnt0=cnt0&0xff;                          //只保留低8位
    }  }
    设计中,选择型号为S38-J3V100光电编码器,输出编码是500码/转,则脉冲当量是πd/500,当前的位移量就是总脉冲数与脉冲当量的乘积。软件计算程序如下:
     …
  posicnt=(cnt1<<16)|TCNT1;                        //正脉冲数
  negcnt=(cnt0<<8)|TCNT0;                          //负脉冲数
  totalcnt =posicnt-negcnt;     //产生位移量大的总脉冲数
  curPosi=(totalcnt*(meterCyl*1000+ CentCyl));
  curPosi/=PLS_PER_ROUND;                  //当前的位移量
    …
     执行运行命令,微处理器就要对设定的位移量进行计算,把位移量大小转换成脉冲数的多少。在运行中进行脉冲数的比较,如果相等,则停止运行,表示已经达到目标位置。软件计算程序如下:
    sysStatus = SYS_RUN;
PosiSet=meterPosi*1000+CentPosi;    //毫米计算
cntSet=(PosiSet*PLS_PER_ROUND)/(CentCyl+
    meter Cyl*1000);
    if(cntSet>totalcnt) Command=CMD_FWD;
                                         //执行正转命令
else if(cntSet<totalcnt) Command=CMD_REV;
                               //执行反转命令
else sysStatus=SYS_IDLE;              //停止状态
    本方案设计的重物提升控制系统在实际运行过程中获得了良好的动态性能,控制精确,智能化程度高。利用光电编码器作为位移传感器,能获取高精度控制信号。高性价比的Atmega16单片机使成本大大降低,提高了软件设计的灵活性,简化了硬件电路设计,具有很好的实用价值。
参考文献
[1] 李劲松.实轴增量式光电编码器测量电路的设计[J].实验室研究与探索 2007.26(2): 12~14.
[2] Atmel Corporation.ATMEG16 用户手册[Z].Atmel Corporation,2002.
[3] Atmega16/Atmega16L Datasheet: 8 b Microcont roller with 128K bytes in 2 System Programmable Flash[Z].
[4] 阎石.数字电子技术基础[M].北京:高等教育出版社, 1997.
[5] 沈文,詹卫前. AVR单片机C语言开发入门指导[M]. 北京:清华大学出版社,2003.
[6] 马潮,詹卫前,耿德根著.ATmega 8原理及应用手册[M]. 清华大学出版社,1998.

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭