您当前的位置: 首页 >  ar

不脱发的程序猿

暂无认证

  • 1浏览

    0关注

    492博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

LabVIEW控制Arduino采集多路模拟量、数字量(进阶篇—1)

不脱发的程序猿 发布时间:2022-06-03 15:30:07 ,浏览量:1

目录

1、项目概述

2、项目架构

3、硬件环境

4、Arduino功能设计

5、LabVIEW功能设计

5.1、前面板设计

5.2、程序框图设计

1、项目概述

数据采集,是指从传感器和其他待测设备的模拟和数字被测单元中自动采集信息的过程。能够实现数据采集功能的系统叫作数据采集系统。

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

Arduino控制器均具有模拟输入功能,Uno拥有6路模拟输入端口(A0到A5),每一路具有10位的分辨率(即输入有1024个不同值),默认输入信号范围为0到5V,并且可以通过AREF调整参考电压。

2、项目架构

采用Arduino Uno与LabVIEW来实现低成本上下位机数据采集系统,具有模拟量和数字量两种采集功能,可以满足低速、低成本的数据采集需求。其中,Arduino Uno作为下位机,负责A/D转换以及数据传输,LabVIEW编写的数据采集软件作为上位机,上下位机通过USB-TTL接口实现通信。如下图所示为多路数据采集系统框图。

项目资源下载请参见:LabVIEW控制Arduino采集多路模拟量、数字量-单片机文档类资源

3、硬件环境

数据采集系统中的Arduino下位机部分采用Arduino Uno控制器,模拟量采用电位器分压来实现不同电压值,数字量采用拨动开关在5V和GND之间切换实现高电平与低电平。多路数据采集系统硬件连接如下图所示:

​4、Arduino功能设计

Arduino下位机部分需要完成两个功能:数据采集和数据传输,Arduino Uno控制板通过USB-TTL电缆接收上位机发来的命令,完成相应的数据采集,并将采集的数据回传至LabVIEW上位机软件。

数据采集分为模拟量采集和数字量采集两种,此处设置采集路数各为2路,分别采用Arduino Uno控制器上具有模拟量输入的管脚A0、A1和具有数字量输入的管脚2、3。

Arduino Uno控制器负责读取LabVIEW上位机发来的采集命令,并采集相应的数据,通过串口发送回上位机LabVIEW软件。Arduino Uno控制器的程序代码如代码如下所示:

#define A0_Command  0x10   //A0采集命令字
#define A1_Command  0x11   //A1采集命令字
#define D0_Command  0x20   //D0采集命令字
#define D1_Command  0x21   //D1采集命令字
 
byte comdata[3]={0};      //定义数组数据,存放串口接收数据
 
int AD_Value=0;          //AD转换后的数字量
float float_AD_Value;    //数字量换算成浮点电压量
int D_Value=0;           //数字量测量的数据
 
void receive_data(void);      //接受串口数据
void test_do_data(void);         //测试串口数据是否正确,并更新数据
 
void setup()
{
  Serial.begin(9600);      
  pinMode(2, INPUT);
  pinMode(3, INPUT);
}
void loop()
{
  while (Serial.available() > 0)   //不断检测串口是否有数据
   {
        receive_data();            //接受串口数据
        test_do_data();               //测试数据是否正确并更新标志位
   }
}
void receive_data(void)       
{
   int i ;
   for(i=0;i            
关注
打赏
1664101891
查看更多评论
0.0362s