Original Arduino UNO R3
Arduino Uno is a microcontroller board based on Atmega328. There are 16 digital I/O pins (6 of them are PWM out), 6 analog input pins, a 16 MHz crystal oscilator, an USB socket, a power socket, an ICSP connector and reset button on the board. There are the all essential parts on the board for microcontroller operations. The board can easily be connected to the computer via usb or can be used with an external adapter of battery.
Arduino Uno has an Atmega16u2 (It was Atmega8u2 on the Rev 2 model) usb - serial chip for programming and communicaiton with computer via usb.
Arduino.cc made various innovaitons on the Rev 3 in comparison with Rev 2 to be useful and stable. The Arduino Uno board has been a referance model as both software and hardware to all the other Arduino models. You may see the historical development of the Arduino boards by hardware index.
Features:
- Microcontroller: ATmega328
- Operating voltage: 5 V
- Supply voltage (recommended): 7-12 V
- Supply voltage (limits): 6-20 V
- Number of digital I/O pins: 14
- Number of PWM pins: 6
- Number of analog input pins: 6
- Max DC current for each I/O pins: 40 mA
- DC current for 3.3 V out: 50 mA
- Max DC current for 3.3 V pin: 1 A (if supplied with an external adapter)
- Flash memory: 32 kB (ATmega328, 0.5 kB is used by bootloader)
- SRAM: 2 kB (ATmega328)
- EEPROM: 1kB (ATmega328)
- Clock speed: 16 MHz
- Length: 68.6 mm
- Width: 53.4 mm
- Weight: 25 gr
Power:
Arduino Uno can be supplied via usb or an external voltage source. External voltage source would be an AC - DC adapter or a battery. When it is supplied with an external adapter or battery, using 2.1 mm width, center-positive, 7-20 V power supply is recommended. Moreover, the connectors of the power socket on the board, Vin and GND pins are short circuited in beckend. The battery can be connected to the board via GND and Vin pins.
It is not necessary to be connected to usb port during whole the operation. The board can be energized with only an adapter or a battery too, by this way, the board can work independently from the computer.
6 - 20 V can be used as an external supply but these are the limits for Uno. Recommanded voltage supply for this board is between 7 - 20 V. Becouse the regulator on the board might not work stabile for the voltages below 7V. Likewise, it can be over - warmed for the voltages above 12 V.
Operating voltage of the Arduino Uno's microcontroller is 5 V. If the voltage supplies the board via Vin pin or the power socket on 7 V to 12 V, then this voltage is regulated and distributed to the board by the regulator.
Power pins are like that:
- Vin: When an external adapter is used, the voltage of the adapter is on this pin. You can supply the board by applying 7-20 V among this pin instead of the on-board power connector.
- 5 V: The 5 V pin on the board is directly connected to the output of the regulator. To supply the board directly from this pin is not recommended due to that this way will not activate the 3.3 V and 5 V regulators on the board. If the board is supplied by usb (5 V), 5 V of the usb directly comes this pin. If the board is supplied by an external power supply or from Vin pin then the voltage of the 5 v pin comes from output of the regulator.
- 3.3 V: 3.3 V out pin from the regulator. Max. current is 50 mA.
- AREF: It is possible to change the referance voltage of the board.
- GND: Ground pins on the board.
Memory:
Atmega328 has an 32 kB flash memory (0.5 kB of this is used by the bootloader), 2 kB SRAM and 1 kB EEPROM.
Input and Output:
All of the 14 digital pins on the Arduino Uno board can be configured both as an input or an output. There are 6 analog input pins on the board too. All of these analog pins can be configured as digital input or output. In total there are 20 digital input - output pins on the board. Logic level of these pins are all 5 V. All of these pins are able to provide an output current up to 40 mA. Additionally, some of these pins have diffrent features too, listed below:
- Serial Communication, 0 (RX) and 1 (TX): These pins are used to recieve (RX) and Transmit (Tx) TTL data. These pins are directly connected to Atmega16u2 usb - serial converter chip on the Uno board, that means when the board is getting programmed or while the Uno and computer is communicating these pins are in use. Becouse of this situation it is recommended not to use these pins when the other pins are free.
- External Interrupts: By using the pins 2 (Interrupt 0), 3 (interrupt 1) you may activate interrupts respect to logic-1 and logic-0 levels and/or rising edge or falling edge. You can find the details on the attachInterrupt() function page.
- PWM: Pins 3, 5, 6, 9, 10, 11 and 13 can provide 8-bit analog out using analogWrite() function.
- SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK) pins are used for SPI communication.
- Analog: A0 - A5; Uno board has 6 10-bit analog input pins. These pin may be used also as digital input or output. As default, the referance range of analog inputs is between 0-5 V. This range can be changed by using AREF pin and analogReferance() function.
- I2C, A4 (SDA) pin and A5 (SCL) pin: These pins are used for I2C serial communication.
- AREF: The referance pin for analog input.
- Reset: If logic-0 voltage level applied to this pin, the board resets itself.
You may view the pin mapping page from this link.
Communication:
There are several options for Arduino Uno to communicate with another arduino or microcontroller. Atmega328 provides UART TTL (5V) Serial communication via its 0 (RX) and 1 (TX) pins. Atmega328 connects to a computer by opening a virtual serial COM port and allows the serial communication. Arduino IDE, thanks to its serial monitor find in the computer software, provides to send and recieve text based information. RX and TX leds on the board blink while the board is communicating via USB.
There is a phsycally serial port on the Uno board but this number can be increased with the SoftwareSerial library as software.
Atmega328 provides I2C and SPI ports too. Wire library if to use I2C and SPI library is for SPI communication.
Programming:
Arduino UNO board can be programmed with the Arduino computer software (Arduino IDE). You can start programming by choosing Arduino UNO under tools > board menu on the Arduino IDE. For details you may see the referance and the basic functions page. Atmega328 on the Arduino UNO board comes together with a specific software installed, named bootloader. Thanks to this it is not needed to use an external programming device to program Arduino UNO. Communication is supplied by and original STK500 protocol.
The board can be programmed by using ICSP headers via ISP programmer instead of bootloader software (Referance).
Like the bootloader software, the source code in the Atmega16u2 is opensource. This software is named DFU bootloader. This software can be re-uploaded by using Atmel's FLIP software (Windows) or DFU programmer (Mac OS X and Linux) or can be re-programmed with 16u2 and ISP like Atmega328. Both Atmega328 and Atmega16u2 comes with the current revisions so it is not needed to chane these codes.
Usb high current protection:
Arduino Uno board has restarable high current protectors. Even if your computer has its own protectors for its USB ports, the protectors on the board is adjusted to reject more than 500mA. If this amount of current is reached, protectors will keep open - circuit the connection untill the short - circuit disappears.
Note: There is just Arduino Uno R3 in the content of the product, not usb cable and external adapter.
Documents: