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

3 篇文章 0 订阅
2 篇文章 0 订阅

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

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[3]={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[0] == 0x55) //0x55和0xAA均为判断是否为有效命令
  {
    if(comdata[1] == 0xAA)
    {
      if(comdata[2] == 0xFF)
      {
        sensors.requestTemperatures(); // 请求传感器测量温度
        float tempC = sensors.getTempCByIndex(0); // 读取温度值
        Serial.print(tempC);
      }
    }
  }
}

LabVIEW设计

LabVIEW 前面板设计如下
前面板

相应的程序图如下
程序图2
程序图1

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

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值