Arduino Uno + LCD Keypad Shield

Hello,

I'm new to Arduino and trying to figure out the following:

In possession I have a Arduino Uno and a LCD Keypad Shield and some other components:

|500x375

The easiest way to get this working is to click the LCD shield into the Arduino. But... I also want to add extra sensors like for instance a sound module.

How can I realise this? I have standard stuff from the kit available like jumpers, a breadboard and more..

If anyone has more information for me I would really appreciate it!

The easiest way to get this working is to click the LCD shield into the Arduino.

You probably should read the 'sticky' post that heads up this forum section (Warning to users of some vendors LCD keypad shields).

Unless someone has come up with a transparent shield the LCD keypad shield obviously goes on top of any other shields you might be using. It uses six digital I/O pins for the LCD and one 'analog' pin for the keypad. The other I/O pins are brought out to pads to which you can connect your sensors.

Don

Yeah, the Arduino form factor especially with shields is very bread board unfriendly. The Teensy boards are really nice if you want to do lots of breadboarding: https://www.pjrc.com/teensy/ as they plug right into the breadboard.

You have a couple of options, As Don said you can use the unused pins by using the holes along the edge of the LCD shield.

Another possibility would be to use the proto shield under the LCD shield. You could add components to that shield (if they are small enough) that use the available pins or add some 3 or 4 pin headers (power/gnd/signal, or power/gnd/sig1/sig2) so you can then run 3 or 4 pin header cables that slip under the LCD shield to the attached headers that connect to your sensors. One combination that would be useful would be a 4 pin header for power, gnd and the 2 i2c signals. That way you could chain all your i2c sensors off that single 4 pin header.

Another possibility is that the shield may have some holes for some of the unused pins. My LCD shield is different from yours but on the right side of the LCD on the bottom of the PCB there are 7 holes on .1" spacing that could be used to solder a header to.

Those 7 holes on mine are some of the unused pins and I think power.

--- bill

You appear to have the same display shield as me. Every pin the shield does not use is available as a vacant solder pad. The buttons use one pin only, I believe it is pin 14. You can also use the spares to jump to in event of a pin clash.

Mine uses pin 4 but this is reserved for SD select. This necessitated cutting pin 4 off and running a jumper to pin 16. Pin 4 is the only pin you are likely to have trouble with. Anything else is probably down to bad planning and can be fixed elsewhere.

Don't be tempted to cut any pins off until you are sure you need to and, if you must run a jumper, do it on the LCD board, not downstairs on the proto board.

Thanks for the answers.

I’m not good at programming with Arduino, so I’ll be asking some things till I get this straight :wink:

The LCD Shield pad has got some holes alongside the edge. Is it possible for me to connect these holes to a breadboard with the female to female cables? Or do I need to buy something else so this would fit exactly?

It would be better to solder in a socket row similar to those on your Uno. Just sticking the pins in the holes will work, but not regularly enough for you to keep thinking its a good idea. Solder might sound a dreaded word but if you want to do this sort of thing, now is a good time to commit yourself.

Hello Nick,

At this point I don't have the stuff to solder it. I did order the following.. Hopefully this will work!

|500x375

"Pin header female 40 pin"

If it isn't soldered into place, I think it would just move the problem rather than solve it. You would be better off just using a bare wire, threading it through the hole, and twisting it back on itself.

I am new to this field too, and have the same setup as op.

I just wanted to see if my lcd works and I plugged it right on top of my uno. I then copied this sketch I got at site I bought this from, here at bottom of page.

http://www.dipmicro.com/store/SHIELD-LCDKEY-B

I compiled and uploaded it to uno. All I get is a back lit, lcd screen, no text, even when I push the buttons.

Is it possible I have a faulty lcd?

OmegaOm: Is it possible I have a faulty lcd?

Yes, but not likely.

I think the software is suss. Even though a keypad shield is different from a bare LCD, the same principles follow if you are using the LiquidCrystal library. I believe it should call for six pin, not seven.

So try this line instead

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

Note the call for pin 13 is deleted. It is what I used

Nick_Pyner: Yes, but not likely.

I think the software is suss. Even though a keypad shield is different from a bare LCD, the same principles follow if you are using the LiquidCrystal library. I believe it should call for six pin, not seven.

So try this line instead

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

Note the call for pin 13 is deleted. It is what I used

Thanks for advice. Tried it. I still get same out come. Back light on, no text. I just tried Liquid Crystal example sketches and still same effect.

Remember to adjust the backlight intensity - it is often the cause why u cannot "see" the characters.

The LiquidCrystal examples are for bare LCDs, which are wired differently.

Even though a keypad shield is different from a bare LCD, the same principles follow if you are using the LiquidCrystal library. I believe it should call for six pin, not seven.

That would depend upon how the shield is wired. If the R/W pin (pin 5) of the LCD is connected to GND then the 6 number constructor would be correct. If the R/W pin is connected back to one of the Arduino I/O pins then the 7 number constructor would be appropriate.

I think the software is suss.

Agreed. The connection description at the top of the program does not mention any connection between the R/W pin and the Arduino, yet the constructor implies that R/W is connected to pin 13.

You can use the constructor with 7 numbers even if R/W is connected to GND, all it will do is turn off the LED on pin 13 when you run it. Just don't connect anything else to pin 13.

Don

If memory serves me correctly, connecting R/W to ground simply turns off read i.e. the LCD becomes write only.

And connecting R/W to your Arduino still does not permit you to read the LCD with the current LiquidCrystal library so there is no reason not to connect it to GND and free up the I/O pin.

Don

Thanks for all your help guys. Still I get no character displayed. I tried all kinds of sample code related to my device, including sketch I found here, that uses a lcdkeypad h library that takes no arguments when initiating lcd object.

http://dimme.net/arduino-lcd-keypad-shield-clock-application/

It seems I have a faulty device, great for a beginner.

Unless problem has to do with back light being too bright as aisc said. I how ever do not know how to change that, but looking closely at the screen it does not seems that is the problem.

It seems I have a faulty device, great for a beginner.

Not likely.

Unless problem has to do with back light being too bright as aisc said.

Even more unlikely.

Have you tried something simple like this:

#include <LiquidCrystal.h>

//LiquidCrystal lcd(RS, E, D4, D5, D6, D7);
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);         // your pin numbers

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

void loop()
  {
  }

Don

thanks Floresta, just tried it, but still doesnt work. Just back light on thats it. Even tried the blink sketch to see if uno is still working and it works.

OmegaOm-- Have you tried adjusting the contrast potentiometer--the blue component in the upper left corner when looking at the shield with the buttons at the bottom. Don's code should be working with that shield, but if the contrast is set wrong you may not see the characters.