In this post I will discuss about the detailed introduction of Arduino NANO for Beginners. In the previous post I have discussed about brief introduction of the Arduino UNO and Arduino MEGA there I have discussed about the Arduino UNO board and Arduino MEGA board, specifications of the Arduino UNO and Arduino MEGA, microcontroller IC on which Arduino MEGA and Arduino UNO is based, applications of the Arduino UNO and Arduino MEGA and the programming of the Arduino UNO and MEGA.
Introduction to Arduino NANO for Beginners:
In this post I will discuss the overview of the Arduino NANO board, pinout of the Arduino NANO, specifications of the Arduino NANO, microcontroller IC on which Arduino NANO is based and finally the comparison of the Arduino UNO and MEGA board with the Arduino NANO board. So sit back, keep reading and enjoy learning.
Arduino NANO Board:
Arduino NANO is the open-source microcontroller development board based on the ATMEGA328P microcontroller IC. The microcontroller IC on which the Arduino UNO and Arduino NANO is based is usually the same by the way sometimes the difference lies in the package type of the microcontroller IC. Having same microcontroller IC it follows that the crucial specifications of both the Arduino UNO and Arduino NANO are essentially the same. The Arduino NANO is sometimes preferred over the Arduino UNO when there is limitation on the space constraint. Arduino NANO is quite small in size as compared to the Arduino UNO and can easily be mounted on the Breadboard making it useful in Breadboard based prototypes. Arduino NANO has 14 Digital Input / Output pins and 8 analog pins. The Arduino NANO has two additional Analog to Digital converters as compare to the Arduino UNO so that NANO has two additional Analog pins. Arduino NANO has one UART, one Inter-Integrated Circuit (I2C) computer bus and one Serial Peripheral Interface (SPI) computer bus. Arduino UNO also has one UART, one SPI and one I2C interface on board. Out of the 14 digital input / output pins 5 pins are PWM (Pulse Width Modulation) enabled. The discussion on the PWM phenomenon and the peculiar use of these PWM enabled pins will be discussed later in the posts. Some differences that exist between the Arduino UNO and Arduino NANO will be pointed out later in the post. The Arduino NANO looks like the one in the following figure:
As can be seen in the image above that the Arduino NANO is quite different from the Arduino UNO. The Arduino NANO has micro USB port with the help of which Arduino NANO can be programmed or monitored. Note that the Arduino UNO has the type B USB connector while the Arduino NANO has a micro USB connector implying that the USB cable required for the programming of Arduino NANO is different. Also note in the image that Arduino NANO has no power jack as was found in the Arduino UNO and Arduino MEGA. The Arduino NANO can be powered up either through the USB connector or through the Vin pin present on the Arduino NANO board, the discussion on the pin will follow later in the post.
Arduino Integrated Development Environment (IDE):
In the post on the Arduino UNO we learned that the Arduino UNO can easily be programmed using the Arduino IDE. The Arduino NANO can also be programmed in the similar way; that is the programming of the Arduino NANO is not different from that of the Arduino UNO however it should be kept in mind that Arduino NANO has different number of pins and different pin configuration. The care should be taken while configuring the Arduino NANO pins. 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 NANO 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 NANO later in the post. Note that the Arduino NANO has the micro USB port on it which means that USB cable used for programming the Arduino NANO is different from that of the Arduino UNO and Arduino MEGA.
Arduino NANO Features:
Let us now learn some of the common specifications of the Arduino NANO microcontroller development board. Before diving deep into the discussion it is important to keep in mind that the Arduino NANO should be employed in the case when Arduino UNO does not meet the requirements of the project. For example if one needs to design the system that has limited space then he would go for the Arduino NANO to save the space. The space constraint is the only constraint that is kept in mind when selecting the Arduino NANO over the Arduino UNO. One other consideration is the additional Analog pins present on the Arduino NANO as compared to the Arduino UNO.
- Microcontroller IC:
- Operating Voltage:
- Input Voltage:
5volts. Unlike the Arduino UNO and Arduino MEGA the Arduino NANO should not be supplied with voltage more than 12 volts.
- Digital I/O Pins:
14 (of which 5 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 2 KB used by bootloader
- Clock Speed:
16 MHz (All the operations are synced by this clock)
As can be seen in the specifications that the Arduino UNO and Arduino NANO shares many of the properties. They have same amount of EEPROM and SRAM. 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 NANO Pinout:
Let us now dive into the discussion about the pinout of the Arduino NANO. As described earlier that the Arduino NANO is based on the ATMEGA328P microcontroller IC so it follows that the pinout of the Arduino NANO is simply that of the ATMEGA328P microcontroller but note here that the Arduino NANO 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 NANO that there are two headers mounted on board. One header bears the Digital Input / Output pins and the other header bears the Analog input pins and the voltage pins.
As pointed out earlier that the Arduino NANO 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 D0 named Rx and pin number D1 named Tx are the receive and transmit pins of the UART (Universal Asynchronous Receiver and Transmitter) respectively. The pin number 6, 8, 9, 12, 13 and 14 are the PWM (Pulse Width Modulation) enabled 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.
The header on the other side of the Arduino NANO bears the voltage pins and the Analog pins. There are total eight analog pins on this on this header. 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 pins on this header are used to power up the Arduino NANO board these pins are also used to deliver power from the Arduino NANO board to other peripheral devices or the sensors attached to the Arduino NANO microcontroller development board.
Let us now discuss in detail the digital Input / Output pins, Analog input pins and Voltage pins of the Arduino NANO.
Arduino NANO Digital Input / Output Pins:
As described in the previous section that the Arduino NANO 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 NANO. 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. Another point worth mentioning is that six of the 14 digital input / output pins are PWM enabled pins that is these pins can provide PWM (Pulse Width Modulation) signal as output. These PWM pins find applications in which we need to regulate something for example the speed of the motor or brightness of the lamp. The digital input / output pins of the Arduino NANO range from D0 to D13.
Arduino NANO Analog Pins:
Let us now learn about the Analog pins of the Arduino NANO microcontroller development board. As described earlier in this post that there are total 8 analog pins present on the Arduino NANO 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 eight different sensors at a time. Notice in the image above that the pin A4 and A5 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 NANO Vin Pin:
Let us now discuss the Vin pins of the Arduino NANO board. The last pin called the Vin pin is used to connect power supply to the Arduino NANO. That is 5 volt battery or power adapter can be connected to the Arduino NANO to deliver power through this pin. As it can be seen in the image that the Arduino NANO 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 NANO. With the help of these pins the need of additional power supplies is eliminated. It is important to note here that the Arduino NANO can supply only limited supply of current through these and if connected to the strong load may damage the Arduino NANO development board.
Arduino NANO Schematic:
Let us now discuss the Vin pins of the Arduino NANO Schematic.
Arduino NANO 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 NANO Applications:
Before discussing the programming language of the Arduino NANO let us first know the applications of the Arduino NANO for motivation. So basically the Arduino NANO 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 NANO programming language:
One of the perks that make Arduino NANO quite popular among the hobbyists and beginners is it’s easy to use programming language and programming. The programming language used by the Arduino NANO is the C++. The Arduino NANO IDE has a well-defined function for each task that is easy to remember. As an example the function that specifies the Arduino NANO 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 NANO 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.