Arduino

What is Arduino Leonardo

When it comes to using a microcontroller in different projects the first thing comes to one’s mind is the Arduino platform. This is because this platform provides a wide range of microcontroller boards designed for making effective use of microcontrollers. The Arduino Leonardo is one of the best boards provided by the Arduino platform and we have briefly explained the pinouts and specifications of the Arduino Leonardo in this guide.

Arduino Leonardo is another addition in the Arduino board family. Leonardo mostly resembles the Arduino Uno but the key difference between Leonardo and Uno is that Leonardo comes with ATmega32u4 controller that has built-in USB support while Uno comes with ATmega328 that requires a separate chip for USB communication known as 16u2.

What are the specifications of the Arduino Leonardo board?

The Arduino Leonardo is the first one of its kind that comes with the one microcontroller and has a built-in USB functionality unlike Arduino Uno and Mega where 16u2 chip is used for serial communication with PC. The controller used in this board is ATmega32U4 which has a clock speed of 16 MHz and provides a flash memory of 32 kilobytes to the board. Like other Arduino boards the operating voltage of the Arduino Leonardo is 5 volts. The controller for the Arduino Leonardo has a static ram of 2.5 kilobytes and EEPROM of 1 kilobyte. The image below shows the Arduino Leonardo board:

Arduino Leonardo pinout 

The Arduino Leonardo has 32 pins in total in which 14 pins are for digital inputs and outputs whereas 6 pins are for the analog input and outputs. To supply power to the peripherals connected with Arduino Leonardo there are a total nine pins including the pins for providing the reference signal for analog and digital devices. For communication there are SCL, and SDA pins given, however we can use pins A5 and A4 for the SCL and SDA as well.

For uploading the code to  Arduino Leonardo also has  6 header pins . We have classified the pins of Arduino Leonardo into different categories and based on those categories we have given the table below that shows the pinouts for Arduino Leonardo.

Pin category Representation Description
Power pins 5V, RESET, 3.3V, GND (3), Vin, AREF, IOREF Pins used to deliver power to the device connected with Arduino
Digital pins 0 to 13 Pins used for digital input and outputs of Arduino
PWM pins 13,11,10, 9, 6, 5, 3 Pins used to generate the pulsating signal
Analog pins A0 to A5 (A5 for SCL and A4 for SDA) Pins used for analog inputs and outputs of Arduino
Miscellaneous pins Additional pins for SCL and SDA (One not connected pin [NC]) SCL is the clock pin, and the SDA is the data pin for I2C and TWI communication devices
6 header pins ICSP Pins used to program the controller

To further describe the Arduino Leonardo, we have explained the pins of the board by classifying them into different parts that will help the user in working on the Arduino Leonardo boards.

Digital pins of the Arduino Leonardo

To connect the digital devices with the Leonardo the Arduino has provided 14 pins in which the 0 and 1 pins are for transmitting and receiving the data and are also called the communication pins. From the word digital you can suppose the data will be in 0 and 1 form. Similarly to generate the input and output in the form of  pluses you can use the pin 13,11,10, 9, 6, 5, 3 of the Leonardo as they are dedicated pins of PWM and the duty cycle of the pulse is from 0 to 255.

For the help of the user, we have given the image in which we have highlighted the respective pins

Analog pins of Arduino Leonardo 

There are 6 analog pins provided in the Arduino Leonardo that can be used to connect the analog devices and have the resolution of 0 to 1024. This means that the values will be in between 0 and 1024 and in terms of voltage the 5 volts will be 1024.

There are two dedicated pins next to the AREF pin that can be used for the data line and clock of the I2C devices. However, we can also use pins A4 and A5 as the SDA and SCL pins for the devices that used I2C and TWI (Two Wire Interface) communication protocols.

The SDA pin is the data line for the connected device while SCL is the clock pin of the connected device. The figure attached below shows the analog pins of the Arduino by highlighting it in red.

Power pins of Arduino Leonardo

To supply power to the devices connected to the Arduino Leonardo there are 10 pins provided. There are three pins of ground, one pin for 5 volts, one pin for 3.3 volts and two pins for giving the reference voltage for analog and digital devices.

There is also a reset pin given in the board to RESET the Leonardo using an external button. However, there is also a dedicated RESET button provided on the Leonardo board

To connect the Arduino board with the supply voltage there is one built in USB port and a jack for power supply is also provided. The USB port can be used for power as well as to upload the code to the Arduino. Whereas the jack provided for the supply is mostly used when the Arduino has to function in standalone mode. The image below shows the power supply pins and the RESET button of the Arduino Leonardo.

ICSP header pins of the Arduino Leonardo 

The Arduino Leonardo is equipped with 6 header pins that are dedicated for in circuit system programming (ICSP). These are mainly used to upload the code when the USB port is not available for uploading the sketch to the Leonardo:

Conclusion 

Arduino Leonardo is the one of the Arduino boards that has one microcontroller board and built-in USB functionality which makes it different from other boards provided by the Arduino platform. However, to use this board, one must be aware of the board specifications and also the pinout of the respective Arduino board so that the board can be used effectively. For ease of the students, we have described the purpose of each pin of the Arduino Lenardo in a very comprehensive way.

About the author

Aaliyan Javaid

I am an electrical engineer and a technical blogger. My keen interest in embedded systems has led me to write and share my knowledge about them.