What is Arduino Uno?
Hello there! You seems to be familiar with ARDUINO, but do you know about ARDUINO UNO? You may have heard about it in general, but I am pretty sure that
Hello there! You seems to be familiar with ARDUINO, but do you know about ARDUINO UNO? You may have heard about it in general, but I am pretty sure that you are curious to know about this UNO in details. That’s why, I am here to provide you detailed information about Arduino Uno. I am going to uncover all the following key points such as:
- Arduino Uno Features
- Arduino Uno Specifications
- Arduino Uno Pin Diagram
- Arduino Uno - Getting into Programming
- Arduino Uno - ATmega328 Pin Mapping
- Programming the Arduino Uno
- Arduino Uno Circuit Diagram
- Arduino Uno Schematic
- Applications of Arduino Uno
But, before jumping to direct points, let me give you a quick glance at one of the most popular family of microcontroller boards i.e. Arduino.Â
Â
Arduino at a Glance
Would you believe that each one of you is using at least 20 microcontrollers in your house? Well, that’s a fact. There are more than two billion microcontrollers being produced every year. Almost everyone in developed as well as in developing nations cannot think of a day without using microcontrollers.
The microcontroller is an embedded computer chip that controls most of the electronic gadgets and appliances that people use on a daily basis, right from mobile phones, washing machines to anti-lock brakes in cars. The microcontroller was introduced in the electronics industry with the purpose of making our tasks easy that come with even a remote connection with automation in any way.
[caption id="attachment_778287" align="aligncenter" width="550"] Fig. 1. Arduino & Microcontroller Difference[/caption]Some people usually get confused between Microcontroller and Arduino. Microcontroller is just an on system 40 pin chip that comes with a built-in microprocessor and Arduino is a board that comes with the microcontroller in the base of the board as shown in the above fig. 1. Arduino also comes with a bootloader and allows easy access to input-output pins and makes uploading or burning of the program very easy.
Â
Did you know? - The name Arduino comes from a bar in Ivrea, Italy, where some of the founders of the project used to meet. The bar was named after Arduin of Ivrea, who was the margrave of the March of Ivrea and King of Italy from 1002 to 1014.
Â
When it comes to Arduino, there is no much technical knowledge requirement. However, people with the non-technical background can easily get a hands-on experience with Arduino, but learning microcontroller requires some expertise and skills.
There are many versions of Arduino boards introduced in the market like Arduino Uno, Due, Leonardo, Mega, etc. However, most common versions are Arduino Uno and Arduino Mega. So, what’s this Uno actually?
Â
Arduino Uno - What is it?
[caption id="attachment_781274" align="aligncenter" width="463"] Fig. 2. Arduino Uno R3 Board[/caption]Uno is a microcontroller board developed by Arduino.cc which is an open-source electronics platform mainly based on AVR microcontroller Atmega328. Above image shows Arduino Uno R3. The R3 is the third, and latest, revision of the Arduino Uno.
Â
Did you know? - The word "uno" means "one" in Italian and was chosen to mark the initial release of Arduino Software. The Uno board is the first in a series of USB-based Arduino.
Â
Arduino Uno Description:
Uno is a microcontroller board based on 8-bit ATmega328P microcontroller. Along with ATmega328P, it consists other components such as crystal oscillator, serial communication, voltage regulator, etc. to support the microcontroller.
The Arduino Uno comes with USB interface, 6 analog input pins, 14 I/O digital ports that are used to connect with external electronic circuits. Out of 14 I/O ports, 6 pins can be used for PWM output. It allows the designers to control and sense the external electronic devices in the real world.
Since it was first debuted, the Arduino Uno has been a huge hit with electronics enthusiasts from beginner hobbyists to professional programmers. It is an open-source platform, means the boards and software are readily available and anyone can modify and optimize the boards for better functionality. The software used for Arduino devices is called IDE (Integrated Development Environment) which is free to use and required some basic skills to learn it. It can be programmed using C and C++ language.
Now you know what Arduino & Arduino Uno actually are? So, Let's get to key points one by one.
Â
Arduino Uno Features
This board comes with all the features required to run the controller and can be directly connected to the computer through USB cable that is used to transfer the code to the controller using IDE (Integrated Development Environment) software, mainly developed to program Arduino. So, let’s dive into the features of Arduino Uno.
- More frequency and number of instructions per cycle: Atmega328 microcontroller is placed on the board that comes with a number of features like timers, counters, interrupts, PWM, CPU, I/O pins and based on a 16MHz clock that helps in producing more frequency and number of instructions/cycle.
- Built-in regulation: This board comes with a built-in regulation feature which keeps the voltage under control when the device is connected to the external device.
- Flexibility & Ease of use: There are 14 I/O digital and 6 analog pins incorporated in the board that allows the external connection with any circuit with the board. These pins provide the flexibility and ease of use to the external devices that can be connected through these pins.
- Configurable pins: The 6 analog pins are marked as A0 to A5 and come with a resolution of 10bits. These pins measure from 0 to 5V, however, they can be configured to the high range using analogReference() function and AREF pin.
- Quick Start: Reset pin is available in the board that reset the whole board and takes the running program in the initial stage. This pin is useful when board hangs up in the middle of the running program; pushing this pin will clear everything up in the program and starts the program right from the beginning.
- Greater Flash Memory: 13KB of flash memory is used to store the number of instructions in the form of code.
- Low Voltage Requirement: Only 5 V is required to turn the board on, which can be achieved directly using USB port or external adapter, however, it can support external power source up to 12 V which can be regulated and limit to 5 V or 3.3 V based on the requirement of the project.
- Plug & Play: There is no hard and fast interface required to connect the devices to the board. Simply plug the external device into the pins of the board that are laid out on the board in the form of the header.
- USB interface: Arduino Uno comes with USB interface i.e. USB port is added on the board to develop serial communication with the computer.
- Power alternatives: Apart from USB, battery or AC to DC adopter can also be used to power the board.
- More Storage: There is a provision of Mirco SD card to be used in the boards to make them store more information.
Â
Arduino Uno boards are quite similar to other boards in Arduino family in terms of use and functionality, however, Uno boards don’t come with FTDI USB to Serial driver chip.
Â
Arduino Uno Specifications
The specifications of Arduino Uno is as given in the table below.
Microcontroller | ATmega38P – 8 bit AVR family microcontroller |
Operating Voltage | 5V |
Recommended Input Voltage | 7-12V |
Input Voltage Limits | 6-20V |
Analog Input Pins | 6 (A0-A5) |
Digital I/O Pins | 14 (Out of which 6 provide PWM output) |
DC Current on I/O Pins | 40mA |
DC Current on 3.3V Pin | 50mA |
Flash Memory | 32 KB (0.5 KB is used for Bootloader) |
SRAM | 2kB |
EEPROMÂ | 1kB |
Frequency (Clock Speed) | 16MHz |
Â
Arduino Uno Pin Diagram
Following fig. 3. shows the pin diagram of Arduino Uno.Â
[caption id="attachment_778450" align="aligncenter" width="550"] Fig. 3. Arduino Uno Pin Diagram[/caption]Pin's information is as given in the table below.
Pin Category | Pin Name | Details |
Power | Vin, 3.3V, 5V, GND | Vin: Input voltage to Arduino when using an external power source. 5V: Regulated power supply used to power microcontroller and other components on the board. 3.3V: 3.3V supply generated by on-board voltage regulator. Maximum current draw is 50mA. GND: ground pins. |
Reset | Reset | Resets the microcontroller. |
Analog Pins | A0-A5 | Used to provide analog input in the range of 0-5V |
Input/Output Pins | Input/Output Pins | Can be used as input or output pins. |
Serial | 0(Rx), 1(Tx) | Used to receive and transmit TTL serial data. |
External Interrupts | 2, 3 | To trigger an interrupt. |
PWM | 3, 5, 6, 9, 11 | Provides 8-bit PWM output. |
SPI | 10 (SS), 11 (MOSI), 12 (MISO) and 13 (SCK) | Used for SPI communication. |
Inbuilt LED | 13 | To turn on the inbuilt LED. |
TWI | A4 (SDA), A5 (SCA) | Used for TWI communication. |
AREF | Analogue REFerence | To provide reference voltage for input voltage. |
Â
Arduino Uno Pin Out (in details)
Below fig. 4. shows the detailed pin out diagram of Arduino Uno.
[caption id="attachment_778455" align="aligncenter" width="550"] Fig. 4. Arduino Uno Pin Out (in details)[/caption]The description of Arduino Uno pins is as explained below.
Arduino Uno Pin Description:
There are several arduino uno pins, more specifically, I/O digital and analog pins placed on the board which operates at 5V. But, these pins come with standard operating ratings ranging between 20mA to 40mA. Internal pull-up resistors are used in the board that limits the current exceeding from the given operating conditions. However, too much increase in current makes these resistors useless and damages the device.
- LED - Arduino Uno comes with built-in LED which is connected through pin 13. Providing HIGH value to the pin will turn it ON. Providing LOW will turn it OFF.
- Vin - It is the input voltage provided to the Arduino Board. This pin is used to supply voltage. It is different than 5 V supplied through a USB port. If a voltage is provided through power jack, it can be accessed through this pin.
- 5V - This board comes with the ability to provide voltage regulation. 5V pin is used to provide output regulated voltage. The board is powered up using three ways i.e. USB, Vin pin of the board or DC power jack. USB supports voltage around 5V while Vin and Power Jack support a voltage ranges between 7V to 20V.
- GND - These are ground pins. There are more than one ground pins are provided on the board. They can be used as per requirement.
- Reset -This pin is incorporated on the board which resets the program running on the board. Instead of physical reset on the board, IDE comes with a feature of resetting the board through programming.
- IOREF -It is the abbreviation of Input Output Voltage Reference. This pin is very useful for providing voltage reference to the board. A shield is used to read the voltage across this pin which then select the proper power source.
- PWM – Pulse Width Modulation is provided by 3, 5, 6, 9, 10, 11 pins. These pins are configured to provide 8-bit output PWM.
- SPI - It is abbreviation of Serial Peripheral Interface. Four pins 10(SS), 11(MOSI), 12(MISO), 13(SCK) provide SPI communication with the help of SPI library.
- AREF - It is called Analog Reference. This pin is used for providing a reference voltage to the analog inputs.
- TWI - It is called Two-Wire Interface. TWI communication is accessed through Wire Library. A4 and A5 pins are used for this purpose.
- Serial Communication - Serial communication is carried out through two pins called Pin 0 (Rx) and Pin 1 (Tx).
- Rx. & Tx. - Rx (Receiver) pin is used to receive data while Tx (Transmitter) pin is used to transmit data.
- External Interrupts - Pin 2 and 3 are used for providing external interrupts. An interrupt is called by providing LOW or changing value.
Arduino Uno comes with an ability of interfacing with other Arduino boards, microcontrollers and computer. The Atmega328 placed on the board provides serial communication using pins like Rx and Tx. The Atmega16U2 incorporated on the board provides a pathway for serial communication using USB com drivers. A Serial monitor is provided on the IDE software which is used to send or receive text data from the board. If LEDs are placed on the Rx and Tx pins will flash, they indicate the transmission of data. To understand how it does, you need to know the programming part of Arduino.
Â
Arduino Uno - Getting into Programming
The 14 digital input/output pins can be used as input or output pins by using pinMode(), digitalRead() and digitalWrite() functions in arduino programming. Each pin operate at 5V and can provide or receive a maximum of 40mA current, and has an internal pull-up resistor of 20-50 KOhms which are disconnected by default. Out of these 14 pins, some pins have specific functions as listed below.
Arduino Uno Pin Configuration:
- Serial Pins 0 (Rx) and 1 (Tx):Rx and Tx pins are used to receive and transmit TTL serial data. They are connected with the corresponding ATmega328P USB to TTL serial chip.
- External Interrupt Pins 2 and 3:These pins can be configured to trigger an interrupt on a low value, a rising or falling edge, or a change in value.
- PWM Pins 3, 5, 6, 9 and 11:These pins provide an 8-bit PWM output by using analogWrite() function.
- SPI Pins 10 (SS), 11 (MOSI), 12 (MISO) and 13 (SCK):These pins are used for SPI communication.
- In-built LED Pin 13:This pin is connected with an built-in LED, when pin 13 is HIGH – LED is on and when pin 13 is LOW, it’s off.
Along with 14 Digital pins, there are 6 analog input pins, each of which provide 10 bits of resolution, i.e. 1024 different values. They measure from 0 to 5 volts but this limit can be increased by using AREF pin with analog Reference() function. Â
- Analog pin 4 (SDA) and pin 5 (SCA) also used for TWI communication using Wire library.
Arduino Uno has a couple of other pins as explained below:
- AREF:Used to provide reference voltage for analog inputs with analogReference() function.
- Reset Pin:Â Making this pin LOW, resets the microcontroller.
Â
Data Transmission in Arduino:
- Arduino can be used to communicate with a computer, another Arduino board or other microcontrollers. The ATmega328P microcontroller provides UART TTL (5V) serial communication.
- Serial communication can be done using digital pin 0 (Rx) and digital pin 1 (Tx). An ATmega16U2 on the board channels this serial communication over USB and appears as a virtual com port to software on the computer.
- The ATmega16U2 firmware uses the standard USB COM drivers, and no external driver is needed. However, on Windows, a .inf file is required.
- The Arduino software includes a serial monitor which allows simple textual data to be sent to and from the Arduino board.
- There are two RX and TX LEDs on the arduino board which will flash when data is being transmitted via the USB-to-serial chip and USB connection to the computer (not for serial communication on pins 0 and 1).
- A SoftwareSerial library allows for serial communication on any of the Uno's digital pins.
- The ATmega328P also supports I2C (TWI) and SPI communication and the Arduino software includes a Wire library to simplify use of the I2C bus.
Â
Arduino Uno - ATmega328 Pin Mapping
When ATmega328 chip is used in place of Arduino Uno, or vice versa, the fig. 5. below shows the pin mapping between the two.Â
[caption id="attachment_778459" align="aligncenter" width="550"] Fig. 5. Arduino Uno - ATmega328 Pin Mapping[/caption]Â
Â
Programming the Arduino Uno
The IDE Software
[caption id="attachment_778506" align="aligncenter" width="333"] Fig. 6. IDE Software[/caption]The Integrated Development Environment (IDE) is a simple and easy to learn software for writing Arduino codes. Above fig. 6. is a screenshot of Arduino IDE. Arduino has huge flexibility with which you can make almost anything you imagine. It can be easily connected to a variety of modules like fire sensors, obstacle sensors, presence detectors, GPS modules, GSM Modules, or anything with which you wish to give wings to your dream project.
IDE is equally compatible with Windows, MAC or Linux Systems, however, Windows is preferable to use. It is an open source platform where anyone can modify and optimize the board based on the number of instructions and task they want to achieve.
Arduino IDE Download it here.
Â
How to Connect Arduino to PC?
Visit https://www.arduino.cc/en/Guide/ArduinoUno for the information regarding the installation of Arduino Software (IDE) and for connecting Board with a PC.
Â
It is recommended to operate the board on 5V. It is important to note that, if a voltage is supplied through 5V or 3.3V pins, they result in bypassing the voltage regulation that can damage the board if voltage surpasses from its limit.
Â
Once Arduino IDE is installed on the computer, connect the board with computer using USB cable. Now open the arduino IDE and choose the correct board by selecting Tools>Boards>Arduino/Genuino Uno, and choose the correct Port by selecting Tools>Port. Arduino Uno is programmed using Arduino programming language based on Wiring. To get it started with Arduino Uno board and blink the built-in LED, load the example code by selecting Files>Examples>Basics>Blink. Once the example code (also shown below) is loaded into your IDE, click on the ‘upload’ button given on the top bar. Once the upload is finished, you should see the Arduino’s built-in LED blinking. Below is the example code for blinking:
// the setup function runs once when you press reset or power the board
void setup() {
 // initialize digital pin LED_BUILTIN as an output.
 pinMode(LED_BUILTIN, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
 digitalWrite(LED_BUILTIN, HIGH);  // turn the LED on (HIGH is the voltage level)
 delay(1000);                      // wait for a second
 digitalWrite(LED_BUILTIN, LOW);   // turn the LED off by making the voltage LOW
 delay(1000);                      // wait for a second
}
Â
Â
Arduino Uno Circuit Diagram
For circuit diagram of Arduino Uno and its explanation of hardware components, visit https://www.allaboutcircuits.com/technical-articles/understanding-arduino-uno-hardware-design/
Â
Arduino Uno Schematic
To download schematic, these are the links.
- https://www.arduino.cc/en/uploads/Main/arduino-uno-schematic.pdf
- https://www.arduino.cc/en/uploads/Main/Arduino_Uno_Rev3-schematic.pdf
- https://content.arduino.cc/assets/UNO-TH_Rev3e_sch.pdf
- https://www.arduino.cc/en/uploads/Main/arduino-uno-smd-schematic.pdf
Â
Applications Of Arduino Uno
Arduino Uno comes with a wide range of applications. Following are some of the main applications of the board.
- Parking Lot Counter
- Arduino Uno is used in Do-it-Yourself projects prototyping.
- Traffic Light Count Down Timer
- Emergency Light for Railways
- Embedded System
- In developing projects based on code-based control
- Medical Instrument
- Security and Defense System
- Weighing Machines
- Home Automation
- Industrial Automation
- Development of Automation System
- Digital Electronics and Robotics
- Designing of basic circuit designs.
These are all the applications of Arduino Uno. Anyway, there are a lot of other microcontrollers available in the market but, why do you prefer Arduino Uno?
Well, the answer is that the Arduino UNO as well as Arduino Nano V3 are the most official versions that come with Atmega328 8-bit AVR Atmel microcontroller where RAM memory is 32KB. And, Arduino comes with a big community that is developing and sharing the knowledge with a wide range of audience. When you decide Arduino board over other controllers, you don’t need to arrange extra peripherals and devices as most of the functions are readily available on the board that makes your project economical in nature and free from a lot of technical expertise. That’s why, if you are planning to create a project relating to digital electronics, embedded system, robotics, or IoT, then using Arduino Uno would be the best, easy, and the most economical option.
I hope you have found this article helpful & I am sure that you have got a lot of information about Arduino Uno. So, Why wait? Get your uno and start programming!
Â
Â
References:
- Arduino Uno – Components101.com
- ‘Introduction to Arduino Uno’ by Adnan Aqeel – Theengineeringprojects.com
- ‘Detailed guide on What is Arduino?’ by Ritu Jadhav
- Arduino Uno – Wiki
Â
It’s really a nice annd useful piece of info. I’m haopy that youu just
shared this useful information with us. Please sttay us
up to date like this. Thank yyou for sharing.