1
\$\begingroup\$

I'm getting started with LCD projects for Arduino, but for some reason, the LCD won't display characters.

I'm using this tutorial from the Arduino website, and this LCD with an Uno R3 board. This is the circuit diagram of my setup:

schematic

simulate this circuit – Schematic created using CircuitLab

I don't have any formal eduction in EE (yet), but I think that the issue may be that where the tutorial's diagram shows the LCD's first two pins as being Vss and Vcc, the actual pins on the LCD are marked Gnd and VDD, respectively.

The code I'm using is essentially the same as that provided on the tutorial page:

// 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(16, 2);
  // Print a message to the LCD.
  lcd.print("hello, world!");
}

void loop() {
  // set the cursor to column 0, line 1
  // (note: line 1 is the second row, since counting begins with 0):
  lcd.setCursor(0, 1);
  // print the number of seconds since reset:
  lcd.print(millis()/1000);
}

It should display "hello, world!" on the LCD. However, when I power up the circuit, the display's backlight turns on, but no text appears. Around 3 seconds after powering up, all of the LCD's characters flash full white (the screen displays white-on-blue) for a fraction of a second, before returning to a blank, backlit screen indefinitely. Turning the potentiometer does nothing, although having it set to less than 10k ohms for any more than 5 seconds causes the chip underneath the display to overheat (I already burned out one display this way by setting the pot to about 5k ohms without noticing the damage being done).

Is this a common issue? Is there a solution, or an explanation for why this happens (a dud display)?

\$\endgroup\$
  • \$\begingroup\$ For me it's a common issue whenever I hook up an LCD, either I'll get no text, or a garbled mix of text and symbols. I always wire it wrong. I just disconnect everything and start over wiring it again, making sure to wire it correctly. Another issue I've had with LCDs is a insufficient contrast setting (in software). \$\endgroup\$ – Grimtech May 28 '13 at 1:11
  • \$\begingroup\$ @Grimtech I've wired the LCD up about three or four times before this, and double-checked every time after the first one burned out. It's unlikely that it's a wiring issue; and it's not showing garbled characters, just a completely white character space. \$\endgroup\$ – Jules May 28 '13 at 1:34
  • 1
    \$\begingroup\$ Looking at the circuit I wouldn't expect the backlight to come on because BL1 & BL2 aren't connected. The datasheet shows using a 20-50K pot which might be worth trying, maybe use an 18K resistor between the pot and ground for a start and that will at least stop your current problem when turned down too low. \$\endgroup\$ – PeterJ May 28 '13 at 1:55
  • \$\begingroup\$ @PeterJ I would think so, too, but since it does, one might assume that those are just used to actually regulate the backlight brightness; the backlight itself might be powered by the VDD. The main pot is used for contrast control; a second one could be used for backlight control. \$\endgroup\$ – Jules May 28 '13 at 2:06
  • 1
    \$\begingroup\$ You can double check your wiring with this image: adafruit.com/… \$\endgroup\$ – jippie May 28 '13 at 6:49
2
\$\begingroup\$

You have probably turned the LCD Display up-side down (since you have the back lights on, it is the same pins as Vcc and Vss when its up-side down).

Other important things to check:

  • Add +5v and ground to the last two pins (the backlight) otherwise it's hard to see whats showing.
  • Check that the potentiometer is correctly connected.
\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.