无垠的广袤 发表于 2024-6-27 16:11

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

本帖最后由 无垠的广袤 于 2024-6-27 16:15 编辑

#申请原创# Arduino 代码#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 2   //DS18B20接至Arduino数字口2

OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);

byte comdata={0};      //定义数组数据,存放串口命令数据
//int LED = 13;               //定义LED连接的管脚
void receive_data(void);      //接受串口数据
void test_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<3;i++)
{
    comdata<i> = Serial.read();
    //延时一会,让串口缓存准备好下一个字节,不延时可能会导致数据丢失,
    delay(2);
}
}

void test_do_data(void) // 测试并执行命令
{
if(comdata == 0x55) //0x55和0xAA均为判断是否为有效命令
{
    if(comdata == 0xAA)
    {
      if(comdata == 0xFF)
      {
      sensors.requestTemperatures(); // 请求传感器测量温度
      float tempC = sensors.getTempCByIndex(0); // 读取温度值
      Serial.print(tempC);
      }
    }
}
}</i>

LabVIEW设计LabVIEW 前面板设计如下相应的程序图如下上位机程序见附件。转载请注明来源和作者,如有问题请回帖或Email联系(lijinlei0907@163.com)。


dirtwillfly 发表于 2024-9-1 08:56

感谢分享

电子烂人 发表于 2024-11-3 10:49

做的很好,点个赞
页: [1]
查看完整版本: 基于LabVIEW上位机与Arduino单片机串口通信的DS18B20环境温度采集