loading
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!

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!
<p>I ran into problems with compiling the referenced ShiftLCD library originally created by Chris Parish. The issue was due to Arduino 1.0 breaking compatibility. This was fixed and made available at this link: <a href="https://github.com/Chris--A/ShiftLCD_Fixed" rel="nofollow">https://github.com/Chris--A/ShiftLCD_Fixed</a></p><p>Also, programming ATtiny boards is way more simpler than when this instructable was posted. See http://highlowtech.org/?p=1695 for some info on setup and consider making your own ATtiny programmer shield for Arduino.</p>
<p>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</p>
<p>it has been a while, and i hope you found the reply, but just in case <br>someone is looking for the same answers: yes, it does make a difference <br> what orde you list the pins as the order defines datapin, clockpin, latchpin.<br>Yr program should look like this:</p><p>#include &quot;LiquidCrystal595.h&quot; // include the library or replace the &quot;&quot; by fishhooks<br>LiquidCrystal595 lcd(0,1,2); // datapin, latchpin, clockpin<br><br>void setup() {<br> lcd.begin(16,2); // 16 characters, 2 rows<br><br> lcd.clear();<br> lcd.setCursor(0,0);<br> lcd.print(&quot;Only 3 pins!&quot;);<br> lcd.setCursor(0,1);<br> lcd.print(&quot;Thats it&quot;);<br>}<br><br>void loop() {<br> // not used.<br>}<br><br>If you want to work with an LCD on a attiny84, I strongly suggest the two wire variant with a 74HC164, saves an extra pin</p><p>http://arduinodiy.wordpress.com/2014/01/12/two-wire-interface-for-lcd/</p>
<p>Thanks, i really like the 2 - wire option.</p>
<p>my pleasure</p>
<p>What would you use as a power source if you wanted this to be stand alone without using the arduino power?</p>
<p>try making a shiftregister with only two wires</p><p><a href="http://arduinodiy.wordpress.com/2014/01/12/two-wire-interface-for-lcd/" rel="nofollow">http://arduinodiy.wordpress.com/2014/01/12/two-wir...</a></p><p>... or better yet, only one</p><p>http://www.romanblack.com/shift1.htm</p>
i'm wondering if it's possible to make a thermometer using this configuration with a DS18B20 sensor...
<p>Can i just replace the original sketch command of </p><p>LiquidCrystal595 lcd(7,8,9); with</p><p>LiquidCrystal595 lcd(0,1,2);</p><p>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.</p>
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.
I used this library and it worked <br>http://code.google.com/p/arduino-lcd-3pin/ <br> <br>it is used in this instructable <br>http://www.instructables.com/id/Hookup-a-16-pin-HD44780-LCD-to-an-Arduino-in-6-sec/
Judging from the website of Chris Parish, quite some people experienced errors with the code
Would this work on an ATTINY2313
You will find a 2313 core here:<br>http://hci.rwth-aachen.de/luminet<br>I have not tried that one, but it may come in handy if the Attin85 core doesn't do it for you
I have not tried with this chip before, but I believe you can run arduino on it.<br>You can try out the Arduino Tiny core, found at http://code.google.com/p/arduino-tiny/<br>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!

About This Instructable

67,849views

136favorites

License:

Bio: I'm a software developer, but I also love tinkering with electronics. My Instructables are all about Arduino.
More by baharini:ATTiny45/85 LCD display control with a shift register, programmed in Arduino Controlling a character LCD with an Arduino How to add 6 extra pins to your Arduino with no extra hardware 
Add instructable to: