Instructables

ATTiny45/85 LCD display control with a shift register, programmed in Arduino

Featured
Picture of ATTiny45/85 LCD display control with a shift register, programmed in Arduino
IMG_0046.JPG
Running Arduino on an ATTiny45 of 85 chip is a huge cost-saver for mini-projects. However, you cannot connect a HD44780 compatible LCD display as you require 6 outputs, but you only have 5. This issue can be solved by using a shift register to control it using only 3 pins! That means you still have 2 more left over for other use!
 
Remove these adsRemove these ads by Signing Up

Step 1: Parts needed

Here is a list of the parts you will need for this project:

1x Arduino Microcontroller (to act as the programmer, you could use an ISP to program them though.)
1x ATTiny45 / ATTiny85 microcontroller
1x 74HC595 Shift Register
1x HD44780 compatible LCD
1x LED (for testing the microcontroller)
1x Resistor for the LED (use one that is right for the specs of your LED)
1x Potentiometer for LCD contrast (You can connect the contrast to ground 
Loads of wires!

Step 2: Connecting the ATTiny to Arduino

Picture of Connecting the ATTiny to Arduino
IMG_0032.JPG
IMG_0033.JPG
IMG_0034.JPG
The ATTiny pins are numbered in picture 1.

Start by connecting ATTiny pin 4 to Ground.
Connect ATTiny pin 8 to +5V.

Next, connect the following cables from the ATTiny to Arduino:
ATTiny pin 1 to Arduino pin 10,
ATTiny pin 5 to Arduino pin 11,
ATTiny pin 6 to Arduino pin 12,
ATTiny pin 7 to Arduino pin 13.

In some cases such as using the new Uno boards, ou will need to connect a 10 microfared capacitor from the Arduino reset pin to Ground. Make sure the capacitor ground (-) is connected to round as it is polarised. In my case everything works just fine without one, but there may be some issues that I'm not aware of. If anyone is aware of any then please post them in the comments.

You are now good to go, next is the programming!

(reference: High-Low Tech)
i'm wondering if it's possible to make a thermometer using this configuration with a DS18B20 sensor...
jimpeachey4 months ago

Can i just replace the original sketch command of

LiquidCrystal595 lcd(7,8,9); with

LiquidCrystal595 lcd(0,1,2);

As you can see i am using a different library than this one but i have had it working with a shift register, just not an ATTiny85. Any help would be greatly appreciated.

jimpeachey4 months ago

Im having real problems controlling an LCD with anATTiny85 despite following several instructables. Does anyone have a full fritzing diagram for this instructable so that i can see what all the connections are supposed to be? I have been using ATTin85 pins 0 1 and 2 Does the order that you list them in the sketch make any difference? Im also not sure how using different libraries affect the way these things operate so would appreciate any help that anyone could give. Thanks

Krb68611 months ago
Very cool project, but you could also just get a 14-pin ATTiny84, which has 11 digitial I/O. I guess it's cool to learn how to add additional pins to micros though.
emdarcher2 years ago
I used this library and it worked
http://code.google.com/p/arduino-lcd-3pin/

it is used in this instructable
http://www.instructables.com/id/Hookup-a-16-pin-HD44780-LCD-to-an-Arduino-in-6-sec/
diy_bloke2 years ago
Judging from the website of Chris Parish, quite some people experienced errors with the code
qwerty1562 years ago
Would this work on an ATTINY2313
You will find a 2313 core here:
http://hci.rwth-aachen.de/luminet
I have not tried that one, but it may come in handy if the Attin85 core doesn't do it for you
baharini (author)  qwerty1562 years ago
I have not tried with this chip before, but I believe you can run arduino on it.
You can try out the Arduino Tiny core, found at http://code.google.com/p/arduino-tiny/
I know the core will work with the tiny 2313 but I am not completely sure on the ShiftLCD library. It may work just fine, or it will get a compiling error. I wish you good luck!