基于AVR单片机的轮胎内径测量系统设计

发布者:WhisperingHeart最新更新时间:2020-01-20 来源: elecfans关键字:AVR  单片机  轮胎内径测量系统 手机看文章 扫描二维码
随时随地手机看文章

轮胎模具用于成型轮胎,其加工质量对轮胎的生产非常重要。为了生产出好的轮胎,必须对轮胎模具加工质量提出高的要求。传统的加工质量检测法主要是靠百分表,人为采集数据后分析得出加工质量报告。这种办法的局限性是需要操作者有一定的工作经验,而且取样过程人为控制,精度受到一定影响。近几年来,轮胎模具工业随着轮胎的大量需求而得到了快速发展,传统的检测方法不能满足市场需求。光栅尺是一种数字位移测量设备,测量范围可达几十米,测量精确在微米级;激光测距仪是一种非接触测量设备,可以对不规则表面的目标位移进行测量,但是测量距离较小。将大范同的光栅尺和非接触测量的激光测距仪结合起来就可以实现对不规则面的目标距离进行测量。将光栅尺读头与激光测距仪固定在机械横梁上,运用步进电机控制横梁的运动,分别对模具不同层面的内径进行测量。


系统采用AVR单片机实现控制步进电机和光栅尺数据读取,通过接收上位机的控制命令,AVR单片机控制步进电机运动,数显表数据和激光控制器位移数据自动经串口发送给上位机,从而完成对模具内径的自动测量。


1 系统组成

基于AVR的轮胎内径测量系统主要由AVR单片机、上位机、光栅尺、数显表、激光测距仪、驱动器、步进电机、电子手轮行程开关等组成。其功能框图如图1所示。

基于AVR单片机的轮胎内径测量系统设计

单片机选用的是爱特梅尔公司的ATmega16;上位机采用研华公司生产的ARK3360L工控机,它拥有多个RS232接口;激光测距仪采用的是日本基恩士公司的LK-G85激光测距传感器和LK-G3001V激光测距控制器,其分辨率为0.1μm,测量范围-15~+15 mm,测量距离为80 mm;光栅尺采用广州诺信数字测控设备有限公司的KA300型系列光栅位移测量设备,读数由其公司的SDS6型数显表实现。最终的内径计算由上位机接收到激光测距仪数据和光栅尺数据后完成。


2 系统功能分析

2.1 模具内径测量方法

轮胎模具置于静止的工作平台之上,旋转测量平台处于工作平台的中心位置,在旋转测量平台上的横梁和立柱可以沿径向和垂直两个方向移动,激光感测头置于测量横粱上。根据轮胎模具的内径不同,沿径向移动测量横梁,将激光感测头移动至测量范围内,即可测得激光感测头至轮胎模具内圆的距离,再通过利用光栅尺测量横梁径向移动的距离,换算出轮胎模具的内径。通过控制电机旋转测量平台,就可以按照节距逐一测量轮胎模具内径,从而得到轮胎模具的圆度。将测量横梁沿立柱垂直移动,就可以测量轮胎模具不同垂向高度的内径,从而得到模具的圆锥度。


测量系统一共有3个步进电机控制测量设备沿3方向运动;两把光栅尺读取水平和垂直位移数据,还有激光测距仪实现非接触位移测量,其测量结构如图2所示。

基于AVR单片机的轮胎内径测量系统设计

2.2 测量原理和功能实现

轮胎模具花纹块剖面如图3所示:花纹块最上边的是模具胎口,其加工的误差一般较小,选取作为基准。设胎口离花纹块中心线X1的距离为RT,把这个内圈设定为基准圈。轮胎模具内径测量是基于模具胎口半径RT已知的前提下,由程序控制整个测量过程。

基于AVR单片机的轮胎内径测量系统设计

在保证待测模具的平面度和同心度状态下,调整转动电机和垂直位移电机,使得激光感测头位于被测点上方的已知胎口直径位置。调整水平位移电机,使得激光感测头与胎口被测点的水平距离为80±0.5 mm,激光传感器在这个距离下测量精度最高。


根据胎口半径RT和胎口被测点的激光测距值、水平光栅尺读数,可以得到如下等式:

