Pages: [1]   Go Down
Author Topic: No output using DFRobot Arduino LCD shield  (Read 1808 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Newbie
*
Karma: 0
Posts: 17
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I've got some problem here when I combined my microcontroller which is Arduino Duemilanove 328 and my Arduino LCD Shield, here all the product specification, result and my source code.

Product Specification







More about product specification

Code:
http://www.robotshop.com/dfrobot-lcd-keypad-shield-arduino-3.html

My Result



Code:
#include <LiquidCrystal.h>

LiquidCrystal lcd(8, 9, 4, 5, 6, 7);

void setup() {

lcd.begin(16, 2);
lcd.setCursor(0,0);
lcd.print("hello, world!");
}

void loop()
{}

Is there any mistake that I've been made?
« Last Edit: February 20, 2011, 09:32:20 am by zolofy » Logged

Western New York, USA
Offline Offline
Faraday Member
**
Karma: 32
Posts: 4259
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Is there any mistake that I've been made?
You don't need the lcd.setCursor(0,0); statement, but it won't hurt either.

Your LCD controller is not being initialized properly, hence the row of blocks on the top line of the display.  This would happen if your LiquidCrystal lcd() statement was incorrect but yours is correct for the 'Pin Allocation' information that you posted.  This would also happen if the R/W line were not dealt with properly.

When I Googled 'dfrobot lcd shield' I found the source of your information on the fourth Google hit.  The first two hits I got are different and are the same as the link that you posted, each mentioned that pin 10 is also used so I thought that this could be how the R/W pin is implemented.  Their wiring diagram, which they mistakenly call a schematic, shows R/W grounded so there is a discrepancy here which has to be checked out.

I would start by checking the solder connections between the LCD board and the shield.  


Don
« Last Edit: February 20, 2011, 04:58:07 pm by floresta » Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 17
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I've already checked it twice plus I've checked with another same LCD shield which is the result also doesn't change at all.
Logged

Central MN, USA
Offline Offline
Tesla Member
***
Karma: 72
Posts: 7171
Phi_prompt, phi_interfaces, phi-2 shields, phi-panels
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Is your arduino working? Have you tested it with blink?
Logged


0
Offline Offline
Newbie
*
Karma: 0
Posts: 17
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Yes it is working, I've already done several program using my Arduino Microcontroller.
Logged

Illinois
Offline Offline
Jr. Member
**
Karma: 0
Posts: 72
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Try this code.  It works on my lcd shield. Make sure you have
the LiquidCrystal.h    library loaded.  I did not see it on your
sample code.  I am using an Arduino Uno.  don't know  if that
is operationally different from your processor.



RWW
Code:
//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
 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;
     }
 }
 
}

« Last Edit: February 22, 2011, 01:03:32 am by RogerW » Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 17
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

OK problem solved, my ATMega 328 IC got some problem.
Logged

Central MN, USA
Offline Offline
Tesla Member
***
Karma: 72
Posts: 7171
Phi_prompt, phi_interfaces, phi-2 shields, phi-panels
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

OK problem solved, my ATMega 328 IC got some problem.

Well, you said your arduino was working? A slight change of story, ah?

So how did you figure out the 328 was not working, just for the sake of all that tuned in to your problem?
Logged


Pages: [1]   Go Up
Jump to: