Go Down

Topic: 16*2 HD44780 LCD Not Working (Read 2619 times) previous topic - next topic

Clungzta

Hey Guys,
I have recently purchased an Ultimate Microcontroller Pack from Maker Shed,
http://www.makershed.com/Ultimate_Microcontroller_Pack_p/msump.htm

Which includes a LMB162ABC LCD Display (16*2 Standard HD44780 LCD)
The Display Just stays blank, im not sure whats wrong.
I'm fairly sure that ive wired it up correctly as ive rewired it 3 times.

http://www.makershed.com/product_p/mkad15.htm
http://www.seeedstudio.com/depot/lcd-162-characters-green-yellow-back-light-p-62.html?cPath=163_164

Datasheet: http://www.seeedstudio.com/depot/datasheet/LMB162ABC-Manual-Rev0.2.pdf

Schemeatic I'm using: http://arduino.cc/en/uploads/Tutorial/lcd_schem.png

Code (Modified Version of the Scroll example as on Seedstudio website):

Code: [Select]
/*
  LiquidCrystal Library - scrollDisplayLeft() and scrollDisplayRight()

Demonstrates the use a 16x2 LCD display.  The LiquidCrystal
library works with all LCD displays that are compatible with the
Hitachi HD44780 driver. There are many of them out there, and you
can usually tell them by the 16-pin interface.

This sketch prints "Hello World!" to the LCD and uses the
scrollDisplayLeft() and scrollDisplayRight() methods to scroll
the text.

  The circuit:
* LCD RS pin to digital pin 12
* LCD Enable pin to digital pin 11
* LCD D4 pin to digital pin 5
* LCD D5 pin to digital pin 4
* LCD D6 pin to digital pin 3
* LCD D7 pin to digital pin 2
* LCD R/W pin to ground
* 10K resistor:
* ends to +5V and ground
* wiper to LCD VO pin (pin 3)

Library originally added 18 Apr 2008
by David A. Mellis
library modified 5 Jul 2009
by Limor Fried (http://www.ladyada.net)
example added 9 Jul 2009
by Tom Igoe
modified 22 Nov 2010
by Tom Igoe

This example code is in the public domain.

http://arduino.cc/en/Tutorial/LiquidCrystalScroll

*/

// include the library code:
#include <LiquidCrystal.h>

// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
  // set up the LCD's number of columns and rows:
  lcd.begin(8, 2);
  // Print a message to the LCD.
  lcd.print("hello, world!");
  delay(1000);
}

void loop() {
  // scroll 13 positions (string length) to the left
  // to move it offscreen left:
  for (int positionCounter = 0; positionCounter < 13; positionCounter++) {
    // scroll one position left:
    lcd.scrollDisplayLeft();
    // wait a bit:
    delay(150);
  }

  // scroll 29 positions (string length + display length) to the right
  // to move it offscreen right:
  for (int positionCounter = 0; positionCounter < 29; positionCounter++) {
    // scroll one position right:
    lcd.scrollDisplayRight();
    // wait a bit:
    delay(150);
  }
 
    // scroll 16 positions (display length + string length) to the left
    // to move it back to center:
  for (int positionCounter = 0; positionCounter < 16; positionCounter++) {
    // scroll one position left:
    lcd.scrollDisplayLeft();
    // wait a bit:
    delay(150);
  }
 
  // delay at the end of the full loop:
  delay(1000);

}


If anyone could help out it would be greatly appreciated  :).
Thanks in Advance,
Alex

floresta

Quote
The Display Just stays blank, im not sure whats wrong.


Your type of display will be almost impossible to read if the backlight (pins 15 and 16) is not functioning so you have to get that working first.

Next you should connect the power and contrast connections (pins 1, 2, and 3).  You should be able to get a display consisting of one line of 'blocks'.

Then you really should start out with a simple sketch to make sure that your connections are correct and that your LCD is functioning correctly.  I suggest something like this:

Code: [Select]
#include <LiquidCrystal.h>

