新浪博客

基于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 前面板设计如下
基于LabVIEW上位机与Arduino单片机串口通信的DS18B20环境温度采集
相应的程序图如下

基于LabVIEW上位机与Arduino单片机串口通信的DS18B20环境温度采集
基于LabVIEW上位机与Arduino单片机串口通信的DS18B20环境温度采集

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





我的更多文章

下载客户端阅读体验更佳

APP专享