When you get a brand new Arduino Uno, you hold it in your hand and examine it. The Arduino is versatile because of all those components mounted on it. In other words, each of those tiny peripherals has a purpose. In this article, we will take a brief look at all the major parts of the Arduino Uno hardware.
Starting with what seems to be the most protruding piece on the board, the USB port is through where both, power and data is provided to the system.
It is a Type B standard port, and you will need a standard A-B cable to connect it to your computer.
The addition of a secondary microcontroller, ATmega 16U2, allows the main processor on the Arduino Uno to communicate with the host computer via a USB. The ATmega 16U2 supplies serial data to the main processor and has a built-in USB peripheral.
The host computer provides 100mA of current at 5V to the Uno for an unenumerated device and 500mA at 5V for an enumerated device. Though this current is enough for small projects, it is not sufficient for larger loads like relays, motors, etc.
Power jack (Barrel connector)
Supplying power via the barrel connector is one of the ways in which we can switch on the Arduino Uno. It is a circular port, 2.1mm in diameter. The center pin is positive, and the outer sleeve is ground (GND).
Make sure that the AC to DC adapter you will use to plug into the barrel connector has an output in the range of 6-20V (7-12V recommended).
In addition to powering up the Arduino Uno hardware, the power supplied via the barrel connector can be accessed at Vin to power up components on the breadboard or shields.
Shields are additional boards that usually follow the form factor of the Arduino Uno and can be attached to the Arduino to add different functionalities. For example, with the Ethernet shield you can easily hook your project to the internet. There are many shields available for the Arduino Uno; we will cover those in a later post.
The ATmega 16U2 is primarily responsible for USB/Serial signal conversion. It sends the serial data to the ATmega 328P and can be thought of as a communication enabler between the host computer and the Arduino board. The ATmega 16U2 has its own set of peripherals that assist in its important task. Hence, these peripherals and the ATmega 16U2 together form an essential subsystem of the Arduino board.
ATmega 328P – The heart of the Arduino hardware
This is the main component of the Arduino board. Everything else on the board exists to allow us to experiment with the ATmega 328P. There is a lot that should be learned, in terms of hardware and software, about the ATmega 328P. Eventually, towards the middle of this course, we will take up more interesting and intricate topics.
But for now, this is what you should know.
- It’s an 8-bit microcontroller
- It has 32 kB of flash memory
- It has 2kB of SRAM
- It’s capable of reaching thorough-puts of 1 MIPS per MHz.
- It lacks a USB interface.
- It has 20 GPIO pins.
- It’s equipped with an SPI serial port.
There are two ICSP header pins on the Arduino Uno. One for each microprocessor. ICSP is an acronym for In-Circuit-Serial-Programming.
As you read earlier, both the microprocessors have a firmware uploaded on them. The ATmega 16U2 has a USB serial firmware that is used for USB-Serial translation, and the ATmega 328 has a firmware that intercepts serial data from the 16U2 and allocates program memory to store it.
When manufacturing the board, the respective firmware is uploaded after the ICs are mounted using the ICSP pins. The ICSP pins can also be used to directly upload sketches to the ATmega 328 and change/update firmware on both the ICs.
There are many firmware available that can extend the functionality of the Arduino hardware. We will take a look at those in subsequent posts.
The 16MHz crystal oscillator is connected to the ATmega16U2 and is essential for perfectly synchronized serial communication. The ATmega328 has it’s own oscillator as seen in the schematic. But the board uses a ceramic resonator instead of the crystal oscillator. We will take a look at the functions of both the devices in subsequent posts.
The function of the oscillator and the resonator is same. They are used to time the circuit properly. But what does that mean? Suppose you need a 2-second delay between each LED blink, the 2 second time gap is calculated by the oscillator/resonator.
Digital I/O pins
All the general purpose IO pins on the Arduino (analog/digital) can be used as digital I/O pins. Furthermore, these are the pins that we will be using to communicate with our target devices. Digital input pins read digital inputs, and digital output pins write digital outputs.
Analog input pins
There are six analog pins on the Arduino Uno (Eight if you are using the SMD version) that are classified as Analog input pins.
Analog data is basically all the values in a particular range. The analog input pins can measure voltage (or signals) with a voltage in the range of 0-5V (we can use the AREF pin to modify this range).
Digital data is either LOW or HIGH; analog data encompasses all the values between these two thresholds. Sensors usually output analog readings. The ATmega 328 cannot process analog data directly. It is equipped with a special peripheral component called the Analog to Digital Converter (ADC). The ADC is responsible for reading analog inputs and converting them into digital data for the microprocessor.
There is a slight confusion in the naming convention because functionally, some of the digital pins can provide analog outputs in the form of PWM (Pulse Width Modulated) outputs. Similarly, all the analog input pins (A0-A5) can be used as digital pins as well. Let’s summarize that so it doesn’t confuse us.
There is a total of seven power pins on the Arduino Uno. Each pin has its significance and is part of the power supply circuit. We will enlist the main functions of each of these pins below and dive deeper into the power supply circuit in later articles.
Arduino Vin pin
The Vin pin on the Arduino board can be used to switch the board on. Otherwise, it can be used as a power source for other components in your project.
In a scenario where the Vin pin is used as an input to power up the Arduino board, it needs a supply of 6V-12V, this subsequently gets regulated to 5V by the onboard voltage regulator. This 5V eventually powers up the Arduino board.
When used as a power source, the Vin pin gets its power from the barrel connector. Remember, this voltage is accessed before it passes through the onboard voltage regulator. Therefore, if you are drawing power from the Vin pin, you will get the voltage supplied to the barrel connector.
Arduino GND pin
There are three ground pins available on the Arduino Uno. Two of these are on the power rail. Generally, in electronics, two circuits that are/or need to be interfaced with each other have a common voltage reference point and that is called ground (GND).
Why does the Arduino Uno have multiple ground (GND) pins?
This is a very common question asked by beginners and surprisingly, some experienced users too. The most simple reason is that the presence of multiple pins adds convenience while prototyping. When the number of components is high, or you want to decrease the quantity of wiring used, some extra GND pins come in handy.
Another reason is that mostly analog devices are connected on a single GND pin and separately from the digital devices.
It’s okay if you can’t remember all the specifications precisely yet. We got acquainted with the basics of the hardware in this post. In the next post, we will cast a similar look over the software.