LabVIEW控制Arduino实现红外测距(进阶篇 |
您所在的位置:网站首页 › labview测距 › LabVIEW控制Arduino实现红外测距(进阶篇 |
目录
1、项目概述 2、项目架构 3、硬件环境 4、Arduino功能设计 5、LabVIEW功能设计 5.1、前面板设计 5.2、程序框图设计 1、项目概述红外测距是一种非直接接触的测量方式,由于其结构简单、抗干扰性强、成本低等优点,在测量测绘上得到广泛的运用。 红外线在通过云雾等充满悬浮离子的物质时不易发生散射,有较强的穿透能力,还具有抗干扰能力强、易于产生、对环境影响小、不会干扰临近的无线电设备的特点,同时,红外光具有反射、折射、散射、干涉、吸收等特性,因而被广泛应用。 本篇博文将介绍使用夏普公司的GP2D12红外传感器、Arduino Uno和LabVIEW组成红外测距系统,可用于机器人避障等场合的距离测量。 红外测距系统框图如下图所示: 在整个系统中,Arduino Uno作为下位机,负责读取GP2D12红外传感器的输出值以及上传数据,LabVIEW软件作为上位机,负责将测量的电压转换为距离值并显示出来,上下位机利用USB-TTL接口实现通信。 项目资源请参见:LabVIEW控制Arduino实现红外测距-单片机文档类资源 3、硬件环境将GP2D12红外传感器的VCC、GND、Vo分别接至Arduino Uno控制板上的+5V、GND、模拟端口A0。最好在VCC与GND之间并联100uF的电解电容,以稳定GP2D12的供电电压,从而使输出电压更加稳定。红外测距系统硬件连接如下图所示: 在基于Arduino与LabVIEW的上下位机红外测距系统中,Arduino Uno控制板需要完成以下功能:接收和判断命令、采集和传输GP2D12传感器输出的电压。ArduinoUno控制板通过串口接收上位机发来的命令,分析得到有效命令,多次采集GP2D12传感器的电压输出值,并将GP2D12电压输出的平均值上传至LabVIEW软件。 Arduino Uno控制器负责读取LabVIEW上位机发来的距离测量命令,并通过GP2D12红外传感器获取距离数据,通过串口发送回上位机LabVIEW软件。Arduino Uno控制器的程序代码如下所示: #define Infrared_COMMAND 0x10 //采集命令字 byte comdata[3]={0}; //定义数组数据,存放串口接收数据 void receive_data(void); //接受串口数据 void test_do_data(void); //测试串口数据是否正确,并更新数据 float SensorSum = 0; int SensorPin = A0; // select the input pin for the potentiometer void setup() { Serial.begin(9600); } void loop() { while (Serial.available() > 0) //不断检测串口是否有数据 { receive_data(); //接受串口数据 test_do_data(); //测试数据是否正确并更新标志位 } } void receive_data(void) { int i ; for(i=0;i |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |