Attiny85 5110LCD DS18B20 Thermometer
Intro: Attiny85 5110LCD DS18B20 Thermometer
I was able to make a simple termometer with Attiny85 microcontroller.A small price, small dimensions, low power and low voltage.
STEP 1: Parts:
For this project you need a some parts:
1: Attiny85 uC
2. Nokia 5110 LCD
3. DS18B20 + 4,7K ohm resistor
4. Breadbord + jumper wire
STEP 2: NOTICE:
Is possible error for uploading code on Attiny85. I would recommend using the arduino 1.0.5 Ide ( i use 1.0.6) and it should work just fine.You need a tinyPCRELpatch. Extract from zip and copy file to C:\Program Files (x86)\Arduino\hardware. Then you should not have problems with upload. Also copy a libraries in C:\Users\(your user)\Documents\Arduino\libraries.
STEP 3: Upload Code;
#include <OneWire.h>
#define ONEWIRE_BUSS 4
OneWire TemperatureSensor(ONEWIRE_BUSS);
#include
// SCK (CLK) ------- Attiny85 pin 5
// MOSI (DIN)------- Attiny85 pin 6
// DC (register select) ------- Attiny85 pin 7
// RST ------- Attiny85 pin 2
// CS (CE) ------- to GND
//LCD5110 myGLCD(0, 1, 2, 3, 6); //D6 don't exist - conect CS to GND
extern uint8_t BigNumbers[];
void setup(void) {
myGLCD.InitLCD();
myGLCD.clrScr();
}
void loop(void) {
myGLCD.setFont(BigNumbers);
byte i;
byte data[12];
int16_t raw;
float t;
TemperatureSensor.reset(); // reset one wire buss
TemperatureSensor.skip(); // select only device
TemperatureSensor.write(0x44); // start conversion
delay(1000); // wait for the conversion
TemperatureSensor.reset();
TemperatureSensor.skip();
TemperatureSensor.write(0xBE); // Read Scratchpad
for ( i = 0; i < 9; i++) { // 9 bytes
data[i] = TemperatureSensor.read();
}
raw = (data[1] << 8) | data[0];
t = (float)raw / 16.0;
myGLCD.printNumF(t, 1, CENTER, 14);
}
STEP 4: Specifications:
Working voltage 3 - 3.3 V
Current 5mA
15 Comments
stp715a 5 years ago
EmanG12 5 years ago
could i use atmega32 instead of attiny85 ? if yes, which library i could use?
Mic100 6 years ago
Thank you for that instrctable :)
Work fine with Arduino 1.8.3
powered by Li-ion 3.7V 120mA
mattenpatten 6 years ago
Hello is there a schematic to ?
Mic100 6 years ago
her is my schematic from Kicad 4.2
Nice Day Mic100
mattenpatten 6 years ago
thkx
mattenpatten 6 years ago
thank you
hemanthk13 7 years ago
Just wired LCD without thermometer
hemanthk13 7 years ago
Full documentation of the LCD library used here .. https://github.com/chapuzzo/ardusketches/blob/master/libraries/LCD5110_Basic/LCD5110_Basic.pdf
chiskas2 7 years ago
Hi!
Thank you for this instrutable. Very interesting!
Could you please clarify the input voltage? are you using the AtTiny version for 3V or the 5V working at 3V?
MisloElectronics 7 years ago
ATTiny work for 3 - 5 V and display work 3 - 3.3 V
diy_bloke 7 years ago
your #include 'libary' is empty
MisloElectronics 7 years ago
#include <LCD5110_Basic.h>
download a zip file :)
diy_bloke 7 years ago
tnx, I missed that
luisfranco1990 8 years ago
hi i like your project.. im try to do some like, but i want to change the thermometer for a resistive divider in a regular arduino i just make a analogRead, can i used the lcd code and change the temp code just for a analogRead?
thanks!