其中,XL是激光测距值,XR是水平光栅尺读数,这两个值可以多次测量取平均,XS是系统装配和放置待测模具时的固有值,即如图设备中心X0离花纹圈中心X1的距离,相对于垂直方向的每个被测点而言,XS在整个测量过程中是不变的,因此可以得到下式:

当测量臂垂直移动至待测模具被测点的垂直位置后,平移激光感测头至距离被测点80±0.5 mm处,然后读取被测点的激光测距值XL’和水平光栅尺读数XR’,则被测点的半径满足:

基于AVR单片机的轮胎内径测量系统设计

只要按照上述方法逐点测量和计算出各个被测点的直径,就可以完成圆度测量了。


在整个测量过程中,由于要避开模具的花纹,因而对测量点有一定的要求。使用ATmega16精确控制步进电机运行可以找到待测点,并在此基础上加入手轮控制器微调步进电机找到合适位置后再采集数据,这样就可以对人为设定的测量点进行测量。


2.3 设备的行程控制

在测量设备水平和垂直移动极限位置处放置行程开关来保证运行安全,为了降低成本,通过测量转盘的所有信号没有采用电滑环而使用电缆直接连接。因此设备在旋转时不能总是沿一个方向旋转,否则会扭断电缆。本设计中旋转角度不超过360°,为了区分旋转的0°和36 0°,在测量转盘指定的位置处分别放置两个并排的行程开关。通过判断这两个行程开关动作的先后次序来确定旋转的位置,然后决定可旋转的方向。


3单片机设计

主要思路:上位机对电机进行测量步骤的控制,通过发送命令使步进电机沿设计思路正确测量数据。而在某些测量点上,需要人工干预时通过转动手轮即可微调电机。而行程开关可以限制机械转动的位置,也可以用于复位设置。


3.1 步进电机的驱动

步进电机的运行要有步进电机驱动器,把控制系统发出的脉冲信号转化为步进电机的角位移。步进电机的转速与脉冲信号频率成正比,步进角度与脉冲数目成正比。步进电机启动时,必须有升速、降速过程,升降速的设计至关重要。如果设计不合适,将引起步进电机的堵转、失步、升降速过程慢等问题。为了实现升降速,用阶梯型频率变化来模拟频率线性变化过程。如图4所示。

基于AVR单片机的轮胎内径测量系统设计

步进电机脉冲的产生由定时器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所示。

基于AVR单片机的轮胎内径测量系统设计

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

关键字:AVR  单片机  轮胎内径测量系统 引用地址:基于AVR单片机的轮胎内径测量系统设计

上一篇:ATmega16单片机的特点和内部结构解析
下一篇:基于AVR单片机和无线传感网络为基础的3D环境监测系统设计

推荐阅读最新更新时间:2024-11-11 11:44

