Arduino是一款基于单片机系统的电子产品开发平台,它的软硬件系统都具有高度的模块化,而且软件系统是完全开源的。其硬件系统也是高度模块化的,在核心控制板的外围有开关量输入/输出模块、各种模拟量传感器输入模块、总线类传感器的输入模块,还有网络通信模块[1-2].Arduino有自己特有的编程语言。其语法规则类似C/C++语言,IDE环境和语言把单片机与硬件相关的一些参数都参数化并进行了很好的封装,把端口都打包,寄存器、地址指针之类的基本不用管,大大降低了软件开发难度。因此不用开发者去了解其硬件结构即可对其编程,实现设计者的设计意图和创意[3].
关键字:Arduino 光电编码器 检测仪
引用地址:基于Arduino的光电编码器检测仪设计
本文提出了一种基于Arduino开发环境的光电编码器检测仪设计方案,能够对光电编码器的好坏进行判断,实现光电编码器正转与反转时的脉冲计数。
1 整体设计
该检测仪主要由调理电路、Arduino控制板、液晶显示电路等组成,如图1所示。
CLKA和CLKB为光电编码器输出的两路相位相差90°的编码信号。调理电路用来对这两路信号进行整形滤波等信号处理,最后送至Arduino控制板。Arduino控制板用来实现光编码器脉冲个数的计数,正转、反转两种脉冲信号的判别。液晶显示电路用来显示检测的参数,同时对不同型号光电编码器进行选择控制。
2 硬件部分设计
2.1 调理电路
信号调理电路用于检测信号的调理,主要是把待测交流信号,经过滤波、放大、选通、有效值转换、限幅等处理,送到微控制器进行测量。
图2为调理电路框图,光电编码器输出的两路相位相差90°的正弦波信号A、B,经施密特触发器变为a、b两组方波信号。A 分为两组:一路经微分电路,在方波的上升沿形成脉冲信号d,再由门电路输出,形成正转脉冲,另一路经反相器,形成反相方波c,再经微分电路形成脉冲信号e,由门电路输出反相脉冲g.b组方波直接连到两个门电路的控制端,作为两个门电路的选通信号。
光电编码器正转时,b组信号超前90°,它的方波正半波对应不经反相器a组方波的上升沿,正半波又使门电路选通,d组脉冲通过门电路形成正转脉冲;而c组方波的上升沿对应b组方波负半波,此时虽然微分电路输出e脉冲,但门电路关闭,不能输出反相脉冲g.当编码器反转时,情况正好相反。最终输出的脉冲分别送入控制检测电路进行计数。
2.2 Arduino控制板
本检测仪采用了意大利最新开发的Arduino Due微控制器。Arduino Due 是一块基于Atmel SAM3X8ECPU 的微控制器板。它是第一块基于32 位ARM 核心的Arduino,使用32位ARM核心的Due相较于以往的使用8位AVR核心的其他Arduino更强大:32位核心在一个时钟能处理32位的数据。控制板包括54个数字I/O引脚(其中12路PWM输出),12个模拟输入通道,2个模拟输出通道(DAC),I/O口总输出电流为130 mA.3.3 V端口输出能力为800 mA,5 V 端口输出能力为800 mA,FLASH 512 KB(所有空间都可以储存用户程序),SRAM96 KB(两个部分:64 KB and 32 KB),时钟速率[4-5]为84 MHz.
由于Arduino due的工作电压为3.3 V,I/O口可承载电压也为3.3 V,所以经过调理电路产生的5 V 脉冲不能直接处理。本检测仪通过SN74lVC4245 芯片把5 V的脉冲整形为3.3 V的脉冲。
2.3 液晶显示电路
本设计中采用了国产开发的可编程智能LCD(即Programmable Smart LCD,简称PS-LCD)。PS-LCD 是一种包含LCD显示屏、LCD控制器、触摸屏、人机界面处理系统和通信接口于一体的智能显示模组,通过可选的通信接口与外部控制单元(如:51单片机、ARM、DSP、PC、PLC、总线设备等)连接,实现系统的人机交互界面。
新建Designer工程,定义界面分辨率、界面切换效果和主界面等;设置背景、加入/设置控件、定义事件动作等;PS-LCD的采用Java Script的脚本语言,Java Script是因特网上最流行的脚本语言,它存在于全世界所有Web 浏览器中,能够增强用户与Web 站点和Web 应用程序之间的交互。本液晶显示屏通过脚本编写实时地显示微控制器采集送过来的脉冲个数,并进行判断。
用LCD 模拟器验证界面效果和通信过程,重复前面步骤直到满意为止。
PS-LCD 作为先进的智能人机界面产品,能通过通信接口轻松灵活地与外部控制单元实现数据交互。目前,PS-LCD支持两种通信协议:CTP(Cooky Talking Pro-tocol)协议和用户自定义(UserDefine)协议。本检测仪采用的是CTP协议。
在CTP通信模式下,PS-LCD在收到通信命令后,会立刻执行,结束后会向主控制器返回结果。由于PS-LCD的串口通信协议跟微控制器Arduino Due的通信协议不一致,在通信过程中要进行转换和控制。为了取消PS-LCD 命令执行结果的自动回复消息,在CTP 通信模式下,通过调用ctpSet(“reply”,0)函数取消PS-LCD 的自动回复。PS-LCD同时通过通信协议产生的串口信号来控制微控制器的工作,真正实现人机互动的效果[6].[page]
生成界面输出文件spf,然后将spf文件通过PS-LCD专用软件工具Flex下载到PS-LCD验证最终界面效果。
本检测仪PS-LCD最终的检测界面如图3所示。
3.1 脉冲计数子程序
为了能更加准确地对脉冲进行测试,采用外部中断进行计数,Arduino due 控制板的54个数字I/O引脚,均可以作为中断端口。编写的主要计数程序如下[7-10]:
3.2 液晶显示程序
根据所要测试的光电编码器,选择不同的型号,不同型号的光电编码器定义不同的发送信号,以LBJ-001-2048 型光电编码器为例,选择按钮的脚本编写子程序如下:
其中sysCom0.write(0×41)为写入串口发送缓冲区,串口向外部发送1 字节数据0×41,即是字符‘A'.当Arduino微控板接收到串口送过来的'A’字符时,即可判断出待测试的光电编码器型号为LBJ-001-2048,启动相对应的程序进行测试。同理当选择第二种型号测试时,Arduino微控板将接收到串口送过来的‘B’字符时,即可判断出待测试的光电编码器型号为SE0932II-5400P/r,启动相对应的程序进行测试。
4 结语
本文着重介绍了基于Arduino开发环境的光电编码器检测仪的设计,并实现Arduino微控板与PS-LCD的通信控制问题。由于Arduino是一个开放的单片机开发人机互动产品的软硬件平台,对于基于Arduino开发环境的电子制作竞赛、电子艺术品创意开发、电子检测产品等方面具有较好的参考价值。
上一篇:表面光电压谱仪的软件设计
下一篇:“虚拟”逻辑分析仪SignalTap II
推荐阅读最新更新时间:2024-03-30 23:01
气体检测仪三大分类
气体检测仪的关键部件是气体传感器。 一、气体传感器从原理上可以分为三大类 A)利用物理化学性质的气体传感器:如半导体式(表面控制型、体积控制型、表面电位型)、催化燃烧式、固体热导式等。 B)利用物理性质的气体传感器:如热传导式、光干涉式、红外吸收式等。 C)利用电化学性质的气体传感器:如定电位电解式、迦伐尼电池式、隔膜离子电极式、固定电解质式等。 根据危害,我们将有毒有害气体分为可燃气体和有毒气体两大类。由于它们性质和危害不同,其检测手段也有所不同。 可燃气体是石油化工等工业场合遇到最多的危险气体,它主要是烷烃等
[测试测量]
基于PIC单片机设计的高精度酒精检测仪
一 、项目背景及可行性分析 1.项目名称,背景,项目的主要内容及目前的进展情况 项目名称:基于PIC32控制的酒精检测仪及通过RFID记录违规驾驶员身份的系统; 项目背景:动车驾驶人员 酒后驾车 以及 醉酒驾车 极易发生道路交通事故,严重危害了道路交通安全和人民生命财产安全。为了减少或杜绝这种现象,对于交警如何准确检测司机是否酒后驾驶和酒精浓度等已成为一种必然的趋势。故随着科技的发展,精度和准确度越来越高的酒精测量仪相继出现。虽然各种各样的酒精测量仪精确度越来越高,功能也越来越多样化,但未曾出现可以在测量司机酒精浓度的基础上同时输入司机驾驶证号和利用身份证芯片本身所带的信息的方法记录违法司机的个人信息,以便为司法提供确切证据。
[单片机]
四合一气体检测仪的介绍
四合一气体检测仪是能够检测四种气体吗? 通常是说的标准四合一气体检测仪,所谓标准四合一气体检测仪是指对:可燃气体、氧气、一氧化碳、硫化氢四种气体进行检测,因为这些气体是我们生产或者作业过程中需要/产生的最多的气体,也是对人生安全影响最大的。 所谓的四合一就是说这款仪器是一个复合型的检测仪,可检测多种气体。仪器内部有多个传感器插槽,插放多个气体传感器,一般情况下都是每个传感器单独按放。只是这些传感器都被集中安装在了一起内部,组成了一台检测仪。 单一气体检测仪在单一检测时性价比比较高,但是要是需要检测气体比较多的情况下,多合一的检测仪优势就会体现出来了,易携带,价格实惠。 四合一气体检测仪怎样进行气体测试:
[测试测量]
可燃性气体检测仪电路与家用煤气(CO)安全报警电路
下图是差分式可燃性气体检测仪电路原理图。 在此电路中,BG1、BG2的参数应力求一致,最好选用差分对管。采用这种差分电路,检测气体的灵敏度可达100 ×10-6。 差分式可燃性气体检测仪电路 家用煤气(CO)安全报警电路 下图是家用煤气(CO)安全报警电路。 一部分是煤气报警器,在煤气浓度达到危险界限前发生警报;另一部分是开放式负离子发生器,其作用是自动产生空气负离子,使煤气中主要有害成分一氧化碳与空气负离子中的臭氧(O3)反应,生成对人体无害的二氧化碳。
[测试测量]
油质检测仪的功能
油质检测仪从其名称大家可以知道油质检测仪是用来检测油的质量的,那么具体如何检测呢?下面来给大家介绍一下油质检测仪的功能。 油质检测仪可以现场判断润滑油的污染程度,以确定是否换油。检测新购润滑油是否合格,是企业保护设备、节约能源加强润滑管理、实现按质换油的必备检测工具。 油质检测仪主要功能如下: 一、5分钟内检测出润滑油的污染程度; 二、能够检测出60微米以上的金属磨粒; 三、判断新购油品是否合格; 四、判断润滑油中是否含有轻质油; 五、在3分钟内检测油中微量水分含量; 六、带有微型打印机,即时直观打印出检测结果。 油质检测仪具有交、直两用功能(直流可连续工作28个小时,打印时需用交流电源)。外型精美,操作简便,适用于
[测试测量]
增量式光电编码器信号处理电路的设计与实现
目前,在现代电子工业中,光电编码器作为传感手段被广泛采用。光电编码器是一种通过光电转换将输出轴上的机械几何位移量转换成脉冲或数字量的传感器。通常,根据码盘形式光电编码器分为绝对式、增量式和混合式3种。增量式编码器是直接利用光电转换原理输出3组方波脉冲A、B和Z相。 在实际应用中,光电编码器的输出信号往往不能被直接采用,需要对此进行相应的拓展电路处理。文中针对丹麦SCANON公司的2RHIB型号的光电编码器,设计了一种集光电隔离、鉴相、频率电压转换、电压调整输出等功能于一体的综合性电路。该电路组成简单、调整方便、线性度好、具有实用价值。 1 光电编码器 采用丹麦SCANON公司的2RHIB型通心轴增量式
[电源管理]
树莓派和 Arduino也可以开发机器人
Thecorpora 的发布的 “Q.bo One” 机器人基于 R 3 和 ,并提供立体相机、麦克风、扬声器,以及视觉和语言识别。 2010 年,作为一个开源概念验证和用于探索 在多、交互式机器人的能力的研究项目,机器人开发商 Francisco Paz 及它在巴塞罗那的 Thecorpora 公司推出了首款 Qbo “Cue-be-oh” 机器人。在今年 2 月移动世界大会上的预览之后,Thecorpora 把它放到了 Indiegogo 上,与 合作推出了第一个批量生产的社交机器人版本。
像原来一样,新的 Q.bo One 有一个带眼睛的球形头(双立体相机)、耳朵(3 个麦克风)和嘴(扬声器),并由 Wi
[机器人]
基于单片机的汽车制动性能检测仪的设计
制动性能是机动车安全检测的重点指标之一,检验的方法有路试法和台架法。根据GB7258-1997规定,路试法主要在道路上对汽车制动性能进行检测,其检测的参数有制动距离;充分发出的平均减速度;制动踏板力;制动协调时间等 。 在道路上对汽车制动性能进行检测,其测试仪器主要是车速传感器,通过对汽车在道路上制动时的车速变化对汽车整车制动性能进行评价。现在普遍使用的制动性能检测仪大多是在车身上安装传感器,使用和维护比较困难。在机动车辆制动性能检测和交通事故的勘查以及汽车维修行业中,一种能够快速测出制动距离和制动时间,方便快捷,智能化,高精度,性价比高,无需与车辆进行机械和电气安装连接的汽车制动性能测试仪显的特别重要。为提高检测的自动
[测试测量]