加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

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

(2024-03-25 22:42:27)
标签:

单片机

嵌入式

杂谈

分类: 单片机

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 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<</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



 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有