极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

楼主: savagego

DS18B20库彻底修改,say GOOD BYE to OneWire.h

  [复制链接]
 楼主| 发表于 2014-5-9 17:32:10 | 显示全部楼层
BeeG 发表于 2014-5-9 13:08
我也是arduino  uno啊

上拉电阻加了不?读出的结果是什么?
回复 支持 反对

使用道具 举报

发表于 2014-5-10 12:48:40 | 显示全部楼层
一次成功{:soso_e102:}
回复 支持 反对

使用道具 举报

发表于 2014-5-14 16:44:59 | 显示全部楼层
你的传感器是不是没插好,我的没插好时要么显示0要么就是-127
回复 支持 反对

使用道具 举报

发表于 2014-5-20 10:51:20 | 显示全部楼层
谢谢楼主了!!!
回复 支持 反对

使用道具 举报

发表于 2014-5-26 12:44:01 | 显示全部楼层
顶一下,多谢楼主
回复 支持 反对

使用道具 举报

发表于 2014-9-13 10:26:31 | 显示全部楼层
学习中
回复 支持 反对

使用道具 举报

发表于 2014-9-13 10:49:20 | 显示全部楼层
直接用库里面的例程也不行啊。新手上路,请问哪位耐心又有空的大神有详细点的教程,教教我这个菜鸟
回复 支持 反对

使用道具 举报

发表于 2014-9-14 00:29:10 | 显示全部楼层
很cool,Arduino很多库搞的过于繁琐了
回复 支持 反对

使用道具 举报

发表于 2014-9-15 08:37:44 | 显示全部楼层
BeeG 发表于 2014-5-8 19:33
我现在测出来的值是-127.00呢   怎么回事呢

如果环境温度不是恰好是-127,那么就是硬件通信错误,DS18B20内置了两个错误结果,还有一个是85。如果连续读到的是这两个数之一,便可以确定要检查硬件系统了。
回复 支持 反对

使用道具 举报

发表于 2014-9-20 21:30:33 | 显示全部楼层
屌炸天了啊!楼主
回复 支持 反对

使用道具 举报

发表于 2014-9-29 22:31:44 | 显示全部楼层
本帖最后由 504835618 于 2014-9-29 22:37 编辑

谢谢LZ的程序,在原来的程序上加上了OLED显示,效果还可以,下面上程序
#include "DS18B20_S.h"
#include <U8glib.h>
//SSD1306
U8GLIB_SSD1306_128X64 u8g(13, 11, 10, 9,8);// SW SPI Com: SCK = 13, MOSI = 11, CS = 10-NC, A0/DC = 9
//DS18B20(byte pin)  连接管脚
//传感器设定为10位模式,每次转换时间<187.5ms,如果需要12位模式,请修改库文件of ds.set(0x7F);
DS18B20_S  ds(7);//pin9
void setup() {
  Serial.begin(9600);
}
void loop() {
  ds.start();//开始测量(所有传感器)
  /////////判断转换是否完成
  ///只有在三根线连接模式下有效,两根线模式下请不要使用
  //  while(!ds.ready()){
  //    delay(10);
  //  }  
  ////////////
  delay(200);//2根线连接模式
  float a=ds.get();
  Serial.println("c0=");
  if(a>200){ //CRC 校验错误
    Serial.println("CRC error");
  }
  else{  
    Serial.print(a);
  }
  //下面的不重要
  //   void set(byte n);//set(0x1F) 9位模式 delay(94) ;
                        //0x3F 10位模式 delay(188);
                        //0x5F 11位模式 delay(375);
                        //0x7F 12 位模式 delay(750)
  
   
   u8g.firstPage();  
  do {
    draw();
   }
  while( u8g.nextPage() );
  delay(1000);
   }

void draw(void) {
//u8g.setRot180();
u8g.drawLine(0,15 , 128, 15);
u8g.setFont(u8g_font_osb26);
u8g.setPrintPos(5, 55);
u8g.print(ds.get());
u8g.setFont(u8g_font_fub14);
u8g.setPrintPos(100, 55);
u8g.print(char(176));
u8g.print("C");
u8g.setFont(u8g_font_fub11);
u8g.setPrintPos(3, 12);//X,Y
u8g.print("SD18B20.Temp");
//delay(5);
}

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

发表于 2014-10-26 21:40:37 | 显示全部楼层
照例下载好了后,串口一直报错。连两个传感器的是串口输出错误,连一个的是输出零!后来仔细看楼主的说明,是要连下拉电阻的,这样连一个传感器和两个传感器的例程都输出温度值了!货真价实的精华帖!
回复 支持 反对

使用道具 举报

发表于 2014-11-16 16:57:07 | 显示全部楼层
啊喂,,难道木有人觉得延时200ms很过分么。。。。。。
回复 支持 反对

使用道具 举报

发表于 2014-11-19 17:13:10 | 显示全部楼层
支持楼主!!!
这么好的东西,应该托管在GitHub让更多的人受益呀!
回复 支持 反对

使用道具 举报

发表于 2014-11-30 18:57:15 | 显示全部楼层
这个支持零下温度测量吗,我现在用的库测不到零下。
回复 支持 反对

使用道具 举报

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

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-20 09:41 , Processed in 0.041211 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表