基于LabVIEW上位机与Arduino单片机串口通信的DS18B20环境温度采集
2024-03-25 22:42阅读:
Arduino
代码
#include
#include
#define ONE_WIRE_BUS 2
//DS18B20接至Arduino数字口2
OneWire
oneWire(ONE_WIRE_BUS);
DallasTemperature
sensors(&oneWire);
byte
comdata[3]={0};
//定义数组数据,存放串口命令数据
//int LED = 13;
//定义LED连接的管脚
void
receive_data(void);
//接受串口数据
void tes
t_do_data(
void);
//测试串口数据是否正确,并更新数据
void setup()
{
Serial.begin(9600);
//pinMode(LED, OUTPUT);
// Start up the library
sensors.begin();
}
void loop()
{
while
(Serial.available() >
0) //不断检测串口是否有数据
{
receive_data();
//接受串口数据
test_do_data();
//测试数据是否正确并更新数据
}
}
void
receive_data(void)
{
int i ;
for(i=0;i<</span>3;i++)
{
comdata[i]
=
Serial.read();
//延时一会,让串口缓存准备好下一个字节,不延时可能会导致数据丢失,
delay(2);
}
}
void
test_do_data(void) //
测试并执行命令
{
if(comdata[0]
== 0x55)
//0x55和0xAA均为判断是否为有效命令
{
if(comdata[1]
== 0xAA)
{
if(comdata[2]
== 0xFF)
{
sensors.requestTemperatures();
// 请求传感器测量温度
float
tempC =
sensors.getTempCByIndex(0);
// 读取温度值
Serial.print(tempC);
}
}
}
}
LabVIEW设计
LabVIEW 前面板设计如下

相应的程序图如下


转载请注明来源和作者,如有问题请回帖或Email联系(lijinlei0907@163.com)