新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于AVR单片机的轮胎模具内径测量系统

基于AVR单片机的轮胎模具内径测量系统

作者:时间:2012-09-02来源:网络收藏

步进电机脉冲的产生由定时器1和定时器2实现,ATmega16控制器接收到上位机的命令后,首先获取需要转动的步数,然后根据相应命令打开相应定时器的计数功能。控制程序中用定时器1控制二路脉冲输出,定时器2控制一路脉冲输出,从而完成3路电机的控制。
定时器2使用CTC模式,匹配中断使能。通过匹配中断,在OCR2端口可以输出脉冲,通过设定寄存器OCR2寄存器的值可以改变输山脉冲频率。定时器1使用相位与频率修正模式,在不同串口命令下分别设置ICR1、OCR1A和OCR1B寄存器的值并打开不同的匹配中断,从而可以分别在OC1A和OC1B端口输出匹配脉冲。其输出频率控制和定时器2原理一样,只是还需要改变计数上限值ICR1。由于3路电机不同时运动,因此每次只有一个定时器处于打开状态,其余则需要关闭。
在程序运行中,设置了一个全局变量保存电机运行的步数。在收到上位机的命令后,控制程序首先将该步数写入片内EEPROM中再执行。由于EEPROM数据掉电不丢失,因此掉电后复位时可以从EEPROM中取出数据然后执行下一次操作。
3.2 手轮微调控制
手轮的作用主要是实现微调设备找到合适的点。电子手轮一共有两路脉冲输出,两路脉冲相位差决定了手轮的旋转方向。手轮的控制采用定时器0,使用计数模式。定时器0没置为CTC模式,上升沿触发,OCR0为1,计数初始值为0,中断使能。当外部上升沿触发时计数到1时触发中断,在中断子程序里面根据手轮状态产生相应的脉冲输出。
在手轮中断子程序中,首先将计数器自动清零等待下一个手轮脉冲。然后判断正反信号和手轮档位状态,ATmega16根据状态信息通过延时方法产生一定数量的脉冲控制步进电机。手轮状态共有Z、Y、X 3个方向,X1、X10、X100 3个档位。若手轮在X档位则在相应端口(该端口同时也是定时器脉冲输出口)输出一定数目的脉冲。改变延时的大小可以改变输出频率,但是由于延时输出脉冲的最大频率决定于晶振,因此输出脉冲受到一定影响。延迟方法产生的脉冲不能精确控制步进电机的步进角度,但是可以用于微调。
手轮的正反信号通过D触发器来判断。将手轮脉冲A作为CLK信号,脉冲B为CP信号,复位端和置位端接高电平。当手轮正转时脉冲A脉冲与脉冲B的相位差为正90度,D触发器输出高电平;若反转A脉冲与B脉冲的相位差为负90度,输出低电平。
3.3 串口模块
上位机和主要采用UART异步通信,收发按字节处理。接收上位机命令时采用UART查询方法实现数据接收。其通信格式为:起始字+控制字节+步数+结束字,数据使用国际通用标准ASCII码格式,如表1所示。

本文引用地址:http://www.eepw.com.cn/article/170955.htm

h.JPG


设计过程中使用ICC编译器编写控制程序,可以使用atoi函数将ASCII码格式步数转化为整型数据。

i.JPG


单片机对上位机通信主要是使用两个字节数据发送手轮状态信息和行程开关状态信息。单片机在接收到查询命令后,将两字节状态信息返回给上位机,每次执行步进电机命令后也需要向上位机发送状态信息,将执行结果返回给上位机。其定义如表2所示。

4 结束语
文中单片机设计了一套内径,可以接收电子手轮和上位机信息分时控制多路步进电机并能控制光栅尺读数。
设备经过安装后,选取标准钢板作为测试目标,在垂直方向选定若干个测试点,结果证明其误差在2μm以内。然后选取子午线作为测试目标,与人工测量数据进行对比,测量误差在4 μm以内,达到设计要求。

接地电阻相关文章:接地电阻测试方法


行程开关相关文章:行程开关原理

上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