熊垒 向柄全 曾智文 陈志伟 张磊
摘要:随着信息技术的迅猛发展,传感器的应用技术也在飞速发展,新的应用技术呈现出爆炸式的发展。传感器作为测控系统中对象信息的入口,作为捕获信息的主要工具,在现代化事业中的重要性已被人们所认识。光电传感器的应用技术为信息科学的一个分支,俗称“电眼”。它是将传统光学技术与现代微电子技术以及计算机技术机密结合的纽带,是获取光信息或借助光提取其他信息的重要手段。本次基于Arduino uno和紅外对射传感器,我们设计了一款计数设备,此设备基于红外对射传感器可实现对产品数量的检测。
关键字:红外对射,光电计数,Arduino uno
一、引言
Arduino UNO R3是一款单片机开发板,采用AVR单片机ATmega328P作为主控制器,集成开发环境为Arduino IDE。它有14个数字输入/输出引脚(其中6个可用作PWM输出),6个模拟输入,16MHz晶振时钟,USB连接,电源插孔,ICSP接头和复位按钮。只需要通过USB数据线连接电脑就能供电、程序下载和数据通讯。
ArduinoUNO拥有14个数字引脚(6个PWM)和6个模拟引脚,数字引脚为引脚0至引脚13。其中引脚0和引脚1用于接收和传输串行数据。PWM:3,5,6,9,10,11。这6个引脚可以用作PWM(脉冲宽度调制)引脚,使用这些引脚可以依次控制电压和亮度。模拟引脚为到引脚A5,模拟引脚的主要功能是从模拟传感器读取值。
电力系统方面,ArduinoUNO具有便捷的电源管理和内置电压调节功能。电源是自动选择的。可以通过USB或USB直接为其供电。外部电源可以通过将电源(7-12VDC)连接到直流电源插孔或将电池引线连接到Vin和Gnd。
内存:ATmega328p具有32KB的闪存来存储程序,2KB的SRAM和1KB的EEPROM。
通信:UNO具有诸如UART串行通信,SPI和I2C的通信协议。
UART:UNO使用数字pin0(RX)和数字pin1(TX)进行UARTTTL串行通信。
I2C:UNO使用A4或SDA引脚,而A5或SCL引脚用于与线库的I2C通信。SCL是时钟信号,SDA是数据信号。
SPI:Pin11:(MOSI),Pin12:(MISO),Pin13:(SCK)MOSI(MasterOutSlaveIn)-用于将数据发送到外围设备的主控线。MISO(主机输入从机输出)-用于将数据发送到主机的从机线路。SCK(串行时钟)-用于同步主机产生的数据传输的时钟脉冲。对应的引脚以及SPI库用于SPI通信。ICSP头可用于通过引导加载程序直接对ATmega进行编程。
二、红外对射传感器
红外线反射传感器是利用红外线反射的原理,根据反射的强度来判定前方障碍的有无。在距离适中的时候测量精度很高。由于使用的是红外线,所以抗干扰能力很强。这样做更加确保了装置的稳定性。
特点如下:1.使用槽型光耦传感器;2.槽宽度10mmo;3.有输出状态指示灯,输出高电平灯灭,输出低电平灯亮;4.有遮挡,输出高电平,无遮挡。输出低电平;5.比较器输出,信号干净,波形好,驱动能力强,超过15mAo;6.工作电压3.3V -5Vo;7.输出形式:数字开关量输出(o和1);8.设有固定螺栓孔,方便安装;9.小板PCB尺寸:23mm *20mm;10.使用宽电压LM393比较器。
使用说明:模块槽中无遮挡时,接收管导通,模块DO输出低电平,遮挡时,DO输出高电平。模块DO可与继电器相连,组成限位开关等功能,也可以与有源蜂鸣器模块相连,组成报警器。
三、数字矩阵按钮
4*4矩阵按键,又称行列式键盘,它用4条I/O线作为行线, 它用4条I/O线作为列线组成键盘。 在行线和列线的每一个交叉点上设置一个按键, 这样键盘按键就有4*4个,这种行列式键盘结构能够有效的提高单片机系统的I/0口利用率。
矩阵键盘4个输入端口ROW[3:0] 接收由FPGA产生的键盘扫描输入信号,而4个输出COL[3:0] 将按键操作的信息变化输入到FPGA扫描分析电路,进而得到按键的操作码。输入端口分别接了4个上拉电阻,当4个输入端口输入若都为1时,则有无论按哪个按键,输出都为1,所以 若刚开始的时候对四个输入端口赋0,则只要按下任何一个按键,键盘上的4个输出则肯定有1变为0,而且能够判断到是哪一列,但是并不知道是哪一行,所以此时就要用到键盘扫描,何为键盘扫描,就是只要让输入端口的一行为0,其余三行全为1,轮流扫描一遍,便可以方便的确定按键按下的准确值。又因为实际运用的时候按键按下会有抖动现象,所以要对其进行消抖处理,消抖模块可以有很多种方法,例如状态机的消抖方法以及打拍延时,然后相或,因为这个是键值输入,若要用到打拍延时的方法进行消抖处理的话,需要对其进行一些改动,相或改为两两相等并相与以增加时钟时间。
四、硬件设计
本装置以ARDUINO UNO为控制中心,结合红外对射传感器、液晶显示器,通过光电传感器检测一定时间内经过传感器的物体的个数,以此来满足实际生产过程中流水线上工件的数量统计。使用arduino ide开发工具进行arduino程序的编写和开发,它拥有开放源代码的电路图设计、支持ISP在线烧录,同时支持Flash、Max/Msp、VVVV、PD、C、Processing等多种程序兼容。
开放源代码电路图设计,程序开发接口免费下载,也可依需求自己修改。使用低价格的微处理控制器(AVR系列控制器),可以采用USB接口供电,不需外接电源,也可以使用外部9VDC输入。Arduino支持ISP在线烧,可以将新的“bootloader”固件烧入AVR芯片。有了bootloader之后,可以通过串口或者USB to Rs232线更新固件。可依据官方提供的Eagle格式PCB和SCH电路图简化Arduino模组,完成独立运作的微处理控制;可简单地与传感器,各式各样的电子元件连接(例如:红外线,超音波,热敏电阻,光敏电阻,伺服马达,…等)
接线图设计如下:
参考文献:
[1] 张金.《Arduino程序设计与实践》
[2] 梁森,欧阳三泰.《自动检测技术及应用》(第3版)
[3] 蔡睿妍. Arduino的原理及应用[J]电子设计工程,2012(16)