您的位置 首页 电路

根据Arduino开发环境的光电编码器检测仪设计方案

Arduino是一款基于单片机系统的电子产品开发平台,它的软硬件系统都具有高度的模块化,而且软件系统是完全开源的。其硬件系统也是高度模块化的,在核心控制板的外围有开关量输入/输出模块、各种模拟量传感器

  Arduino是一款依据单片机体系的电子产品开发渠道,它的软硬件体系都具有高度的模块化,并且软件体系是彻底开源的。其硬件体系也是高度模块化的,在中心操控板的外围有开关量输入/输出模块、各种模仿量传感器输入模块、总线类传感器的输入模块,还有网络通讯模块[1-2].Arduino有自己特有的编程言语。其语法规矩相似C/C++言语,IDE环境和言语把单片机与硬件相关的一些参数都参数化并进行了很好的封装,把端口都打包,寄存器、地址指针之类的根本不必管,大大降低了软件开发难度。因而不必开发者去了解其硬件结构即可对其编程,完成规划者的规划目的和构思[3].

  本文提出了一种依据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].

  生成界面输出文件spf,然后将spf文件经过PS-LCD专用软件东西Flex下载到PS-LCD验证终究界面作用。

  本检测仪PS-LCD终究的检测界面如图3所示。

  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开发环境的电子制造比赛、电子艺术品构思开发、电子检测产品等方面具有较好的参考价值。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/fangan/dianlu/241578.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部