本帖最后由 无垠的广袤 于 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[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);
- }
- }
- }
- }</i>
LabVIEW设计LabVIEW 前面板设计如下 相应的程序图如下 上位机程序见附件。
|