loading

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

Step 5: Version With Batteries:

<p>Just wired LCD without thermometer</p>
<p>Full documentation of the LCD library used here .. https://github.com/chapuzzo/ardusketches/blob/master/libraries/LCD5110_Basic/LCD5110_Basic.pdf</p>
<p>Hi!</p><p>Thank you for this instrutable. Very interesting!</p><p>Could you please clarify the input voltage? are you using the AtTiny version for 3V or the 5V working at 3V?</p>
<p>ATTiny work for 3 - 5 V and display work 3 - 3.3 V</p>
<p>your #include 'libary' is empty</p>
<p>#include &lt;LCD5110_Basic.h&gt;</p><p>download a zip file :)</p>
<p>tnx, I missed that</p>
<p>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?</p><p>thanks!</p>

About This Instructable

7,776views

37favorites

License:

Bio: My hobby is electronics since childhood. I'm interested in Arduino, programming, drawing PCB in Eagle and solder the connections.....
More by MisloElectronics:Attiny85 5110LCD DS18B20 Thermometer Rotary Encoder LED Strip Brightness Controller Wireless PIR Sensor Alarm 
Add instructable to: