• |
  • 注册
  • |
  • 手机云汉
    扫码关注云汉官方微信

    扫码关注云汉官方微信

    扫码关注云汉小程序

    扫码关注云汉小程序

【开源】Arduino LABVIEW多路数据采集系统

来源:我爱方案网
时间:2014-01-15

分享至:


【导读】针对低速、低成本、快速搭建的特点,采用Arduino与LabVIEW来实现低成本上下位机数据采集系统。Arduino作为下位机,负责A/D转换以及数据传输;LabVIEW编写的数据采集软件作为上位机;上下位机利用RS-232串行接口实现通讯。  

  数据采集,是指从传感器和其它待测设备等模拟和数字被测单元中自动采集信息的过程。相应能够完成数据采集的系统被称为数据采集系统。  

  数据采集系统的任务,就是采集传感器输出的模拟信号转换成计算机能识别的信号,并送入计算机,然后将计算得到的数据进行显示或打印,以便实现对某些物理量的监测,其中一些数据还将被生产过程中的计算机控制系统用来控制某些物理量。  

  【注】一般认为上位机为主机,下位机为从机,上位机领导下位机按照上位机机的意愿工作为上位机服务;同时下位机也可以主动向上位机发出请求,上位机响应下位机并配合完成某个请求。  

  一、Arduino下位机部分  

  数据采集系统中的Arduino下位机部分采用Arduino Leonardo实验板,如图1所示。  


  图1 Arduino Leonardo控制板  

  Arduino下位机部分需要完成两个功能:数据采集和数据传输,Arduino Leonardo控制板通过串口接受上位机命令,完成相应的数据采集,并将数据回传至上位机。  

  数据采集分为模拟量采集和数字量采集,设置采集路数各为2路,分别采用Arduino UNO上具有模拟量输入的管脚A0、A1和具有数字量输入的管脚2、3来实现。模拟量采用接至GND、3.3V和5V来实现不同电压值,数字量采用接至5V和GND实现高电平与低电平(   如果有电位器,可以用来测量分压值。由于手头没有电位器,我这里只是简单的实现     )。  

  部分代码  

  完整代码在文章末尾处有下载。  

  二、LabVIEW上位机部分  

  串口读写的程序框图如图2所示。首先,对选择的通道的串口进行配置,然后串口写入所需要测量的通道号,等待100ms,从串口中读取Arduino下位机返回数据,后对数据进行适当的转换并显示出来。  


  图2 LabVIEW串口通讯小部分  



  LabVIEW上位机前面板设计如图3所示。  


  图3 LabVIEW上位机前面板  

  LabVIEW上位机程序框图如图4和图5所示,由于有2路模拟量和2路数字量,此处仅给出一路模拟量和一路数字量的程序框图。不同通道的模拟量或数字量的发送数据帧中,通道号不同;数字量与模拟量采集的发送数据帧中,命令号不同。发送数据帧中,具体的命令号和通道可以自己定义,不过需要上下位机的对应起来。  


  图4 模拟量采集程序框图  


  图5 数字量采集程序框图  

  三、实验与演示  

  通过将模拟量输入A0依次接入GND、3.3V和5V,然后点击“测量”按钮,观察面板上的仪表盘和数显框中数值的变化。 通过将数字量输入2依次接入GND和5V,然后点击“测量”按钮,观察面板上的LED灯的变化,LED亮代表高电平、LED灭代表低电平。  

  四、总结  

  在传感器等领域经常需要用到数据采集的功能,此应用实现了命令发送与数据回传功能,可以在此基础上扩展功能,对相关传感器的数据采集有一定的参考价值。  

  程序下载:       //www.52solution.com/industrial-dl/7014  


 ICkey(     云汉芯城    )是一家一站式电子元器件采购网, 提供     Digikey    、Mouser(贸泽)、Element14(e络盟)、Wpi(大联大)、Future(富昌)、Avnet(安富利)、Arrow(艾睿)、Chip1stop、Onlinecomponents、Master等主流供货商的芯片采购服务,在IC采购, 元器件交易和IC交易业务领域中排名的在线采购平台。

更多新闻