//LiquidCrystal lcd(RS, E, D4, D5, D6, D7);
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);      // put your pin numbers here

void setup()
  {
  lcd.begin(16, 2);                          // put your LCD parameters here
  lcd.print("hello, world!");
  lcd.setCursor(0,1)
  lcd.print("it works!");
  }

void loop()
  {
  }

You can follow this tutorial http://www.ladyada.net/learn/lcd/charlcd.html which explains each of the steps.  Be aware that the photos do not show the resistor that is required for the backlight.

If you still have problems then we need to see a photograph that clearly shows both ends of all of the connections between your LCD and your Arduino and we need to see the sketch that you used.

In your sketch why did you specify an 8x2 display when you are using a 16x2?


Don

Clungzta

Thanks for replying,
Ill try that code out.

Quote
Your type of display will be almost impossible to read if the backlight (pins 15 and 16)

Does the backlight run at 5V?

Quote
8x2 display when you are using a 16x2

Thats what it said to do on the Seeedstudio Website, ive tried it normally aswell.

pluggy

If you haven't got the display of the line of blocks with just power,contrast and backlight, the code is entirely irrelevant.
http://pluggy.is-a-geek.com/index.html

Clungzta

Quote
If you haven't got the display of the line of blocks with just power,contrast and backlight, the code is entirely irrelevant.

Just tried that, got the backlight to work but no blocks.

floresta

#5
Jun 28, 2012, 05:06 pm Last Edit: Jun 28, 2012, 11:06 pm by floresta Reason: 1
Quote
Just tried that, got the backlight to work but no blocks.

What size resistor did you use?  If you didn't use one then you could be overloading your power supply causing the LCD controller to stop functioning.

Don

Clungzta

Fixed it,
Thanks guys for your help, greatly appreciated.  :)

floresta

Quote
Fixed it,
Thanks guys for your help, greatly appreciated.

Now tell us what was wrong so we can pass the information on the next time someone asks.

Don

Docedison

Likely we embarrassed him...

Doc
--> WA7EMS <--
"The solution of every problem is another problem." -Johann Wolfgang von Goethe
I do answer technical questions PM'd to me with whatever is in my clipboard

floresta

Quote
Likely we embarrassed him...


What do you mean "we", Paleface?

Don

Docedison

As Always your was the masters touch... mustta be gittin old, I forgot... thought I had one of my comments there too. I did check... After you ...
Perhaps I am wrong but it would be simpler in my opinion to forget a 16X2 display, they don't say much , are very rarely made after 1982
and all you learn has to be re learned on a 20X4 any way particularly if you aspire to say anything except "Hello...". I suppose that one could
make a satisfactory clock Even display the Date too however it does become somewhat of a challenge when one attempts alarm functions for
a single user.   IMO

Doc
--> WA7EMS <--
"The solution of every problem is another problem." -Johann Wolfgang von Goethe
I do answer technical questions PM'd to me with whatever is in my clipboard

hiiiiii...on the same topic i m facing a isue,... i got that one line block display....and i checked correctly all the connections,...the example code is also running without any error,.. but the LCD is just showing me that one line block...only,.. what i do next

floresta

Quote
what i do next

First of all you should have started a new thread because your LCD is working, just not correctly.

What have you done so far?  Have you tried searching to see if anyone else has had this problem?  I searched on Google for 'LCD one line of blocks' and got more than a million hits.  I used the search box (at the upper right of the page) to look for 'LCD blocks' and got more than 8 pages of results.


Don

thegeekway


hiiiiii...on the same topic i m facing a isue,... i got that one line block display....and i checked correctly all the connections,...the example code is also running without any error,.. but the LCD is just showing me that one line block...only,.. what i do next


Check your lcd.begin() has the correct column and row count.

floresta

Quote
Check your lcd.begin() has the correct column and row count.

This would be a waste of time.  His time would be better spent reading some of the hundreds of previous posts on this topic.  He might even get some ideas on what information he could provide so he could get some more relevant assistance.

Don

Go Up