Melabs 16*4 LCD

Having trouble connecting my Melabs Serial LCD to the arduino. I assume only the RX lcd to the TX arduino is needed. I think my problem is my code. Can any throw me some simple code to try it out. I am not really clued in on these things to treat me like an idiot because I am one.

Thanks, Andy

andycomic: I assume only the RX lcd to the TX arduino is needed.

You will certainly need to connect the ground of the LCD to the ground of the Arduino.

You will also need to supply power to the LCD.

The Quick Start Guide from melabs shows that the connection is RS232 or I2C, not Serial TTL use by Arduino. It may work if you are sending to the LCD and not receiving but the bits will probably be inverted. Perhaps you should learn to use the I2C interface.

I really dont know and cannot find any examples on this type of LCD, I assume i just do this:
void setup() { Serial.begin(9600); }
void loop()
clearLCD(); Serial.print(" Hello"); delay(5000);

// clear the LCD
void clearLCD(){
Serial.print(12, BYTE);
Do I need to tell the arduino that the lcd is on the tx port ?

All the wiring looks fine, same as this: , however when I had this working for my Oopic board I swear I only used 3 wires. - +5, G and RX

Any help is much appreciated.


Andy, care to provide a link to the spec sheet of the melabs lcd?

void loop() { clearLCD(); Serial.print(" Hello"); delay(5000); }

When dealing with the LCD, either by serial or parallel means, the display does not have to be refreshed. Once you display information it will remain there until it is overwritten or until the power is removed. Any information that is to be displayed and not subsequently changed should be dealt with in 'setup', not in 'loop'.


Hi Don, Thanks for the reply, so then void setup() { Serial.begin(9600); } void loop() { clearLCD(); Serial.print(" H"); delay(5000); }

Should be ok? It does do something but not the letter H, it displays what looks like a weird ascii character. When I press the reset button on the Arduino is displays the same character next to it.

The documentation is here: but hey, its looks like a phone book so dont waste your time, I can always just buy a SparkFun as the code and wiring is all on the Arduino tutorial

Thanks, Andy

Ok, I give up. Spent hours on this and then got another LCD with the code from the seller and the same results. If anyone here was some money then I am more than willing to pay you for your time. Please msg me. All I want to do it print out one character on an LCD. I didnt think transitioning from Oopic to Arduino would be this hard


Do you mind using parallel interface LCDs? They're not that hard to use at all.

Actually, a very minimal test program would be:

void setup()
void loop(){}

Try that first.

The "strange ascii character" sounds like a baud rate mismatch. Check jumper JP1 and JP2 and make sure your display is set for 9600. Next check JP3 - it inverts the received data stream which you would need if there was a RS232 receiver chip in line. Change it to the other position and see what happens.

tried the simple code , actually I've tried every piece of code i could find on the internet. I've even got a shield now so I can plug in the serial 4 pin cord directly into it. Most of the time all I get is solid black bars now all over the LCD. I cant convey enough how frustrating it is to just try and get one piece of code working. Can any just give me a better lcd to buy complete with code. If anyone wants my money, just pm me and I will pay you to solve this problem. My whole project is at a standstill due to this. Here is my past project: , so I am not a total retard. I am just wondering if arduino is the wrong board for me or if I have missed something simply.


You can pay less than $10 to get a parallel LCD and there's no problem. I asked you why not parallel LCD and you just ignored me. I don't think anyone would like to get paid to do your work.

sorry liudr,I wasnt ignoring you, I missed there was 2 replies at once. Ok I will try and get a new LCD. I'll post back in a couple of weeks. I was of the understanding that parallel displays take up a lot of i/o slots. I'll get one and have a try . As long as they are easier than these serial ones I will be happy.

Thanks, Andy

It takes up 6 I/O pins to be exact, when using the 4-bit mode with the LiquidCrystal library that is standard with Arduino IDE so not a lot. I have not seen anyone using the 8-bit mode in a while, except for FalconFour using all 8 bits and shift register for sync reasons. Since all HD44780 displays are supposed to be compatible, you will have much less problems than you have right now, dealing with the serial hardware Melabs made. It's one less layer of uncertainty when you have trouble making the display work.

Cool, I'll give it a go and thanks for the advice,