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 on the Arduino Uno has a purpose. In this article, we will take a brief look at all the major parts, peripherals, component and pins of the Arduino Uno board’s hardware. Here’s a list of all the different Arduino parts that we will be taking a gander at:
- The Arduino Uno’s USB connection
- Power jack (Barrel connector) on the Arduino
- ATmega 16U2 microcontroller.
- The main Arduino peripheral -ATmega 328P.
- Arduino ICSP header pins.
- The Arduino Uno’s 16MHz crystal Oscillator.
- Arduino Digital Input/Output pins and ports.
- The Arduino Uno Analog input ports and pins.
- Power pins.
Contents
What is the function of the USB Port of the Arduino Uno?
Starting with what seems to be the most protruding piece of hardware on the Arduino board, the USB port is through where both, power and data are provided to the Arduino Uno.
It is a Type B standard port, and you will need a standard A-B cable (shown below) 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 power supply to the Arduino Uno for an unenumerated device and 500mA at 5V for an enumerated device. An enumerated device is a device that a computer recognizes properly and thus loads the appropriate drivers for it. Here’s how you can solve the issue of your PC not recognizing your Arduino Uno. 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 Arduino 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.
What is the use of the ATmega 16U2 IC on the Arduino Uno?
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 Arduino component. All the other Arduino peripherals exist 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 free Arduino 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. Not a microprocessor as most people confuse it to be. Check out this post to understand the difference between microcontrollers and microprocessors.
- 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. SPI is a wired communication protocol. We will read more about these Arduino communication protocols here.
ICSP headers
There are two ICSP header pins on the Arduino Uno. One for each microprocessor. ICSP is an acronym for In-Circuit-Serial-Programming.
What is the use of the ICSP headers on the Arduino Uno?
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.
16MHz Oscillator
The 16MHz crystal oscillator is connected to the ATmega16U2. It is essential for perfectly synchronized serial communication. The ATmega328 has it’s own oscillator as seen in the schematic. But the Arduino 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.
What is the function of the crystal oscillator on the Arduino Uno?
The function of the oscillator and the resonator are the 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 Input-Output 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 external Arduino peripherals. Digital input pins read digital inputs, and digital output pins write digital outputs. The pins marked with the ∼ sign are capable of producing PWM signals. These PWM signals are important to drive motors and for other applications.
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.
Some Digital pins: Can give analog output
All Analog pins: Can give digital output, read digital input, CANNOT give analog output.
Power pins
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 Arduino power supply schematic in this article.
-
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 parts, 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.
Input: 6-12V; gets regulated to 5V
Output: Same as the voltage applied 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 most 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.