Arduino LCD 16*2 Shield

Hi there …
recently I purchase an Arduino LCD16*2 Shield for my UNO!
I upload the codes to my UNO but nothing shown on the LCD!
I tried the LCD test code, but nothing happened again!
I attached the LCD display picture while working, I pushed the buttons but there is no change on it!

I tested this code and library, any Idea? what should I do to run it?

#include <LiquidCrystal.h>
#include <LCDKeypad.h>
//contrast step
#define DELTA 10
LCDKeypad lcd;
//initial backlight
unsigned char bckl=150;
void setup(){
 pinMode(10, OUTPUT);
 analogWrite(10, bckl);
 lcd.begin(16,2);
 lcd.clear();
 lcd.print("    Aadjust");
 lcd.setCursor(0,1);
 lcd.print("   Backlight");
 delay(1000);
}
void loop(){
 int btn;
 lcd.clear();
 lcd.print("Up and down keys");
 lcd.setCursor(0,1);
 lcd.print("Backlight:");
 lcd.print(bckl);
//infinite loop of setting backlight
 while(1)
 {
 //wait for button
 lcd.blink();
 while ((btn=lcd.button())==KEYPAD_NONE)
 {
 }
 delay(50);
 lcd.noBlink();
 //wait for button release
 while(lcd.button()!=KEYPAD_NONE)
 {
 }
 //adjust the backlight
 if (btn==KEYPAD_UP)
    {
      if ((0xFF-DELTA)>=bckl)
        bckl +=DELTA;
      else bckl = 0xFF;
    }
    else if (btn==KEYPAD_DOWN)
    {
      if (DELTA<=bckl)
        bckl -= DELTA;
      else bckl = 0;
    }
 lcd.setCursor(0,1);
//clear second LCD line
 lcd.print("                ");
 lcd.setCursor(0,1);
 lcd.print("Backlight:");
 lcd.print(bckl);
 //set new backlight
 analogWrite(10, bckl);
 }
 }

Well, for a start, you need to provide the actual Web links for any and all modules you are using.

Then you need to explain where you found that code.

Then you need to explain - a perfectly focussed picture in good uniform light would probably be very helpful - what "not working" actually means. It might have to do with whether the backlight lights up, whether anything at all shows on the LCD, and so on.

Well, I found the code from the below web page: http://www.scienceprog.com/testing-lcd-keypad-shield-for-arduino/ and I tried this code too, that it doesn't worked! http://www.dfrobot.com/wiki/index.php?title=Arduino_LCD_KeyPad_Shield_(SKU:_DFR0009)

I just want to test and start using this shield! but How? I think it's related to the codes and pins number... My LCD Shield is the same as the pictures in the second link, I mount it on an Arduino UNO ... both of them are working, but while matching them together, nothing appear on the display as the picture showed.

Surely you bought your Shield from somewhere. Please post a link to the Ebay page, or wherever.

If you bought it from the back of a lorry, there may not be a website. In which case, you Google for the item that you have in your hands. Compare photos, descriptions etc until you find your exact Shield, and post a link to that page.

The beauty of Arduino shields is that they only plug in one way. You tell us the Shield and we know all the connections. And we know your wiring will always be correct.

Libraries for your Shield tend to come with examples that will work first time.

David.

paddesky: Well, I found the code from the below web page: http://www.scienceprog.com/testing-lcd-keypad-shield-for-arduino/ and I tried this code too, that it doesn't worked! http://www.dfrobot.com/wiki/index.php?title=Arduino_LCD_KeyPad_Shield_(SKU:_DFR0009)

I just want to test and start using this shield! but How? I think it's related to the codes and pins number... My LCD Shield is the same as the pictures in the second link, I mount it on an Arduino UNO ... both of them are working, but while matching them together, nothing appear on the display as the picture showed.

Why aren't you using the code right there on that DFRobot.com page or are you deliberating trying to make it difficult on yourself ? ? ?

Well you know how to make your text boldfaced, and you don't know how to make a link active, but the real problem is that you have not yet identified exactly which LCD shield you are using.

Until you correctly identify the specific shield that you have then neither you or anyone else can determine which I2C library is appropriate. It's as simple as that.

Don

Hi everybody … Thanks for your keen responses … I said the Shield model above!
this is the shield web address
and this is that website which I purchased it from there!

I attached some photos of the shield, I just want to run it as a normal device!
I tried the default codes, but nothing happens.

I tested the codes from the below address:

both <LiquidCrystal.h> and <LCD4Bit_mod.h> libraries:

ahhh :frowning:

Surely you plug one LCD shield into your Uno. Then upload the example code that comes with the shield.

If you just get black boxes like the middle photo, there is a serious problem.

Once you have verified the LCD shield, you can try the sandwich shield with it.

In other words, just try one step at a time.

Your last photo shows unsoldered jumper wires stuffed into plated through holes. This is unwise (tm).

David.

