zoukankan      html  css  js  c++  java
  • DS18B20温度传感器知识点总结

    2018-01-1818:20:48

    感觉自己最近有点凌乱,一个很简单的问题都能困扰自己很久。以前能很好使用和调试的DS18B20温度传感器,今天愣是搞了很久,妈卖批。

    仅仅一个上拉电阻就困扰了我很久,同时也颠覆了我一直以来“电阻”无用的理论。有一些敏感元件,电阻的作用不容小觑。

    调试代码简单精简版本如下,极客工坊大神修改版

     1 #include "DS18B20_S.h"
     2 //传感器设定为10位模式,每次转换时间<187.5ms,如果需要12位模式,请修改库文件of ds.set(0x7F);
     3 DS18B20_S  ds(9);//pin9
     4 void setup() {
     5   Serial.begin(9600);
     6 }
     7 void loop() { 
     8   ds.start();//开始测量(所有传感器)
     9   float a=ds.get();
    10   delay(200);//2根线连接模式
    11   Serial.print("c0=");
    12   if(a>200){ //CRC 校验错误
    13     Serial.println("CRC error");
    14   }
    15   else{  
    16     Serial.println(a); 
    17   }
    18   
    19   //下面的不重要
    20   //   void set(byte n);//set(0x1F) 9位模式 delay(94) ;
    21                              //0x3F 10位模式 delay(188);
    22                              //0x5F 11位模式 delay(375);
    23                              //0x7F 12 位模式 delay(750);
    24 }

    中贝斯特代码《通用版代码》用到了#include <OneWire.h>#include <DallasTemperature.h>库文件

     1 //上拉电阻!!!!!!!!!!!!!!!!!
     2 #include <OneWire.h>
     3 #include <DallasTemperature.h>
     4 
     5 // Data wire is plugged into port 2 on the Arduino
     6 #define ONE_WIRE_BUS 2
     7 
     8 // Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs)
     9 OneWire oneWire(ONE_WIRE_BUS);
    10 
    11 // Pass our oneWire reference to Dallas Temperature. 
    12 DallasTemperature sensors(&oneWire);
    13 
    14 void setup(void)
    15 {
    16   // start serial port
    17   Serial.begin(9600);
    18   Serial.println("Dallas Temperature IC Control Library Demo");
    19 
    20   // Start up the library
    21   sensors.begin();
    22 }
    23 
    24 void loop(void)
    25 { 
    26   // call sensors.requestTemperatures() to issue a global temperature 
    27   // request to all devices on the bus
    28   Serial.print("Requesting temperatures...");
    29   sensors.requestTemperatures(); // Send the command to get temperatures
    30   Serial.println("DONE");
    31   
    32   Serial.print("Temperature for the device 1 (index 0) is: ");
    33   Serial.println(sensors.getTempCByIndex(0));  
    34 }

     库文件资料下载

    @青山不移,文笔不息。学习,坚持,梦想青春!
  • 相关阅读:
    编译安装httpd
    ANSIBLE安装和常用模块模块使用详细教程
    MySQL集群高可用
    MySQL数据库备份和恢复
    MySQL数据库多表查询
    MySQL语句使用。
    MySQL多实例安装教程
    二进制安装MySQL数据库
    半自动化系统安装
    c语言分别用库函数和系统函数来进行文件操作效率对比
  • 原文地址:https://www.cnblogs.com/pengwenzheng/p/8312556.html
Copyright © 2011-2022 走看看