博客写作背景----项目中解决的问题
最近遇到一个使用Arduino Uno控制板多路采集信号的项目,还需要在上位机进行波形的查看,信号算法的处理,初步定为使用labview编写上位机程序进行处理。为啥用labview呢,因为LabVIEW是NI的数据采集创新软件产品,其全称是实验室虚拟仪器工程平台(Laboratory Virtual Instrument Engineering Workbench)/
Arduino是什么?
根据维基百科,Arduino的定义如下:一种开源的单片机控制器,它使用Atmel AVR单片机,采用基于开放源代码的软硬件平台,构建开放源代码simple I/O接口板,并且具有使用类似Java,C语言的Processing/Wiring开发环境。
从维基百科对Arduino的定义中,我们可以知道Arduino不仅是一种基于Atmel AVR单片机的控制器,而且是一个开源系统,包含了硬件(Arduino控制板)、软件(Arduino IDE)以及开源社区。相比于Arduino硬件控制板,Arduino的软件及开源社区是Arduino的精髓所在。
自从2005年被推出以来,随着使用者和爱好者数量不断增加,Arduino控制器得到了快速发展。同时,Arduino设计团队不断推出各式各样、更加强大的Arduino控制器及Arduino扩展板,以满足不同使用者的应用需求。
截止到现在,Arduino开发团队已经推出的Arduino控制器有数十种之多,主要有Uno、Due、Leonardo、Mega 2560、Mega ADK、Micro、Mini、Nano、Ethernet、Esplora、ArduinoBT、Fio、Pro、LilyPad等。
除了Arduino官方设计和生产的Arduino控制器,还有很多Arduino兼容控制器。因为Arduino采用开源协议,任何人或公司均可以利用Arduino公布的文档来生产和销售Arduino控制器,唯一的要求是不能使用Arduino作为商标。
由于Arduino兼容控制器价格较低,受到国内外广大Arduino爱好者的欢迎,这从一定程度上降低了Arduino使用者的门槛和成本,进而让Arduino得到了极大推广。
下面是我最近写程序的一些知识,进行了部分的整理,发出来和大家一起分享,也方便我以后查找自己的编程过程。
(1)编程知识点–基于LabVIEW的温度计程序实现
利用模拟温度传感器LM35和LIAT中的模拟函数库,通过Arduino Uno控制板的模拟端口采集LM35输出的电压值上传给LabVIEW软件,并除以比例因数以获得温度值,实现一个温度计的功能。
(2)硬件连接
将模拟温度传感器LM35的+VS、Vout、GND分别接至Arduino Uno控制板上的5V、模拟端口A2和GND引脚上,如图所示。
此处需要注意LM35的电源引脚的位置,一旦接反可能会烧坏LM35。
(3)程序设计
LabVIEW的前面板和程序框图如图2和图3所示。
LabVIEW程序首先通过设置的串口号与Arduino Uno控制板建立连接,然后进入While循环中,在循环中不断调用Analog Read Pin函数节点获取LM35的输出电压值,并除以LM35的比例因数0.01V/℃,最终获得温度值。最后,断开与Arduino Uno控制板的连接。
点击运行按钮,LabVIEW程序开始执行,在Analog Pin选择A3,可以看到前面板上的温度计显示当前的温度。