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?
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?
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.
Freetronics have a guide on stacking various shields covering issues like: