Using GPIOs in addition to LCD?

Hi all,

I bought my first Arduino Uno, a Ethernet and LCD Keypad Shield some days ago and the community here was already a great help getting running the display.

Now I played around a little bit with the Arduino and the Keypad and then one question came up: I want to use the Arduino, the Ethernet and LCD Shield next year for my greenhouse, so I can see humidity and temperature, perhaps see the soil moisture, open the windows,... Not sure if I realize all over the winter or over some years.

Nevertheless, I have some experience with Raspberry Pi and the GPIOs. I now thought "when I plug in the LCD Keypad shield, there are no free GPIOs anymore, so I could read e.g. humidity and temperature?! I would like to use the LCD to see these values or e.g. start irrigation directly standing infront of the greenhouse.

How do I resolve this? Do I need one Arduino with LCD and another one that receives / sends commands / information from the LCD Arduino? Or is there a possibility to do everything with just one Arduino? An external plug would be available.

If your LCD shield is like the common one that is available all over:

Pin AllocationPinFunction
Analog 0 Button (select, up, right, down and left)
Digital 4 DB4
Digital 5 DB5
Digital 6 DB6
Digital 7 DB7
Digital 8 RS (Data or Signal Display Selection)
Digital 9 Enable
Digital 10 Backlit Control

The rest of the analog inputs (A1-A5) and pins 0, 1, 2, 3, 11, 12, 13 are available at pads that you can solder headers or wires to.

Note the warning in red!

Hello groundFungus,

thanks a lot for your response. Solding is not really my special task, but ok. When it gets serious, I'll have to try. :wink:

BLU1:
Soldering is not really my special task, but ok.

When and if you get serious about any working in electronics, you will learn to solder. :grinning:

It is not optional. :roll_eyes:

Sparkfun has a good tutorial for soldering. There are lots of other tutorials and videos to show ths basics on the net. Lead solder is easier to use for a beginner.

With respect to the red warning in the image in response #1,
actually D10 doesn't directly drive the backlight. It connects to the base of a transistor, but do to a design flaw in many of the shields, setting D10 to high creates a short through the transistor to ground. Net result is the same; if D10 is set to HIGH it creates aa overload on the i/o pin which can potentially damage the AVR processor.
The irony is that many 16x2 backlights draw less than 30ma so had they simply wired the backlight anode to D10 it would have been ok.
See the sticky in the top of the displays forum for the gory details: Warning to users of some vendors LCD keypad shields - Displays - Arduino Forum

The hd44780 library hd44780_pinIO ioClass comes with a test sketch, LCDKeypadCheck to test for this h/w issue.
It also will auto detect this issue and work around it in s/w.

--- bill

groundFungus:
Lead solder is easier to use for a beginner.

Or indeed, anyone!.

Just don't suck on it. :grinning:

bperrybap:
The irony is that many 16x2 backlights draw less than 30ma so had they simply wired the backlight anode to D10 it would have been ok.

In fact nearly all currently available 1602 displays and all used in that shield. It is of course, a comparatively old design and use of a logic-level FET as now available, instead of a transistor would be no problem. Or one additional one cent component.