首页 > 其他分享 >基于LabVIEW上位机与Arduino单片机串口通信的DS18B20环境温度采集

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

时间:2024-03-25 22:45:50浏览次数:28  
标签:Arduino void DS18B20 LabVIEW 串口 data

基于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 前面板设计如下

相应的程序图如下

转载请注明来源和作者,如有问题请回帖或Email联系([email protected])。

标签:Arduino,void,DS18B20,LabVIEW,串口,data
From: https://www.cnblogs.com/Jin-Lei-Li/p/18095583

相关文章

  • 01-【HAL库】STM32实现串口打印
    一、什么是串口串口通讯(SerialCommunication)是一种设备间非常常用的串行通讯方式,因为它简单便捷,因此大部分电子设备都支持该通讯方式,电子工程师在调试设备时也经常使用该通讯方式输出调试信息。在计算机科学里,大部分复杂的问题都可以通过分层来简化。如芯片被分为内核层和片......
  • Arduino IDE 环境配置
    ArduinoIDE环境配置目录ArduinoIDE环境配置1.安装方式2.操作方法(Arduino中文社区)2.1.安装ArduinoIDE2.2.下载固件2.3.修改ArduinoIDE语言2.4.添加开发板管理网址2.5.运行离线包2.6.检查安装是否成功1.安装方式github下载:这种方式可以获取到相关固件,但是如果想......
  • FPGA的串口接收部分的知识点
    在串口接收图像,存到RAM,然后读取RAM数据显示在TFT上的实验中发现发送图片的时候,发现花屏,发现是串口这边的问题。估计当时的串口接收代码没写好,这边重新看一下。moduleuart_byte_rx(Clk,Reset_n,uart_rx,Rx_Done,Rx_Data);inputClk;input......
  • 51单片机串口接收发送字符串
    在使用51单片机开发时,规定相关协议要单片机要通过串口接收一系列数据(以C8051F410单片机为例)。    串口的SBUF寄存器触发中断一次只能接收一个字节的数据,所以使用数组进行存储的时候不能一次将所有数据进行存储。    假设通信协议协议:数据包第一字节为A5,第......
  • vue2扫码枪串口模式的使用
    1.下载依赖包  serialportnpmiserialport2.创建文件code-gun.jsvar{SerialPort}=require("serialport");//串口列表SerialPort.list().then((ports)=>{ports.forEach((port)=>{console.log(port);});}).catch((err)=&......
  • STM32发送串口数据丢失字节的解决办法
    发送数据函数voidUsart3_Send_Array(u8*buf,u8len){u8t;GPIO_WriteBit(GPIOB,RS485AB_EN_PIN,1);for(t=0;t<len;t++) //循环发送数据{while(USART_GetFlagStatus(USART3,USART_FLAG_TXE)==RESET);USART_SendData(USART3,......
  • 03-【K210】通用串口和高速串口
    目录null01串口通讯协议简介02K210的串口类型(1)高速UART(2)通用UART03通用UART测试例程04高速串口测试例程01串口通讯协议简介串口通讯(SerialCommunication)是一种设备间非常常用的串行通讯方式,因为它简单便捷,大部分电子设备都支持该通讯方式,电子工程师在调试设备时也经常......
  • arduino固件烧录
    NodeMCU入坑指南-烧写固件并连接WIFI-0pen1-博客园(cnblogs.com)在这里要说一下,我们现在要烧写不带DEBUG的固件,如果烧写了带DEBUG的固件可能会出现这个问题:nodeMCU无限打印wifieventmonitorhandleeventcbiscalled烧录不开启debug的烧录开启Debug的固件就正常......
  • FPGA之串口接收数据(看注释)
    兜兜转转看了好多家视频和好几本书,明白了FPGA难学的原因之一是因为讲的好(我觉得就是很详细,告诉你为什么这么来写代码)的视频比较少,之前看到的那本书其实也很好,只是没有说为什么这么写,以及某些步骤的用意,这次看了野火的视频,发现挺符合我的需求,他们视频和我借的那本书思路是相同的,野......
  • Arduino RP2040 + SSD1306 I2C OLED +LittleFS存储GBK字库实现中文显示
    ArduinoRP2040+SSD1306I2COLED+LittleFS存储GBK字库实现中文显示......