网站首页 > 资源文章 正文
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<3;i++)
{
comdata[i] =Serial.read();
//延时一会,让串口缓存准备好下一个字节,不延时可能会导致数据丢失,
delay(2);
}
}
void test_do_data(void)
{
if(comdata[0] == 0x55) //0x55和0xAA均为判断是否为有效命令
{
if(comdata[1] == 0xAA)
{
switch(comdata[2])
{
case A0_Command:
AD_Value = analogRead(A0); //读取A0电压值
float_AD_Value=(float)AD_Value/1023*5.00; //换算为浮点电压值
Serial.println(float_AD_Value,2); //保留两位小数发送数据
break;
case A1_Command:
AD_Value = analogRead(A1); //读取A0电压值
float_AD_Value=(float)AD_Value/1023*5.00; //换算为浮点电压值
Serial.println(float_AD_Value,2); //保留两位小数发送数据
break;
case D0_Command:
D_Value = digitalRead(2); //读取D2数字量
Serial.println(D_Value); //发送数字量测量数据
break;
case D1_Command:
D_Value = digitalRead(3); //读取D2数字量
Serial.println(D_Value); //发送数字量测量数据
break;
}
}
}
}
5、LabVIEW功能设计
LabVIEW上位机部分需要完成两个功能:向下位机发送命令帧和将数据显示在前面板上,Arduino Uno控制板通过串口接收上位机命令,完成相应的数据采集,并将数据回传至上位机。
数据采集分为模拟量采集和数字量采集,设置采集路数各为2路,分别采用ArduinoUno上具有模拟量输入的管脚A0、A1和具有数字量输入的管脚2、3来实现。模拟量采用电位器分压来实现不同电压值,数字量采用拨动开关在5V和GND之间切换实现高电平与低电平。
5.1、前面板设计
LabVIEW前面板分为模拟量采集和数字量采集两个部分,模拟量采集部分主要针对模拟量输出的传感器,数字量采集部分主要针对数字量的输入。
LabVIEW上位机前面板设计如下图所示:
?5.2、程序框图设计
由于有2路模拟量和2路数字量,不同通道的模拟量或数字量的发送数据帧中,通道号不同,数字量与模拟量采集的发送数据帧中,命令号不同。发送数据帧中,具体的命令号和通道号可以自定义,此处模拟量通道0的采集命令为0x55AA10,模拟量通道1的采集命令为0x55AA11,数字量通道0的采集命令为0x55AA20,数字量通道1的采集命令为0x55AA21。
LabVIEW上位机程序框图如下所示:
Arduino Uno上的模拟输入拥有10位的分辨率,可以满足一般的数据采集的需求同时可以更改参考电压来提高最小分辨率。
对于高精度的应用,需要外部扩展高分辨率的ADC(模数转换器)和高精度的电压基准源。
对于连续数据采集的应用,可以采用LabVIEW Interface for Arduino函数库中的模拟采样库中的Get Finite Analog Sample函数节点来实现。
对于远距离的数据采集的应用,可以采用RS-485总线、无线串口方式或网络方式实现。
项目资源下载请参见:https://download.csdn.net/download/m0_38106923/85486643
猜你喜欢
- 2024-12-27 LabVIEW Arduino无线蓝牙遥控智能车(项目篇—2)
- 2024-12-27 LabVIEW色彩分类识别(基础篇—15)
- 2024-12-27 LabVIEW实现手机摄像头调用 labview调用usb摄像头
- 2024-12-27 LabVIEW十六进制和字符类型转换 labview16进制字符转10进制字符串
- 2024-12-27 如何通过LabVIEW控制电脑自带摄像头?
- 2024-12-27 LabVIEW读写各类格式图像的方法(基础篇—1)
- 2024-12-27 Labview通过西门子官方库S7.net与S71200或S71500系列PLC通讯
- 2024-12-27 LabVIEW控制Arduino驱动1602液晶显示屏(基础篇—10)
- 2024-12-27 LabVIEW编程实例:一个简单通用的“关于”对话框实现
- 2024-12-27 仿真工具Multisim正版下载安装 Multisim中文版下载
你 发表评论:
欢迎- 07-03win7去掉桌面图标小箭头怎么操作 win7桌面快捷方式箭头怎么去除
- 07-03win7声音图标不见了怎么办(windows7声音没了怎么办)
- 07-03男生勿入:Win10/Win7/Win8.1女生图标下载
- 07-03桌面只有回收站图标,给Win7/10系统在桌面添加“计算机”图标
- 07-03经典windows桌面图标手机壁纸(经典windows桌面背景)
- 07-03如何在Win10启用Win7/Win8.1通知区域图标设置?
- 07-03win7声音图标不见了解决步骤(win7旗舰版声音图标不显示)
- 07-03为什么回收站图标没了?win11/win10/win7电脑如何显示回收站图标
- 最近发表
-
- win7去掉桌面图标小箭头怎么操作 win7桌面快捷方式箭头怎么去除
- win7声音图标不见了怎么办(windows7声音没了怎么办)
- 男生勿入:Win10/Win7/Win8.1女生图标下载
- 桌面只有回收站图标,给Win7/10系统在桌面添加“计算机”图标
- 经典windows桌面图标手机壁纸(经典windows桌面背景)
- 如何在Win10启用Win7/Win8.1通知区域图标设置?
- win7声音图标不见了解决步骤(win7旗舰版声音图标不显示)
- 为什么回收站图标没了?win11/win10/win7电脑如何显示回收站图标
- Win7怎么更换本地磁盘图标?(win7桌面改d盘)
- Win7桌面图标消失怎么办?(win7桌面图标全没了怎么办)
- 标签列表
-
- 电脑显示器花屏 (79)
- 403 forbidden (65)
- linux怎么查看系统版本 (54)
- 补码运算 (63)
- 缓存服务器 (61)
- 定时重启 (59)
- plsql developer (73)
- 对话框打开时命令无法执行 (61)
- excel数据透视表 (72)
- oracle认证 (56)
- 网页不能复制 (84)
- photoshop外挂滤镜 (58)
- 网页无法复制粘贴 (55)
- vmware workstation 7 1 3 (78)
- jdk 64位下载 (65)
- phpstudy 2013 (66)
- 卡通形象生成 (55)
- psd模板免费下载 (67)
- shift (58)
- localhost打不开 (58)
- 检测代理服务器设置 (55)
- frequency (66)
- indesign教程 (55)
- 运行命令大全 (61)
- ping exe (64)
本文暂时没有评论,来添加一个吧(●'◡'●)