Hello! Today I will be introducing Character LCDs and showing how to connect them to an Arduino.
It is all very simple and uses only 6 PINS TO INTERFACE WITH!

Note: the image is not mine and comes from http://www.micro-examples.com/public/microex-navig/doc/078-lcdscope.html

Step 1: Parts needed

You will need the following components to perform this project:
1x '''Arduino (any kind will do)'''
1x '''HD44780 character LCD'''
'''lots of non-stranded wire'''
One 10k Potientiometer
<p>hai </p><p>Where can I find the Arduino source code for the LCD scope please</p><p>Kind regards</p>
<p>BYTE isn't declared in this scope :/ </p>
<p>You can fix that by changing the line &quot;lcd.print(1, BYTE);&quot; to &quot;lcd.write(byte(1));&quot;</p><p>It should do the exact same thing</p>
<p>Thanks a lot man!! Really!!!</p>
Or just use http://custom-character.appspot.com/ Google python app to create the characters without having to install Wine on linux to get this to work.
Hi, this instructable is exactly what i have been looking for but i am having a problem downloading the custon character creator it keeps wanting to download as a .tmp file amd my computer keeps asking if i want to go online to find a program to open it , which does not work either. I am using a Windows Vista machine. Is this the only character creator that will work with my Arduino? Your help in this matter will be greatly appreciated.<br /> <br /> Thank you
change the .tmp to .exe that works for me because i had the same problem<br>
you do know that the pot has to be connected to GND - LCD3 - +5volt. yet it will probably work your way.
thank, i use AVR and this help me much
Hmm, i must be doing something wrong because when I hooked it up and ran the code, all I saw on the first line was squares, nothing else. When i was looking at it from an angle I saw an 'o' and saw a cursor blinking but that's about it... Wired it up exactly like the image, but didn't seem to work. Also, in the Arduino code, it says pin 11 is RW, but on the image, there is no pin 11 connected, and RW on my LCD module is actually pin 5... I tried rewiring it according to the comments in the Arduino code, but then the boxes didn't even come up, so i'm at a loss...<br />
Hi there. Hopefully I can field this one.<br /> I've just been creating my own symbols for use on a weather station I'm making.<br /> I've found out that the arduino IDE (0.17 at least, not sure about&nbsp; 0.18) and the LiquidCrystal library that comes with it is only capable of assigning 8 custom characters.<br /> Hopefully someone knows of a workaround or can supply us with a library.<br /> Also, the 5x8 matrix is a technical limitation to do with how the LCD is made and controlled, completely different approach than graphical LCDs.<br /> If you wanted to use a 6x10 matrix you'd have to make each char take up 2 charactors horizontally and 2 vertically. I guess it might be possible, but you'd end up with an 8x1 display.<br /> Hope I've explained this clearly enough.&nbsp;&nbsp;&nbsp;&nbsp; The Cageybee<br />
A workaround of just 8 characters.<br /> <br /> I just received my first&nbsp; arduino + 20 x 4 display 6 days ago, so don't shoot me, I'm just a beginner.<br /> <br /> As PC-programmer I normally would define all characters in the setup-part of my program, but I&nbsp; tried to define different characters in the loop part for my Arduino and... it works !<br /> <br /> Just define all characters you want in several arrays and use those to recreate the characters you want while... you're in the loop. Every time you need a new character you'll have to recreate it. &quot;Old&quot; characters will be replaced by new ones, so... you'll have to recreate the old ones&nbsp; as well if you want to use those&nbsp; again. It's probably&nbsp; easiest&nbsp; to recreate every non-standard character each time you use it.<br /> <br /> A small example which displays a smiley with and one without a nose using the same self defined character address . I've used the pins for the display (12, 11, 5, 4, 3, 2) as used in the arduino examples and you might need to change the setup part if you've got a different lcd-display.<br /> <br /> <br /> #include &lt;LiquidCrystal.h&gt;<br /> LiquidCrystal lcd(12, 11, 5, 4, 3, 2);<br /> <br /> byte smiley[8] = {<br /> &nbsp; B00000,<br /> &nbsp; B10001,<br /> &nbsp; B00000,<br /> &nbsp; B00000,<br /> &nbsp; B10001,<br /> &nbsp; B01110,<br /> &nbsp; B00000,<br /> };<br /> byte nose[8] = {<br /> &nbsp; B00000,<br /> &nbsp; B10001,<br /> &nbsp; B00000,<br /> &nbsp; B00100,<br /> &nbsp; B10001,<br /> &nbsp; B01110,<br /> &nbsp; B00000,<br /> };<br /> <br /> void setup() {<br /> &nbsp; lcd.begin(20, 4);&nbsp; <br /> }<br /> <br /> void loop() {<br /> &nbsp; lcd.createChar(0, smiley);<br /> &nbsp; lcd.write(0);<br /> &nbsp; delay (1000);<br /> &nbsp; lcd.createChar(0, nose);<br /> &nbsp; lcd.write(0);<br /> &nbsp; delay (1000);<br /> }<br /> <br /> <br />
Already noticed some mistakes in my example, sorry...<br /> <br /> I've connected the LCD as described on most pages of http://www.arduino.cc/. which is a little different as described in this article.<br /> One should replace my <br /> <br /> LiquidCrystal lcd(12, 11, 5, 4, 3, 2); &nbsp;&nbsp; - line with<br /> <br /> LiquidCrystal lcd(12, 11, 2, 7, 8, 9, 10);&nbsp;&nbsp;&nbsp; to use the setup of this instructable.<br /> <br /> Next, it's possible to create more as 8 characters using my routine, but I guess there still is a limit. With 5x8 pixels for each character one would need 1600 self defined characters to display all possibilities. ((5*8)^2)<br /> Arduino will probably not be able to do that.<br /> <br /> How ever, one should be able to create characters like the waveform-characters of this instructable by converting the outcome of analog readings (they look analog to me) to self defined characters, that won't use much memory. <br /> Besides, most of those 1600 characters won't be very useful anyway.<br /> <br />
&nbsp;is there a mac version of the program?
&nbsp;I just found this site that will create characters on any OS... all you need is a web browser.<br /> <br /> <br /> <a href="http://icontexto.com/charactercreator/" rel="nofollow">icontexto.com/charactercreator/</a>
&nbsp;hey, i really like this, and the char creator will prove invaluable over the next few days for me... i have a question though - the program generates code for a 5x8 or smaller matrix (addresses to be exact) , but what if i want to use it for a different matrix , say 6x10 for example , what would I have to add for aditional &quot;dots&quot; that are &quot;outside&quot; this 5x8 matrix? i'm studying the pattern right now but as far as &quot;outside&quot; goes- i'm kinda stuck.
Thank you for the instructable! It will help me if and when I buy LCD<br />
I suggest that you do buy one. &nbsp;I have two, and I'm very glad that I purchased them. Make sure to find cheap ones though if you don't care about the specific colors/backlights.&nbsp;
Oh sorry, can't link....=(<br />
Okay. I think I'm gonna buy that or that same but with different colors.<br /> <a href="http://www1.elfa.se/elfa~ex_en/b2b/catalogstart.do?tab=catalog" rel="nofollow">www1.elfa.se/elfa~ex_en/b2b/catalogstart.do</a><br />

About This Instructable


80 favorites

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: