What is the Arduino Uno?
The Arduino Uno is a microcontroller board based on the ATmega328 chip. For this review, I was given an Arduino Uno by Newark.com. If you have never used or heard of microcontroller before, they are analogous to a primitive electronic brain. More specifically, the ATmega328 chip in the Arduino is the brain and the rest of the board is a modular body. Alone, the ATmega328 chip cannot do much, just as your brain would not be able to do much if it were cut out and placed it on a table. The rest of the Arduino Uno board is made up of all the little things that the chip needs to function correctly. What you get in the end is a simple yet versatile board that only needs a power source and code to make something happen.
When I was introduced to my first microcontroller, the Arduino Duemilanove, it transformed how I thought about electronics. A microcontroller allows for computation, sensing, adapting, and just about everything analog circuits cannot easily do. The Arduino Uno is a great microcontroller to start with for three main reasons.
When I was introduced to my first microcontroller, the Arduino Duemilanove, it transformed how I thought about electronics. A microcontroller allows for computation, sensing, adapting, and just about everything analog circuits cannot easily do. The Arduino Uno is a great microcontroller to start with for three main reasons.
- First, the Arduino Uno is dead simple to get working. There are a lot of other microcontrollers out there (the PICaxe, the Basic Stamp, and the Parallax Propeller to just name a few), but in my experience the Arduino has been the easiest to use. For me, this is mostly due the onboard USB-to-serial driver and to the prototype-friendly female pin sockets connected to the I/O pins. The USB-to-serial driver allows you to plug the Arduino directly into any computer and get right to coding. The female I/O sockets allow for very quick prototyping and troubleshooting; however, it is difficult to build any reasonably complex circuit without the addition of a breadboard.
- Second, the Arduino Uno is self-sufficient. All it needs to function is power and code. If you have experience with circuits, you could work with the raw ATmega328 chip itself, or with any other chip for that matter. However, no previous knowledge of circuits is needed to work with the Arduino Uno.
- Most importantly, there are tons of thorough and well-commented examples of code built into the provided Arduino IDE. These resources can also be found on the Arduino homepage (http://arduino.cc/en/Tutorial/HomePage). The existence of these examples is the reason I was able to dive headfirst into programming the Arduino without any prior programing or electrical experience. Even if you consider yourself reasonably fluent in the ways of electronics, the examples act as wonderful templates when starting a new project.
Hardware Specs
- Microcontroller: ATmega328
- Operating Voltage: 5V
- Input Voltage (recommended):7-12V
- Input Voltage (limits): 6-20V
- Digital I/O Pins: 14 (6 PWM ready)
- Analog Input Pins: 6
- DC Current per I/O Pin: 40 mA
- DC Current for 3.3V Pin: 50 mA
- Flash Memory: 32 KB (ATmega328)
- SRAM: 2 KB (ATmega328)
- EEPROM: 1 KB (ATmega328)
- Clock Speed: 16 MHz
What's new with the Uno?
Top: Arduino Duemilanove, Bottom: Arduino Uno
According to http://arduino.cc: “The Uno differs from all preceding boards in that it does not use the FTDI USB-to-serial driver chip. Instead, it features the Atmega8U2 programmed as a USB-to-serial converter. Revision 2 of the Uno board has a resistor pulling the 8U2 HWB line to ground, making it easier to put into DFU mode.”
If you do not know what that all means, it probably does not matter to you. If you do know what that means, you probably know more about electronics than I do.
A few other changes from the Duemilanove include:
If you do not know what that all means, it probably does not matter to you. If you do know what that means, you probably know more about electronics than I do.
A few other changes from the Duemilanove include:
- 150mA 3.3v voltage regulator
- Faster bootloader
- More flexible USB-to-serial converter
- Replaced crystal with lower accuracy ceramic oscillator
Software and Programing
Arduino IDE
To program the Arduino Uno, you will need the Arduino IDE, or Integrated Development Environment. It is free software that can be downloaded from http://arduino.cc/en/Main/Software. If you are used to using a different IDE for coding, it can be annoying to use the Arduino IDE, but it is a small nuisance. Overall, the IDE is easy use, easy to navigate, and it gets the job done.
Programs for the Arduino are written in “Wiring”, which is a subset of the C language. Like many things with the Arduino, having prior knowledge can help, but it is not necessary. I learned how to program the Arduino purely by going through the example programs, making changes, and seeing how things break. I highly recommend this method. All programming languages will have their syntactical differences; programming logic, on the other hand, is more universal. Learning to think in the logic structure of C just takes time playing around with code.
Programs for the Arduino are written in “Wiring”, which is a subset of the C language. Like many things with the Arduino, having prior knowledge can help, but it is not necessary. I learned how to program the Arduino purely by going through the example programs, making changes, and seeing how things break. I highly recommend this method. All programming languages will have their syntactical differences; programming logic, on the other hand, is more universal. Learning to think in the logic structure of C just takes time playing around with code.
Final Thoughts
- Everyone should have an Arduino. For $25, the Arduino Uno is definitely worth a look.
- If you already have an older Arduino Duemilanove, the Uno is a slight improvement, but the step up is not enough to warrant buying the new Uno.
- In my opinion, the Arduino Uno is one of the best multi-purpose devices a hobbyist, engineer, or tinkerer can have. The Arduino Uno is an incredibly capable microcontroller and it is my go-to platform if I need to make something happen that cannot be made with a simple “dumb” circuit. It is possible that, given a very specific project, there exists a more ideal platform to use than the Arduino Uno; however, finding the absolute perfect system for a project should not be the first thing on the to-do list. If size or form factor is an issue, the
ATmega328 chip can be popped out and placed into a custom circuit board without
much difficulty. I find that the
convenience of being able to plug a USB cable right into the board outweighs
the benefits of a making a circuit board with a smaller footprint, but that
depends on the project. Get an Uno and try it out.