14
\$\begingroup\$

I'm going to buy an Arduino Uno/Duemilanove and I would like to add a couple of shields like an LCD and a WIFI shiled.

How do I know if I can plug them both to Arduino?

\$\endgroup\$
  • 2
    \$\begingroup\$ I've just noticed this tutorial on freetronics about stacking shields. \$\endgroup\$ – Dean Apr 29 '11 at 13:46
  • \$\begingroup\$ I have no added it as an answer. \$\endgroup\$ – Dean Apr 29 '11 at 18:47
  • 1
    \$\begingroup\$ Definitely look at these go-between shields! very cool for lots of stacking... I've successfully stacked 4. sparkfun.com/products/11002 \$\endgroup\$ – Brad Apr 18 '13 at 18:54
20
\$\begingroup\$

Go to shieldlist.org and look up the shields you are going to use. Then see if they both want to use the same pins. If your shield is not on shieldlist.org then look up their schematic/datasheet.

Generally if multiple shields need to use the one pin, you can't use them together, unless those pins happen to be SPI or I2C pins. Both of these protocols use a master-slave model, with one master and many slaves. In these cases you may be able to use shields that share some or all pins.

The SPI pins are digital 10, 11, 12, an 13 by default. Pin 10 is the Slave Select pin, which is used to specify which slave you want to talk to. You will need a different SS pin for each SPI slave you want to talk to.

The I2C pins are analog 4 and 5. I2C uses device addressing to differentiate between slave devices, so there is no equivalent of Slave Select. The same two pins can be shared by all I2C devices.

Keep in mind that stacking many shields introduces various issues like increased capacitance, which may start to deteriorate the signals, including those for SPI/I2C, and cause communication failures.

| improve this answer | |
\$\endgroup\$
6
\$\begingroup\$

Freetronics have a guide on stacking various shields covering issues like:

  • Stacking Headers
  • Physical Clearance
  • Pin Contention
  • Software Interaction
  • Power Requirements
  • Radio/Electrical Interference
| improve this answer | |
\$\endgroup\$

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.