Arduino Interfacing with HD44780 LCD

Arduino Lcd Banner
In a previous post, I’ve shown that the HD44780 LCD can be interfaced by a computer. Please read it here if you haven’t done so. Mostly these LCDs will be interfaced by a microprocessor or a microcontroller in embedded systems.

To program a MCU to interface with an LCD is relatively simple once you’ve read the datasheet. But unfortunately the LCD that I bought was from China and it uses a HD44780 compatible controller (aka HD44780 rip-off) and the timing’s a bit off. That’s why when I tried to use it with a PIC MCU I couldn’t get it to do what I wanted. Oh yeah did I mention that the datasheet is only available in Chinese? (Yes, I’m a banana and I can’t read chinese 🙁 )

I tried to google translate it but the words just doesn’t sound right. So I thought why not try it on the Arduino and use the built-in LiquidCrystal library. Lo and behold it worked. I’ve done some googling and found out that the LiquidCrystal library has a very wide compatibility with numerous HD44780 compatible controllers.

I uploaded the SerialDisplay example so that the Arduino can read inputs from my keyboard and display it on the LCD.

Again like I’ve mentioned before, the capability of the Arduino to send and receive data from a computer is invaluable. Remember in the previous LCD Smartie post I mentioned that if you don’t have a parallel port on your computer (like a laptop) you can use USB but you need to go through a MCU? In the next post or so I’ll write about how to use LCD Smartie through Arduino. You can now check out the post here.

In the meantime, here’s a video showing the Arduino interfacing with the LCD.

Leave a Reply