lou 发表于 2020-4-29 10:04:15

基于 Arduino 使用 DS18B20 数字温度探头

基于 Arduino 使用 DS18B20 数字温度探头


产品介绍

采用数字化温度传感器DS18B20,采用导热性高的密封胶灌封,保证了温度传感器的高灵敏性,极小的温度延迟。该温度传感器支持“一线总线”接口(1-Wire),测量温度范围为- 55℃~+125℃,在-10℃+85℃范围内,精度为±0.5℃。现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量。DS18B20 数字温度传感器都具有唯一的编号,温度采集设备通过编号来识别对应的温度传感器。


(DS18B20 数字温度探头)
产品参数

[*]优质不锈钢管封装防水、防潮、防Th锈
[*]不锈钢头引线 1 米,钢管 6mm*50mm
[*]探头采用 DS18B20 温度传感器芯片(芯片每个引脚均用热缩管隔开,防止短路,内部封胶)
[*]每个探头经过严格测试
[*]3V-5.5V 供电
[*]9-12 位可调分辨率
[*]感温范围宽-55℃至+125℃(引线智能承受温度 85 度左右)
[*]无需外部元件,独特的单总线接口
[*]输出引线:红色(VCC)、黄色(DATA)、黑色(GND)

产品应用
1.   冷藏库温度监测2.   药厂 GMP 检测系统3.   电信机房监控4.   啤酒Th产5.   楼宇自控6.   仓库温度监测7.   环境监测8.   过程温度监测9.   空调监测10.    孵化温度控制11.    养殖业温度测量12.   温室大棚温度监测13.    家用冰箱
接线方式
(DS18B20 数字温度探头   输出引线)
DS18B20 数字温度探头 <------> Arduino Nano
                        VCC      <------>      3.3V                         GND      <------>   GND                        DATA   <------>      5
程序测试——读取温度值
编写打印串口程序,观察DS18B20 数字探头检测到的温度
Mixly图形化编程程序

(串口打印程序)
把DS18B20 数字温度探头放入温水中,串口监视器显示温度上升。

(温度值)
程序实现代码
读取温度值
#include <DallasTemperature.h>
#include <OneWire.h> DeviceAddress insideThermometer; OneWire oneWire_5(5);
DallasTemperature sensors_5(&oneWire_5); float ds18b20_5_getTemp(int w) { sensors_5.requestTemperatures();
if(w==0) {
return sensors_5.getTempC(insideThermometer);
}
else {
return sensors_5.getTempF(insideThermometer);
}
}
void setup(){ sensors_5.getAddress(insideThermometer, 0);
sensors_5.setResolution(insideThermometer, 9); Serial.begin(9600);
}
void loop(){ Serial.println(ds18b20_5_getTemp(0));
}DS18B20 数字温度探头基础小案例温度传感器检测到温度高于 40 度时,点阵模块显示伤心图案,温度小于 40 度时,点阵模块显示爱心图案。

接线方式


(MAX7219 点阵显示模块)
DS18B20 数字温度探头    <------>      Arduino Nano
                  VCC                <------>      3.3V               GND                <------>      GND               DATA            <------>       5
MAX7219 点阵显示模块<------>    ArduinoNano
                   DIN               <------>    11                   CS               <------>   9                   CLK               <------>    13                  VCC             <------>   5V                   GND            <------>   GND
Mixly 图形化编程程序
对点阵模块进行初始化设置,亮度设为 1,将两个图案进行设计。如果温度传感器检测到温度是小于 40 度,点阵图案为爱心图案,否则,就是检测到温度大于等于   40 度,点阵图案为伤心图案。

程序实现代码
#include <Adafruit_GFX.h>
#include <DHT.h>
#include <Max72xxPanel.h>
#include <SPI.h> uint8_t   LEDArray;
Max72xxPanel myMatrix = Max72xxPanel(9,1,1); DHT dht5(5, 11);
uint8_t A={0x00,0x18,0x3c,0x7e,0xff,0xff,0x66,0x00}; uint8_t B={0x00,0x08,0x34,0x6e,0xf7,0xef,0x66,0x00}; void setup(){
dht5.begin();
}
void loop(){
if (dht5.readTemperature() < 40) { for(int i=0; i<8; i++)
{
LEDArray=A;
for(int j=0*8; j<0*8+8; j++)
{



else

if((LEDArray&0x01)>0) myMatrix.drawPixel( j, 7-i,1);

myMatrix.drawPixel( j, 7-i,0); LEDArray = LEDArray>>1;
}
}
myMatrix.write();
} else {
for(int i=0; i<8; i++)
{
LEDArray=B;
for(int j=0*8; j<0*8+8; j++)
{



else

if((LEDArray&0x01)>0) myMatrix.drawPixel( j, 7-i,1);

myMatrix.drawPixel( j, 7-i,0); LEDArray = LEDArray>>1;
}
}
myMatrix.write();
}
}
页: [1]
查看完整版本: 基于 Arduino 使用 DS18B20 数字温度探头