2

Is it possible to connect these two shields to my Arduino Uno? After a research on the internet, I discovered that they use some of the same pins. Even so, is it still possible for me to connect the LcdKeypad and the ArduinoWifi on my Arduino Uno? (the LCD would be on top)

Here are the pic of the shields, and some information:

LDC KEYPAD

Arduino WIFI

WiFi shield info:

The Arduino communicates with the processor WiFi shield with the microSD card by SPI (Eurotherm the ICSP bus) that is on pins 11, 12 and 13 at Uno. The pin 10 is used to select the HDG104 and pin 4 to the microSD card(i dont need the pin 4 cause i wont use SD). These pins can not be used for input and output. The digital pin 7 is used for initialization of the communication protocol between the shield and Arduino WiFi and should not be used.

LCD info:

This shield we will have to use the following sequence to initialize the library LiquidCrystal: LiquidCrystal lcd (8,9,4,5,6,7);

As you guys have noticed, there is the pin 7 on both shields that I need to use. How would it work? Can I do this? If i can't, is there any solution that I can expand my pins that would not result buying a Mega?

I still have to connect two INFRA-RED sensors and a motor (using pins 0, 1, and 2). I don't know if i can connect on the pins TX and RX (they seem to work).

1

So here are your needs:

  • WiFi, which uses pins 4, 10, 11, 12, 13. I know you said that you don't need pin 4 since no SD, but because that pin switches on/off the SD card, if you use it at all. Note: As Connor Wolf points out, it's not really relevant when there's no SD card. If you're facing problems with the Ethernet shield using the LCD additionally, you might have to reroute pin 4.
  • LCD, which uses pins 4, 5, 6, 7, 8, 9. The standard Arduino LCD library can use any pins, but your shield is hard wired to use those. As mentioned before, you can reroute them if you want to. Below is the method for rerouting pins.

Rerouting pin 7 (you need to do this!):

  • Bend pin 7 on the LCD shield and the WiFi shield outward so it doesn't make contact with the header
  • Use LiquidCrystal lcd(8,9,3,5,6,2); if you're rerouting pin 4, or LiquidCrystal lcd (8,9,4,5,6,2); in your code if you're not rerouting
  • Attach a jumper between the pin 7 on the header of the WiFi shield and the pin 7 on the Arduino Uno
  • Attach a jumper between the pin 2 of the WiFi shield (or the Uno, if that's easier) and the pin 7 of the LCD using the free space of the pin bent above it.

This will isolate pin 7 on the LCD, still send the pin 4 signal to the WiFi shield, and reroute the signal from pin 2 on your Arduino to pin 7 on the LCD shield.


Rerouting pin 4 (optional):

  • Bend pin 4 on the LCD shield and the WiFi shield outward so it doesn't make contact with the header
  • Use LiquidCrystal lcd(8,9,3,5,6,2); in your code
  • Attach a jumper between the pin 4 on the header of the WiFi shield and the pin 4 on the Arduino Uno
  • Attach a jumper between the pin 3 of the WiFi shield (or the Uno, if that's easier) and the pin 4 of the LCD using the free space of the pin bent above it.

This will isolate pin 4 on the LCD, still send the pin 4 signal to the WiFi shield, and reroute the signal from pin 3 on your Arduino to pin 4 on the LCD shield.


For number of pins, you should be fine. You can use pins 0 and 1 (TX/RX) as long as you aren't connecting to the computer or any other UART device (i.e. using the Serial() library). Don't forget you can use the analog pins as digital pins by referencing them as A0 to A5.

  • As long as you don't have a microSD card in the microSD slot, the fact that you have a wire going there that is energized is irrelevant. You don't need to bend any pins. Just don't put a SD card in the slot. You can't "enable" something that's not physically connected. – Connor Wolf Apr 22 '14 at 0:40
  • Note: there is a voltage translator in there too, but it doesn't matter if it's not connected to something at both ends, so you can ignore it. Also, it doesn't "switch the SD card on/off" anyways. It's a chip-select line, not a power line. It just controls the bus-arbitration electronics in a already powered on SD card. – Connor Wolf Apr 22 '14 at 0:44
  • @Connor I know that you probably don't have to do that, IMO it's more of a "best practice" thing. I'm editing to clarify my post. It also prevents accidental problems if you were to plug in a SD card forgetfully. – Anonymous Penguin Apr 22 '14 at 0:47
  • If you don't have to do it, and it involves damaging one of your devices somewhat, I'd qualify it as "worst practices", rather then "best" practices. It's not like you can damage anything anyways, the level translator has limited drive capability. – Connor Wolf Apr 22 '14 at 1:07
  • Thanks guys, the but what about pin 7? it's used in both shields, and unlike the pin 4, it's something that i'll use, because it's used for the "initialization of the communication protocol between the shield and Arduino WiFi" – user3504192 Apr 22 '14 at 3:47

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.