The Arduino board consists of a microcontroller chip and some supporting interface and power supply circuits. There are many different versions of the Arduino, but the most common one is the UNO shown here:
Many of the Arduino boards including the UNO use a microcontroller IC from Atmel, the ATmega328PB. This small, low-power computer on a chip provides quite a bit of computing horsepower for a very low price. The Atmel chip can be purchased for as low as $2 and provides 16 million instruction per second speed, 32KBytes of non-volatile program storage, 2KBytes of data SRAM, and numerous analog and digital inputs and outputs. The chip is available in several packages, the dual inline pin package used in the UNO and smaller surface mount packages as used in other Arduino variants like the “Nano.” For more detailed information about the microcontroller, go to the Atmel website.
The Power Supply and Clock Circuit
The UNO board can be powered through the USB connection or from the external jack. If the external jack (2.1mm center-positive) is used, the supply should be between 7 and 12 volts. The current consumption is about 50 mA when the UNO is not supplying any power through its outputs. There is a voltage regulator IC on the board which converts the input power to 5 volts and 3.3 volts. If lower current consumption for battery or solar power is needed, there are other varieties of Arduino-compatible boards that provide this including versions that consume almost no power until awakened by an interrupt signal.
The Clock circuit on the UNO board provides the 16 MHz clock for the processor. Most of this clock circuit is part of the microcontroller chip, needing just a 16 MHz crystal and 3 passive components on the board.
The USB Interface
The USB Interface is used both to power the board if desired and to provide an interface to load programs into the microcontroller. The circuit on the board uses another microcontroller, the Atmel Atmega16U2, to provide a USB to Serial interface.
The I/O Pins
There are a variety of input/output interfaces available from the Arduino UNO board that allow it to sense and control things in its environment. These interfaces are connected to header pins on the board that make it easy to attach other circuits to it. The interfaces include:
- 14 digital pins that can be used as inputs or outputs. They switch between 0 and 5 volts. Each pin can provide or receive up to 20 mA. Each pin has a pull-up resistor that can be programmatically connected or disconnected.
- 6 analog inputs that can be used to measure input voltages with 10-bit resolution (0 to 1023). The high end is 5 Volts by default, but can be referenced to a different voltage applied to the AREF pin.
- Some of these pins have additional functions:
- Digital pins 0 (Rx) and 1 (Tx) are used to receive and transmit serial data. They are connected to the proper pins on the ATmega8U2 USB to serial chip.
- Digital pins 2 and 3 can be configured to trigger a software interrupt, enabling external events to change the program flow more quickly.
- Digital pins 3, 5, 6, 9, 10, and 11 can be used to provide a pseudo-analog output function, using pulse-width modulation to rapidly switch between 0 and 5 Volts with a variable duty cycle.
- Digital pins 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK) are used to provide SPI communication for devices that need that type of connection. These pins are also routed to a special SPI header.
- Digital pins 0, 1, and 13 have built-in LEDs attached. When the pin is at 5 Volts, the LED is on, when the pin is at 0 Volts, it is off.
- Analog pins A4 (SDA) and A5 (SCL) support the TWI communication interface.
- There are some other miscellaneous pins available in the headers:
- Vin – a header connection to the power input side of the voltage regulator
- 5V – the regulated 5V output from the regulator on the board
- 3V3 – the 3.3 V supply generated by the regulator. It can supply a maximum of 50 mA
- GND – Ground pins
- IOREF – the voltage reference with which the microcontroller operates. A properly configured shield can read the IOREF pin voltage and select the appropriate power source or enable voltage translators on the outputs to work with 5 V or 3.3 V.
- AREF – the reference voltage for the analog inputs as mentioned above
- Reset – bringing this line LOW resets the microcontroller. This is the same function performed by the manual reset button on the board and forces a restart of the program.
The Nano version of the Arduino board is a very low cost and breadboard-friendly version that uses a smaller packaged version of the Atmel 328.
The current prices for Arduino boards at Amazon.com (February 4, 2017) are these:
- Official Arduino Uno, $24.95
- Elegoo Uno Compatible clone, $10.86
- SainSmart Nano v3.0, $11.98
- C.J.SHOP Nano v3.0, $3.92 in qty 5
There are several vendors that offer the Nano in quantities of 3 to 10 pieces at about $4.00 each. Frequently, these do not have the header pins soldered in place, but do provide them. Soldering the pins is a quick and easy process if you have the right soldering iron and solder.
It is easiest to connect to the Nano using a small breadboard like this one:
A typical price for these on Amazon is about $3.00 each. The Nano headers plug directly into the board and can be connected to all sorts of gadgets using jumper wires like these: