找回密码
 立即注册

QQ登录

只需一步,快速开始

基础模块资料库

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



产品介绍

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

130.jpg

(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.    家用冰箱

接线方式

131.jpg
(DS18B20 数字温度探头   输出引线)

DS18B20 数字温度探头 <------>   Arduino Nano
                          VCC      <------>      3.3V
                         GND      <------>     GND
                        DATA     <------>        5

程序测试——读取温度值

编写打印串口程序,观察DS18B20 数字探头检测到的温度

Mixly图形化编程程序

132.jpg

(串口打印程序)

把DS18B20 数字温度探头放入温水中,串口监视器显示温度上升。

133.png
(温度值)

程序实现代码

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

接线方式

134.jpg

(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 度,点阵图案为伤心图案。

135.png

程序实现代码

  1. #include <Adafruit_GFX.h>
  2. #include <DHT.h>
  3. #include <Max72xxPanel.h>
  4. #include <SPI.h> uint8_t   LEDArray[8];
  5. Max72xxPanel myMatrix = Max72xxPanel(9,1,1); DHT dht5(5, 11);
  6. uint8_t A[8]={0x00,0x18,0x3c,0x7e,0xff,0xff,0x66,0x00}; uint8_t B[8]={0x00,0x08,0x34,0x6e,0xf7,0xef,0x66,0x00}; void setup(){
  7. dht5.begin();
  8. }
  9. void loop(){
  10. if (dht5.readTemperature() < 40) { for(int i=0; i<8; i++)
  11. {
  12. LEDArray[i]=A[i];
  13. for(int j=0*8; j<0*8+8; j++)
  14. {



  15. else

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

  17. myMatrix.drawPixel( j, 7-i,0); LEDArray[i] = LEDArray[i]>>1;
  18. }
  19. }
  20. myMatrix.write();
  21. } else {
  22. for(int i=0; i<8; i++)
  23. {
  24. LEDArray[i]=B[i];
  25. for(int j=0*8; j<0*8+8; j++)
  26. {



  27. else

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

  29. myMatrix.drawPixel( j, 7-i,0); LEDArray[i] = LEDArray[i]>>1;
  30. }
  31. }
  32. myMatrix.write();
  33. }
  34. }
复制代码

分享至 : QQ空间
收藏

0 个回复

您需要登录后才可以回帖 登录 | 立即注册