18b20温度报警程序
时间: 2023-12-15 15:02:32 浏览: 89
18b20温度报警程序是一种用于监测温度并在温度超出设定范围时发出警报的程序。这种程序通常用于温度敏感的设备或环境中,确保温度在安全范围内。
该程序首先需要连接一个18b20温度传感器,用于实时监测环境温度。然后,设定一个上下限温度阈值,当温度超出这个范围时,程序会触发警报。
在程序运行过程中,会不断地检测当前温度,一旦温度超出设定范围,就会触发警报系统。这个系统可以是一个声音警报、闪光灯警报,或者发送警报信息到特定的设备上。同时,程序也可以记录下高温报警的时间和温度,作为后续分析和调整的参考。
此外,18b20温度报警程序还可以通过连接到互联网或其他监控系统,实现远程监控和警报功能。这样即使在远离现场的情况下,也能及时了解环境温度超出安全范围,并及时采取措施。
总之,18b20温度报警程序通过实时监测温度并在超出安全范围时发出警报,可以有效地保护设备和环境,确保温度在安全范围内。
相关问题
arduino 18b20温度报警器程序编写
下面是一个简单的Arduino代码,用于读取DS18B20温度传感器的值,并根据设定的阈值触发报警:
```C++
#include <OneWire.h> //引用OneWire库
#define ONE_WIRE_BUS 2 //设置数据引脚
OneWire oneWire(ONE_WIRE_BUS); //创建OneWire对象
float tempC = 0; //当前温度
float tempThreshold = 25; //温度阈值
int buzzerPin = 3; //报警器引脚
void setup(void) {
Serial.begin(9600); //设置串口通信
pinMode(buzzerPin, OUTPUT); //设置报警器引脚为输出
}
void loop(void) {
byte i;
byte present = 0;
byte type_s;
byte data[12];
byte addr[8];
if ( !oneWire.search(addr)) {
Serial.println("No more addresses.");
oneWire.reset_search();
delay(250);
return;
}
Serial.print("ROM =");
for( i = 0; i < 8; i++) {
Serial.write(' ');
Serial.print(addr[i], HEX);
}
if (OneWire::crc8(addr, 7) != addr[7]) {
Serial.println("CRC is not valid!");
return;
}
Serial.println();
// 根据芯片类型决定温度值所在的字节位置
switch (addr[0]) {
case 0x10:
Serial.println(" Chip = DS18S20"); // or old DS1820
type_s = 1;
break;
case 0x28:
Serial.println(" Chip = DS18B20");
type_s = 0;
break;
case 0x22:
Serial.println(" Chip = DS1822");
type_s = 0;
break;
default:
Serial.println("Device is not a DS18x20 family device.");
return;
}
oneWire.reset();
oneWire.select(addr);
oneWire.write(0x44,1); // 开始转换温度值
delay(1000); // 等待转换完成
present = oneWire.reset();
oneWire.select(addr);
oneWire.write(0xBE); // 读取温度值
for ( i = 0; i < 9; i++) { // 将数据存入data数组
data[i] = oneWire.read();
}
int16_t raw = (data[1] << 8) | data[0];
if (type_s) {
raw = raw << 3; // 9 bit resolution default
if (data[7] == 0x10) {
// "count remain" gives full 12 bit resolution
raw = (raw & 0xFFF0) + 12 - data[6];
}
} else {
byte cfg = (data[4] & 0x60);
// at lower res, the low bits are undefined, so let's zero them
if (cfg == 0x00) raw = raw & ~7; // 9 bit resolution, 93.75 ms
else if (cfg == 0x20) raw = raw & ~3; // 10 bit res, 187.5 ms
else if (cfg == 0x40) raw = raw & ~1; // 11 bit res, 375 ms
// default is 12 bit resolution, 750 ms conversion time
}
tempC = (float)raw / 16.0; //计算温度值
Serial.print(" Temperature = ");
Serial.print(tempC);
Serial.println(" Celsius");
if(tempC > tempThreshold){ //判断当前温度是否超过阈值
digitalWrite(buzzerPin, HIGH); //触发报警
} else {
digitalWrite(buzzerPin, LOW); //关闭报警
}
delay(1000); //等待1秒后再次读取温度值
}
```
在上面的代码中,我们增加了一个温度阈值变量tempThreshold和一个报警器引脚buzzerPin。如果当前温度超过设定的阈值,则触发报警,否则关闭报警。
你可以根据需要修改温度阈值和报警器引脚。需要注意的是,如果你使用的是蜂鸣器作为报警器,你需要将其连接到一个PWM引脚上,这样可以产生可听的声音。
基于ds18b20温度报警汇编74ls164驱动
基于DS18B20温度报警的汇编程序可以通过使用74LS164来驱动。74LS164是一个8位串行输入并行输出的移位寄存器,我们可以利用它来控制温度报警的功能。
首先,需要将DS18B20与控制器(如单片机)连接。DS18B20是一个数字温度传感器,它通过一根串行总线与控制器进行通信。我们可以通过读取DS18B20的温度值,并将其与设定的温度阈值进行比较,以确定是否触发报警。
接下来,我们可以将DS18B20的温度值与设定的阈值比较。如果温度超过设定的阈值,就需要触发报警。
使用74LS164来驱动报警器。我们可以将74LS164的输出引脚与报警器的输入引脚连接,当报警触发时,74LS164的输出引脚将发出高电平信号,从而触发报警器发出声音、光或其他形式的报警。
在汇编程序中,需要编写相应的代码来读取DS18B20的温度值,并与设定的阈值进行比较。如果温度超过阈值,就需要将数据写入到74LS164,从而触发报警。
要注意的是,做硬件连接和编写汇编程序都需要按照相关文档和规范进行操作。此外,为了确保准确性和安全性,还需要进行合适的测试和调试。
总结起来,基于DS18B20温度报警的汇编程序可以通过74LS164来驱动,通过读取温度值并与设定的阈值进行比较,将触发报警的信号通过74LS164输出引脚连接到报警器,实现温度报警功能。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)