david_prentice: Surely you plug one LCD shield into your Uno. Then upload the example code that comes with the shield.

If you just get black boxes like the middle photo, there is a serious problem.

Once you have verified the LCD shield, you can try the sandwich shield with it.

In other words, just try one step at a time.

Your last photo shows unsoldered jumper wires stuffed into plated through holes. This is unwise (tm).

David.

I uploaded the LCD Shield testing code example in the UNO, but black boxes still exist ! :-( what is the solution? where is the problem?

The shield contrast popotentiometer dosn't work ... I mean it hase no effect to the back-light of the LCD!

You appear to be confused. The potentiometer is in no way related to the backlight. What did you actually mean?

Another two things worry me. One is the picture showing an LED plugged into pin 13 and ground without a current limiting resistor.

The other is that the picture on the website from which you purchased it suggests that it may be the faulty version detailed in the topmost post on this subject board.

Did you actually try this code from the DFRobot site?

//Sample using LiquidCrystal library
#include <LiquidCrystal.h>

/*******************************************************

  This program will test the LCD panel and the buttons
  Mark Bramwell, July 2010

********************************************************/

// select the pins used on the LCD panel
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);

// define some values used by the panel and buttons
int lcd_key     = 0;
int adc_key_in  = 0;
#define btnRIGHT  0
#define btnUP     1
#define btnDOWN   2
#define btnLEFT   3
#define btnSELECT 4
#define btnNONE   5

// read the buttons
int read_LCD_buttons()
{
  adc_key_in = analogRead(0);      // read the value from the sensor
  // my buttons when read are centered at these valies: 0, 144, 329, 504, 741
  // we add approx 50 to those values and check to see if we are close
  if (adc_key_in > 1000) return btnNONE; // We make this the 1st option for speed reasons since it will be the most likely result
  // For V1.1 us this threshold
  if (adc_key_in < 50)   return btnRIGHT;
  if (adc_key_in < 250)  return btnUP;
  if (adc_key_in < 450)  return btnDOWN;
  if (adc_key_in < 650)  return btnLEFT;
  if (adc_key_in < 850)  return btnSELECT;

  // For V1.0 comment the other threshold and use the one below:
  /*
    if (adc_key_in < 50)   return btnRIGHT;
    if (adc_key_in < 195)  return btnUP;
    if (adc_key_in < 380)  return btnDOWN;
    if (adc_key_in < 555)  return btnLEFT;
    if (adc_key_in < 790)  return btnSELECT;
  */


  return btnNONE;  // when all others fail, return this...
}

void setup()
{
  lcd.begin(16, 2);              // start the library
  lcd.setCursor(0, 0);
  lcd.print("Push the buttons"); // print a simple message
}

void loop()
{
  lcd.setCursor(9, 1);           // move cursor to second line "1" and 9 spaces over
  lcd.print(millis() / 1000);    // display seconds elapsed since power-up


  lcd.setCursor(0, 1);           // move to the begining of the second line
  lcd_key = read_LCD_buttons();  // read the buttons

  switch (lcd_key)               // depending on which button was pushed, we perform an action
  {
    case btnRIGHT:
      {
        lcd.print("RIGHT ");
        break;
      }
    case btnLEFT:
      {
        lcd.print("LEFT   ");
        break;
      }
    case btnUP:
      {
        lcd.print("UP    ");
        break;
      }
    case btnDOWN:
      {
        lcd.print("DOWN  ");
        break;
      }
    case btnSELECT:
      {
        lcd.print("SELECT");
        break;
      }
    case btnNONE:
      {
        lcd.print("NONE  ");
        break;
      }
  }
}

Yup I tried that code before without any result, I upload the code again but nothing happened as same as before attempts …
I don’t know what should I do!? on the paper everything is Ok, but while doing it, No answer …

Well, I cannot help beyond that. I have now tried that code with that shield and apart from the fact that the backlight does not light up because the wiring fault on my shield has been safely corrected (not easy), and the threshold values for detecting the buttons are slightly wrong since they actually have to be "tweaked" for each individual shield, when illuminated by a torch :grin: , the display correctly responds to the buttons.

Obviously you would have checked to see that no pins are missing (except the D10 pin which can be removed to prevent damage due to the wiring fault in the original board, fixed in the "Version 1.0").

While it is possible that the shield is faulty, I have a nasty suspicion that the code is in fact not actually uploading to your UNO.

Ok friends … its working now, the problem wasn’t from code or boards, it was from mounting the LCD shield on the Arduino! I pressed on it with more power, and everything went ok.
thanks everybody

Measure V,I,KW,KVAR,KWH,PF

|281x500

|500x281

|281x500

Has anyone ever done a "life expectancy" survey on Forum members?

David.

david_prentice: Has anyone ever done a "life expectancy" survey on Forum members?

David.

What do you mean by those words? :-O

OK, I will break the tease.

We suspect you are connecting a transformer to the mains using clip-leads.

I have the same suspect!