More I/O units

I recently got an Arduino Duemilanove and the only problem I have is that it has only 13 I/O units. I'm wondering if there is a way to get more I/O units ? And if there is a way, will that affect the Arduino's programming?

Check out the Shift Register / Encoder thread below. That will explain shift registers that allow you can use them to extend your I/O interfaces, or your other option is to go with a Mega board that has 54 I/O pins.

Search the forum for "multiplex".

I recently got an Arduino Duemilanove and the only problem I have is that it has only 13 I/O units. I'm wondering if there is a way to get more I/O units ? And if there is a way, will that affect the Arduino's programming?

It does? News to me! According to this page:

http://arduino.cc/en/Main/ArduinoBoardDuemilanove

...the Duemilanove has:

  • 14 Digital I/O
  • 6 Analog I/O

So - where are you getting "13"? Granted, you can't use 0 & 1 as I/O pins whenever you need serial comms - so if you need communications with a host PC or something, those two are out (unless you utilize some clever programming, among other things) - so let's call it 12 I/O lines. Perhaps, though, you application only requires listening to the host, or only transmitting data to it (possible) - then theres another line; perhaps that's where you got "13"?

Hmm - but you forgot those analog I/O lines - if you don't need analog input on one or more of those lines, you can reference them as digital lines; just reference pins 14-19 in your digital read/write statements. That expands things up to a possible 20 I/O lines, or 19, or 18 - depending on how you are using the serial I/O pins.

Really, with careful consideration of you interfacing, the Duemilanove is quite versatile and comes with a lot of options for not much money. Its one the things that drew me to it (that, and its open source nature - but now I am finding that pretty true for nearly the entire Atmel line).

:)

I have a shield that adds 64 I/O to the Arduino. You have to give up two of the Arduino's six analog inputs. It changes the way you code I/O a little bit but there is a library that uses pretty much the same commands as are used on the regular Arduino I/O.

Centipede Shield