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!
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.
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.
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.
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 , 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