docs

a slatepencil documentail site

View on GitHub

DS18B20 temperature sensor

hardware

wire

DS18B20 Arduino
+ 5v
out 7
- GND
I2C LCD Arduino
GND GND
VCC 5v
SDA A4
SCL A5

code

/********************
* Digital Temperature Sensor - DS18B20
*********************/
#include <OneWire.h>
#include <LiquidCrystal_I2C.h>
#include <DallasTemperature.h>
#include <Wire.h>

// set the lcd address to 0x27 for a 16 chars and 2 line display
LiquidCrystal_I2C lcd(0x27, 16, 2);
#define ONE_WIRE_BUS 7  // DS18B20 module attach to pin 7

// Setup a oneWire instance to communication with
// any OneWire devices (not just Maxim/Dallas temperature ICs)
OneWire oneWire(ONE_WIRE_BUS);
// Pass our oneWire reference to Dallas Temperature.
DallasTemperature sensors(&oneWire);
void setup() {
  Serial.begin(9600);
  sensors.begin();  // initialize the bus
  lcd.init();
  lcd.backlight();
}

void loop() {
  // call sensors.requestTemperatures() to issue a global temperature
  // request to all devices on the bus
  sensors.requestTemperatures();
  lcd.setCursor(0, 0);
  lcd.print("TempC: ");
  Serial.print("TempC: ");
  lcd.print(sensors.getTempCByIndex(0));
  Serial.print(sensors.getTempCByIndex(0));
  lcd.print(char(223));  // symbol for celsius
  Serial.print(char(223));
  lcd.print("C");
  Serial.println("C");

  lcd.setCursor(0, 1);
  lcd.print("TempF: ");
  Serial.print("TempF: ");
  lcd.print(1.8 * sensors.getTempCByIndex(0) + 32.0);
  Serial.print(1.8 * sensors.getTempCByIndex(0) + 32.0);
  lcd.print(char(223));
  Serial.print(char(223));
  lcd.print("F");
  Serial.println("F");
  Serial.println("");
  delay(1000);
}