In this post I will let you the Arduino UNO microcontroller development board. I will discuss about the microcontroller chip on which Arduino is based and also the pinout of the Arduino development. I will also describe some of the important specifications that are to be considered while designing the embedded system based on Arduino such as the ADC, internal EEPROM, and Processor etc.
After reading this post the reader will learn about the basics of the Arduino, pin configuration of the Arduino. The reader will be able learn about how to power up the Arduino and burn the program in the microcontroller using his / her computer or laptop. So sit back, keep reading and enjoy learning.
What is Arduino UNO?
Before diving deep into the discussion let us first have understanding about what the Arduino is? The Arduino is the open source microcontroller development board based on the ATMEGA328P microcontroller IC designed to provide the simple and cheap platform to the hobbyists and students for designing their digital and embedded systems projects. The ATMEGA328P microcontroller IC is the heart of the Arduino microcontroller development that is the board is designed around the ATMEGA328P microcontroller IC.
The Arduino UNO microcontroller development looks like the one in the above image.
Arduino UNO is programmed via type B USB connector mounted on board. A USB cable is used to connect the Arduino board to the PC or laptop. When plugged in to the USB cable it is also powered up which means you do not need an additional power supply while programming your Arduino with your laptop or computer.
Arduino development board has on-board voltage regulator and can supply 5volts and 3V3 to power up the low power components. Arduino UNO can be powered up with either power jack or it can also be powered up with the help of the pin on the header.
The Arduino microcontroller development board has one UART, SPI (Serial Peripheral Interface) interface and I2C (Inter-Integrated Circuit) interface which means it can communicate to the peripheral ICs that has these interfaces. The detailed discussion on each of these Interfaces and their use in Arduino will be done later in next post here I will stick just to the basics.
Arduino Integrated Development Environment (IDE):
Arduino UNO is quite easy to program. As most of you might have known that in order to program a microcontroller one need to write the code in the editor, and then compile that code in the compiler after which you get the HEX file of that code and later upload that HEX file in the microcontroller IC using another program. In case of Arduino all these steps are performed in single software which is called the Arduino IDE. By integrated Development Environment it means that all the steps that editor, compiler, burner are integrated in the same software. In short Arduino UNO is quite easy to program it is just a matter of few clicks. I will go through in detail about how to write a code and upload it in Arduino UNO later in the post.
Arduino UNO features:
Before I proceed to discussion on the pinout of the Arduino UNO let us have a brief review of the features of the Arduino UNO.
- Microcontroller IC:
- Input Voltage:
7 to 20 Volts (Note that this voltage would be apply to the jack only and not on the power supply pins available on the header).
- Digital I/O Pins:
14 (of which 6 provide PWM (Pulse Width Modulation) output)
- Analog Input Pins:
- DC Current per I/O Pin:
20 mA (This is the current that can be sourced or sink into and out of the Input / Output pins)
- DC Current for 3.3V Pin:
- Flash Memory:
32 KB of which 0.5 KB used by bootloader
- Clock Speed:
16 MHz (All the operations are synced by this clock)
The detailed description of each feature is out of the scope of this post but will be discussed in detail later in the next post.
Arduino UNO Pinout:
Let us now dive into the discussion about the pinout of the Arduino UNO. As described earlier that the Arduino UNO is based on the ATMEGA328P microcontroller IC so it follows that the pinout of the Arduino UNO is simply that of the ATMEGA328P microcontroller but note here that the Arduino UNO has its own nomenclature for its pins and here I will use the nomenclature used by the Arduino for pin reference.
As can be seen on the Arduino UNO that there are three headers mounted on board. One header is mounted on one side of the Arduino UNO and two on the other side.
Arduino Uno Pwm Pins:
As pointed out later that the Arduino Uno has total 14 digital Input / Output pins. The digital Input / Output pins can receive a digital signal or transfer a digital signal. The pin number 0 named Rx and pin number 1 named Tx are the receive and transmit pins of the UART (Universal Asynchronous Receiver and Transmitter) respectively. Notice in the image of the Arduino that the pin numbers 3, 5, 6, 9, 10 and 11 have a wavy symbol in front of them. This symbol denotes that these pins are the PWM (Pulse Width Modulation Pins). The discussion about the PWM phenomenon and the application of these pins will be discussed later. Note here that apart from being PWM pins these six pins can also behave like other digital input / output pins.
Introduction to Arduino UNO for Beginners:
The headers on the other side are the Voltage header labeled in reed and the Analog pins header labeled in Blue let us first discuss Analog pins header. The Analog pins header has total six analog pins. Unlike Digital pins these pins can just act as Input pins that is these pins can only receive signal and cannot provide signal or voltage, that is why they are called Analog inputs. These analog inputs are actually the inputs of the Analog to Digital Converter inside the ATMEGA 328P microcontroller. These pins can be connected to the output of the analog sensors.
The voltage header consists of pins to which either voltage can be supplied to the Arduino or the pins through which power can be supplied to other peripherals or sensors. Let us now discuss in detail the digital Input / Output pins, Analog input pins and Voltage pins of the Arduino.
Arduino UNO Digital Input / Output Pins:
As described in the previous section that the Arduino UNO has total 14 digital input / output pins out of which 6 input / output pins are PWM enabled. Some of these Digital Input / Output pins can also serve as the SPI (Serial Peripheral Interface) or I2C interface (Inter-Integrated Circuit). The detailed description is shown in the following figure.
The function that the digital input / output pins perform depends upon the coding of the Arduino UNO. That is whether the pin number 13, 12, 11 and 10 functions simply as Digital Input / Output or they are used as the Serial Peripheral Interface (SPI) depends upon the coding that specifies their functionality using particular functions. It is also important to note here that the Digital Input / Output pins are called as Input / Output because either they can be used as Input in which case they are intended to receive the signals form sensor or transducer (digital) or they can be used as Output in which case they drive the actuators such as relays. The functionality of the Digital Input / Output pins as either Input or Output is determined by the code also. It is important to realize here that digital input / output pins can only supply a limited amount of current which is not sufficient to drive the motors or relays therefore we need to use drivers such as stepper motor driver or L298 DC motor driver. I will come to the coding of the Arduino UNO later in this post.
Arduino UNO Analog Pins:
Let us now learn about the Analog pins of the Arduino UNO. As described earlier in this post that there are total 6 analog pins present on the Arduino UNO which acts as input pins only. Also we learned that these Analog pins are basically the input pins of the Analog to Digital Converter (ADC). These analog pins can receive the analog signals delivered by analog sensors such as Light dependent resistor, thermistor etc. The user can collect data from six different sensors at a time. Notice in the image above that the last two pins of the Analog pins portion has added functionality that is they can act as I2C interface. I2C (Inter-Integrated Bus) just like the SPI (Serial Peripheral Interface) is the computer bus that is it is used to communicate between two peripheral ICs that are enabled with I2C. I2C is the serial communication bus that is it can transfer data one bit at a time.
Arduino UNO Voltage Pins:
Let us now discuss another header present on the Arduino UNO development board. The last pin called the Vin pin is used to connect power supply to the Arduino UNO. That is 5 volt battery or power adapter can be connected to the Arduino UNO to deliver power through this pin. As can be seen in the image that the Arduino UNO has on board voltage regulator which converts the 5volts into 3V3 volts. The other two voltage pins called 5V and 3V3 are output power supply. That is these two pins can be used delivered power to the peripheral ICs or the sensors that are to be connected to the Arduino UNO. With the help of these pins the need of additional power supplies is eliminated. It is important to note here that the Arduino UNO can supply only limited supply of current through these and if connected to the strong load may damage the Arduino UNO development board.
ICSP (In-Circuit Serial Programming):
Before concluding the discussion on the Input / Output pins it is worth discussing about the ICSP (In-Circuit Serial Programming) pins that are available on the header on Arduino board as shown in the above image. As the name implies these pins are used to program the microcontroller chip without the need of taking it out of the circuit. Basically these pins are the SPI computer bus pins that are present on the Digital Input / Output headers. They are simply also connected to another header. So these SPI computer bus pins also called ICSP pins here are used to program the microcontroller chip and also used to upload the Bootloader in the new microcontroller chip. The discussion on the Bootloader and how to upload it will be discussed in the next post.
Arduino UNO Applications:
Before discussing the programming language of the Arduino UNO let us first know the applications of the Arduino UNO for motivation. So basically the Arduino UNO can be used in any system that requires the microcontroller. It is now the most commonly used microcontroller development board that is equally popular among the hobbyists and the engineering students. Some of the embedded systems in which the Arduino can be used are listed below:
- IR remote based Home Automation System.
- Bluetooth controlled Home Automation System.
- IoT enabled Home Automation System.
- RC car.
- Mobile lifter.
- Hurdle Avoiding Vehicle.
- Wall climbing vehicle.
- Autonomous vehicle.
- Robotic arm.
Arduino UNO programming language:
One of the perks that make Arduino UNO quite popular among the hobbyists and beginners is its easy to use programming language and programming. The programming language used by the Arduino UNO is the C++. The Arduino UNO IDE has a well-defined function for each task that is easy to remember. As an example the function that specifies the Arduino UNO digital Input / Output pin to work as input is :
Here in this function there are two arguments. First argument is the pin number which we want to make input or output and second argument specifies the property that is input or output to the pin number used. The detailed discussion on programming the Arduino UNO will come later in the next posts.
That is all for now I hope this post would be helpful for you. In the next post I will come up with more interesting topics. Till then stay connected, keep reading and enjoy learning.s