C51单片机与C52单片机内部的资源区别
C52单片机可以理解为是C51单片机的增强版 • 两个方面有差异,存储空间和定时器计数器方面有区别 ○ C52单片机的内部ROM为8KB;C51单片机的内部ROM为4KB ○ C52单片机的内部RAM为256B;C51单片机的内部ROM为128B • C52单片机相比C51单片机多了一个定时计数器T2
[单片机]
嵌入式学习笔记17——AVR单片机之头文件简介和使用
1. ICCAVR的头文件形式为: #include io*v.h 芯片使用的不是mega类;或#include iom*v.h 使用的芯片为mega类。其中 * 用相应的芯片型号代替,如芯片ATmega8,则头文件为#include iom8v.h 2. 在AVR单片机的使用中有一个重要的头文件,macros.h,该头文件定义了一些常用的宏,如BIT(X),以及看门狗复位,开/关全局中断等等。 3. AVR单片机的位操作:AVR中没有像51单片机中sbit的用法,但是同样可对单个I/O口进行操作,其具体方法如下: DDRB | =(1 3); DDRB | =BIT(3); DDRB | =BIT(DDR
[单片机]
如何在mcu上使用printf使串口输出
#ifdef __GNUC__ //另外GNU还有一些公用的扩展出来的宏 比如__GNUC__ /* With GCC/RAISONANCE, small printf (option LD Linker- Libraries- Small printf set to 'Yes') calls __io_putchar() */ #define PUTCHAR_PROTOTYPE int __io_putchar(int ch) #else #define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f) #endif /* __GNUC__ */ /** *
[单片机]
单片机的编程器和烧录器有什么区别
单片机编程器(Single-chipprogrammerproducts),是一款低成本开发编程器。它能够对Microchip的大多数闪存单片机编程。单片机编程器旨在用于开发编程,对于生产编程,还是选用其他为生产环境设计的第三方编程器。 1.使用串口通讯,芯片自动判别,编程过程中的擦除、烧写、校验各种操作完全由编程器上的监控芯片89C51控制,不受PC配置及其主频的影响。 2.采用高速波特率进行数据传送,经测试,烧写一片4KROM的AT89C51仅需要9.5S,而读取和校验仅需要3.5S。 3.体积小巧,省去笨重的外接,所有器件全部以第一脚对齐,无附加跳线,对于DIP封装芯片无需任何适配器。 PIC下载编程器/仿真器PIC
[单片机]
<font color='red'>单片机</font>的编程器和烧录器有什么区别
单片机用switch语句控制一个点阵滚动显示文字
PROTEUS仿真电路图: 电路图原理: 用74LS138译码器控制点阵的阴极端口,P2口控制阳极端口,也即是字形代码输入端。 仿真效果图: C语言程序代码: #include REGX51.H #include at89x51.h sbit a=P1^0; sbit b=P1^1; sbit c=P1^2; unsigned char code hua = { 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x3E,0x8,0x8,0x8,0x8,0x3E,0x0, 0x0,0x66,0x99,0x81,0x42,0x24,0x18,0x0, 0x0,0x24,0
[单片机]
<font color='red'>单片机</font>用switch语句控制一个点阵滚动显示文字
单片机设计:软件UART的设计思想
  目前扩展串口的方法主要有以下方法, ①、采用串口扩展芯片实现,如ST16C550、ST16C554、SP2538、MAX3110等,虽然成本较高, 但系统的可靠性得到了保证,适用于数据量较大、串口需求较多的系统;②、采用分时切换的方法将一个串口扩展与多个串口设备通信,分时复用的方法成本低, 但只适用于数据量不大的场合, 并且只能由这个单片机主动和多个设备通信,实时性差;③、用软件模拟的方法扩展串口,其优势也是成本低、实时性好, 但要占用一些CPU时间。   一般的软件模拟扩展串口方法,使用1个I/O端口、1个INT外部中断和定时器,该方法扩展的串口有2个缺点,①、由于使用了INT外部中断,故只能使用2个INT外部中断扩展2个串
[单片机]
进入临界有什么用?STM32单片机怎么实现?
有一次我在给内部学员直播的时候,有几个小伙伴问我,为什么要进入临界,临界有什么用? 当时一时半会没想到好的解释,今天举几个例子来解答下。 如果有大佬觉得我说得不对请私聊我纠正,不要偷偷在评论区喷我,我改还不行吗。 进入临界和退出临界,我第一次接触是在ucos系统,当时我也感觉这个专业术语很牛逼很复杂的样子。 等我讲完人话,你会发现其实也挺low。 进入临界就是关闭单片机总中断, 退出临界 就是恢复单片机中断 , 记住最好是恢复,不是打开 ,因为进入临界之前单片机总中断未必是开着的。 那为什么要进入临界?有什么作用? 我们假设一种场景: 我们来看这样一段代码。 假设我们程序执行到第12行,也就是a = 0的位置,*p的值肯定
[单片机]
【GD32 MCU 移植教程】7、从 GD32F10x 移植到 GD32E103
1. 前言 本应用笔记旨在帮助您快速将基于 GD32F10x 2.0 版本及以上固件库开发的应用程序从GD32F10x 系列微控制器移植到 GD32E103 系列微控制器。GD32E103 和 GD32F10x 系列相比,考虑软硬件兼容性,从 Flash 和 SRAM 容量,包括外设模块的增强性能上来看,E103 最接近 F105。 开始前您需要安装 GD32E103 关于 KEIL 或 IAR 的插件,在工程选项的器件条目中选择GD32E103 对应型号,添加 GD32E103 的 Flash 下载算法。 为了更好的利用本应用笔记中的信息,您需要对 GD32 系列微控制器有比较深刻的了解。您可在 GD32MCU 资料网站 下
[单片机]
【GD32 <font color='red'>MCU</font> 移植教程】7、从 GD32F10x 移植到 GD32E103
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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