世界关注:Arduino DS18B20温度传感器测温实验
1 1介绍:这是一个常用的18B20温度传感器,它主要采用DS18B20传感器元
1.1 介绍:
这是一个常用的18B20温度传感器,它主要采用DS18B20传感器元件。该元件是美国DALLAS公司生产的总线数字温度感测元件。它支持多点组网功能,即多个DS18B20可以并联在唯一的三线上,实现多点测温。DS18B20 的核心功能是直接数字测温,分辨率是 9,10,11,12 位,用户可配置的,对应的温度分度分别是 0.5°C, 0.25°C, 0.125°C, 和0.0625°C,上电后的默认分辨率是 12 位。它的测量结果以9-12位数字量方式串行传送,测温范围是55℃~+125℃。
【资料图】
1.2 模块相关资料:
程序例程前往下载链接:https://sourl.cn/WMrUjV
1.3连接图
1.4测试代码
#include <OneWire.h>
int DS18S20_Pin = 3; //定义数字口3
OneWire ds(DS18S20_Pin);
void setup(void) {
Serial.begin(9600); //设置波特率
}
void loop(){
float temperature = getTemp(); //调用函数计算温度值
Serial.println(temperature); //显示温度值,并自动换行
delay(100); //延迟0.1S
}
float getTemp() {
//returns the temperature from one DS18S20 in DEG Celsius
byte data[12];
byte addr[8];
if (!ds.search(addr)) {
//no more sensors on chain, reset search
ds.reset_search();
return -1000;
}
if ( OneWire::crc8(addr,7)!=addr[7]) {
Serial.println("CRC is not valid!");
return -1000;
}
if ( (addr[0] !=0x10) && (addr[0] != 0x28)){
Serial.print("Device is not recognized");
return -1000;
}
ds.reset();
ds.select(addr);
ds.write(0x44, 1); // start conversion, with parasite power on at the end
byte present = ds.reset();
ds.select(addr);
ds.write(0xBE); // Read Scratchpad
for (int i = 0; i < 9; i++) { // we need 9 bytes
data[i] = ds.read();
}
ds.reset_search();
byte MSB = data[1];
byte LSB = data[0];
float tempRead = ((MSB << 8) | LSB); //using two's compliment
float TemperatureSum = tempRead / 16;
return TemperatureSum;
}
按照上图接好线,烧录好代码,上电后,通电后,我们可在软件串口监视器中看到当前环境温度值,如下图。
标签:
1 1介绍:这是一个常用的18B20温度传感器,它主要采用DS18B20传感器元
持续盈利能力羸弱解读新商业的财经新媒体,报道资本市场,解读上市公司,
6月14日,长寿镇长寿社区新时代文明实践站组织开展 “多读书、读好书
6月16日,兖矿国泰化工有限公司今日装置运行正常,厂家竞拍销售,今天
东南网架不超20亿可转债获深交所通过开源证券建功
药物种类繁多,如何对症下药?这项服务了解一下,主流媒体,山西门户。山
截至2023年6月15日收盘长青科技001324报收于2295元上涨408换手率1572成
为什么PCB板大多都是绿色的?答案不是便宜
[ 相关新闻 ]