A few questions...

I'm new to microcontrollers and Arduino, so I have a few questions. I've seen many reviews and videos, and it seems that Arduino is the best choice for me. I looked at some of your product and example pages and they all look pretty cool.

I would first like to know if there are any expansions to the main boards. I saw that many of your examples used many, if not all of the analog contacts. I What happens if I run out of contacts and still have more to add. Can I get expansion boards or something?

The other thing I'd like to know is can I get additional memory? I noticed that the memory is a little bit scarce in some of the boards if you plan on making big projects. Are there any flash memory add-ons that can be used with these boards?

Thank you,
Matt

Expanding analog inputs or digital inputs/outputs is relatively easy.

There are serveral ways to do it. Expansion boards for Arduino are called shields, and there are some shields that will expand the available in / out puts.

You could also expand the number of analog inputs with multiplexer IC's like cd4051 or similar.

Digital in / out can be expanded with shiftregisters.

There are also IC's that give you additional GPIO (digital in OR out) pins.

Using a shield is easy, using one of the above mentioned IC's is cheap.

As for memory there is no easy way to upgrade the RAM (memory for data/variables) or flash ROM (memory for program). But the memory probably sounds more limited than it is in reality.

If you need more memory the Arduino mega board has both more I/O pins and more flash ROM.

There is no way to increase the RAM for real-time native access on the ATmega328 (in theory you should be able to with the Mega but it wouldn't be supported by the tool chain). You can however easily add various forms of serial RAM/ROM or even SD cards if you want to store large amounts of data.


Rob

Thanks for the replies!

If I were to get an Arduino board and a multiplexer or shift register depending on what I need, would that require more programming?

As for the memory, I probably wont be making any huge programs to run as of right now. For now, I just want to learn the basics of microcontrollers. I was looking through the products page and found that the boards have 2kb to 8kb of RAM; is that really enough for a good application?

I would also like to know if it is easy, or possible, to attach LCD screens. Are there touchscreen displays that can be used?

Thanks once again for your replies.

multiplexer or shift register depending on what I need, would that require more programming?

Technically anything you want to interface with requires "more programming" but these things not much. For example the shift reg can be written to with a single shiftOut() call.

2kb to 8kb of RAM; is that really enough for a good application?

0k can be enough for a good application, it all depends on...well about a gazillion things really. But yes 2-8k is plenty for most applications you'll be doing on an Arduino.

For now, I just want to learn the basics of microcontrollers.

Then even more so, you don't need much to get the basics. The standard "blink" example doesn't use ANY RAM on the surface (although the evironment and libraries will be using some in the background).

if it is easy, or possible, to attach LCD screens. Are there touchscreen displays that can be used?

Yes, yes and yes. There are all manner of ways to add LCDs and touch screens. At the simplest way is to buy a smart unit and just use serial commands to write to the screen and get touch info back.


Rob

Well that's all good to hear. Thanks for your help man. :smiley: