savagego 发表于 2014-5-9 17:32:10

BeeG 发表于 2014-5-9 13:08 static/image/common/back.gif
我也是arduinouno啊

上拉电阻加了不?读出的结果是什么?

504835618 发表于 2014-5-10 12:48:40

一次成功{:soso_e102:}

ardiunoaihaozhe 发表于 2014-5-14 16:44:59

你的传感器是不是没插好,我的没插好时要么显示0要么就是-127

alon2000 发表于 2014-5-20 10:51:20

谢谢楼主了!!!

buqingchu 发表于 2014-5-26 12:44:01

顶一下,:lol多谢楼主

oujz123 发表于 2014-9-13 10:26:31

:dizzy:学习中

oujz123 发表于 2014-9-13 10:49:20

直接用库里面的例程也不行啊。新手上路,请问哪位耐心又有空的大神有详细点的教程,教教我这个菜鸟:dizzy:

ranqingfa 发表于 2014-9-14 00:29:10

很cool,Arduino很多库搞的过于繁琐了

ardyPro 发表于 2014-9-15 08:37:44

BeeG 发表于 2014-5-8 19:33 static/image/common/back.gif
我现在测出来的值是-127.00呢   怎么回事呢

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

dreamable 发表于 2014-9-20 21:30:33

屌炸天了啊!楼主

504835618 发表于 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_Sds(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);
}

haichaofine 发表于 2014-10-26 21:40:37

照例下载好了后,串口一直报错。连两个传感器的是串口输出错误,连一个的是输出零!后来仔细看楼主的说明,是要连下拉电阻的,这样连一个传感器和两个传感器的例程都输出温度值了!货真价实的精华帖!

fuwen0202 发表于 2014-11-16 16:57:07

啊喂,,难道木有人觉得延时200ms很过分么。。。。。。

Frank_ 发表于 2014-11-19 17:13:10

支持楼主!!!
这么好的东西,应该托管在GitHub让更多的人受益呀!

whuwolf 发表于 2014-11-30 18:57:15

这个支持零下温度测量吗,我现在用的库测不到零下。
页: 1 [2] 3
查看完整版本: DS18B20库彻底修改,say GOOD BYE to OneWire.h