Lisa95 wrote: [...] I think that is a total of 12 pins.
An Uno should be able to do that. By default there are 14 digital I/O pins, but you can also use the 6 analog input pins for digital I/O.
If you need more I/O you have a few options: the Mega series of Arduinos have.. like.. a bajillion pins: 54 digital I/O, 16 analog inputs, plus much more Flash, RAM, and EEPROM than the Uno.
If you just need output, the 74HC595 serial-to-parallel shift register is much beloved in the Arduino community, as is its counterpart the 74HC165 parallel-to-serial register. Those use three Arduino pins (clock, serial IN/OUT, and a READ/SHOW the next byte strobe), but you can daisy-chain them.. a string of three '595s ( coincidentally sold here: http://www.adafruit.com/products/450
) give you 24 bits of output from the same three pins.
One step fancier is the I2C port expander ( http://www.adafruit.com/products/732
) which only uses two Arduino pins and gives you 16 configurable I/O pins.
Lisa95 wrote:My main concern (as I've learned by reading many Arduino posts around the Internet) is that if the Arduino is coded using the DELAY function it can cause issues.
Yes and no..
The big kids will tell you that using timers and interrupts gives you more flexibility, and they're right: the delay() function is a 'blocking' routine, meaning the processor can't do anything else while it's waiting. Timers and interrupts are non-blocking, meaning the timer can do other things while it waits. When the event you're waiting for happens, the processor stops what it's doing, runs a routine to handle the event, then picks up where it left off.
The main question is, "what will my code do while it's waiting?" For systems that watch several things at once or have complex output, timers and interrupts are great. For systems that just sort of zen out while they wait for the next event.. not so much.
We have people here in the Forum who know all about timers and interrupts if/when you want to learn them.
Lisa95 wrote:I recently read somewhere about "state machines" and that sounded like may be quite useful. It was a great explanation, very simple and easy to understand, using everyday language to show the concept. I'll have to see if I can find that again, should have saved it.
If it was this thread: viewtopic.php?f=25&t=35384&start=0
.. you've just become My Favorite Person of the Day. ;-)
Lisa95 wrote:So do you think my little Uno will do the job? Should I consider a unit with a bit more memory for the code? Should I consider a SD chip add-on?
I'd say start off by doing as much as you can with the Uno all by itself, then move up when you start bumping your head against its limits.
90% of programming is research.. you don't have a really detailed description of the problem you're trying to solve until you've built a system to solve it. Get as much "what the heck am I doing here?" out of the way on the simplest system you can, then take on more hardware when you know exactly what you want from it.
Lisa95 wrote:I'm probably biting off more than I can chew as this may be a bit complicated for a beginner but I'm willing to try. Still have a lot to learn though.
Yeah.. you'll fit in well here.
I think everyone here is pushing the edges of their comfort zone in one way or another.. new chip, new circuit, new sensor, new platform.. we're always looking for the next excuse to say, "I wonder what *this* will do.. OBTW, where's the fire extinguisher?"
When you void a product warranty, you give up your right to sue the manufacturer if something goes wrong and accept full responsibility for whatever happens next. And then you truly own the product.