Arduino Pinout
Arduino Pinout
Arduino Pinout
Barrel Jack - The Barrel jack, or DC Power Jack can be used to power your Arduino
board. The barrel jack is usually connected to a wall adapter. The board can be
powered by 5-20 volts but the manufacturer recommends to keep it between 7-12
volts. Above 12 volts, the regulators might overheat, and below 7 volts, might not
suffice.
VIN Pin - This pin is used to power the Arduino Uno board using an external power
source. The voltage should be within the range mentioned above.
USB cable - when connected to the computer, provides 5 volts at 500mA.
There is a polarity protection diode connecting between the positive of the barrel
jack to the VIN pin, rated at 1 Ampere.
The power source you use determines the power you have available for your circuit.
For instance, powering the circuit using the USB limits you to 500mA. Take into
consideration that this is also used for powering the MCU, its peripherals, the on-
board regulators, and the components connected to it. When powering your circuit
through the barrel jack or VIN, the maximum capacity available is determined by the
5 and 3.3 volts regulators on-board the Arduino.
5v and 3v3
They provide regulated 5 and 3.3v to power external components according to
manufacturer specifications.
GND
In the Arduino Uno pinout, you can find 5 GND pins, which are all interconnected.
The GND pins are used to close the electrical circuit and provide a common logic
reference level throughout your circuit. Always make sure that all GNDs (of the
Arduino, peripherals and components) are connected to one another and have a common
ground.
These pins serve as analog inputs but can also function as digital inputs or
digital outputs.
Arduino Pins A0-A5 are capable of reading analog voltages. On Arduino the ADC has
10-bit resolution, meaning it can represent analog voltage by 1,024 digital levels.
The ADC converts voltage into bits which the microprocessor can understand.
One common example of an ADC is Voice over IP (VoIP). Every smartphone has a
microphone that converts sound waves (voice) into analog voltage. This goes through
the device�s ADC, gets converted into digital data, which is transmitted to the
receiving side over the internet.
Arduino Uno Pinout - Digital Pins
Pins 0-13 of the Arduino Uno serve as digital input/output pins.
? The absolute max current provided (or sank) from all pins together is 200mA
On the Arduino, When the digital pins are configured as output, they are set to 0
or 5 volts.
When the digital pins are configured as input, the voltage is supplied from an
external device. This voltage can vary between 0-5 volts which is converted into
digital representation (0 or 1). To determine this, there are 2 thresholds:
? Above 2v - considered as 1.
When connecting a component to a digital pin, make sure that the logic levels
match. If the voltage is in between the thresholds, the returning value will be
undefined.
What is PWM?
In general, Pulse Width Modulation (PWM) is a modulation technique used to encode a
message into a pulsing signal. A PWM is comprised of two key components: frequency
and duty cycle. The PWM frequency dictates how long it takes to complete a single
cycle (period) and how quickly the signal fluctuates from high to low. The duty
cycle determines how long a signal stays high out of the total period. Duty cycle
is represented in percentage.
In Arduino, the PWM enabled pins produce a constant frequency of ~ 500Hz, while the
duty cycle changes according to the parameters set by the user. See the following
illustration:
PWM signals are used for speed control of DC motors, dimming LEDs and more.
Communication Protocols
Serial (TTL) - Digital pins 0 and 1 are the serial pins of the Arduino Uno.
Software serial and hardware serial - Most microcontrollers have hardware designed
to communicate with other serial devices. Software serial ports use a pin-change
interrupt system to communicate. There is a built-in library for Software Serial
communication. Software serial is used by the processor to simulate extra serial
ports. The only drawback with software serial is that it requires more processing
and cannot support the same high speeds as hardware serial.
SPI - SS/SCK/MISO/MOSI pins are the dedicated pins for SPI communication. They can
be found on digital pins 10-13 of the Arduino Uno and on the ICSP headers.
What is SPI?
Serial Peripheral Interface (SPI) is a serial data protocol used by
microcontrollers to communicate with one or more external devices in a bus like
connection. The SPI can also be used to connect 2 microcontrollers. On the SPI bus,
there is always one device that is denoted as a Master device and all the rest as
Slaves. In most cases, the microcontroller is the Master device. The SS (Slave
Select) pin determines which device the Master is currently communicating with.
MISO (Master In Slave Out) - A line for sending data to the Master device
MOSI (Master Out Slave In) - The Master line for sending data to peripheral devices
SCK (Serial Clock) - A clock signal generated by the Master device to synchronize
data transmission.
I2C - SCL/SDA pins are the dedicated pins for I2C communication. On the Arduino Uno
they are found on Analog pins A4 and A5.
What is I2C?
I2C is a communication protocol commonly referred to as the �I2C bus�. The I2C
protocol was designed to enable communication between components on a single
circuit board. With I2C there are 2 wires referred to as SCL and SDA.
Interrupt - INT0 and INT1. Arduino Uno has two external interrupt pins.
External
Pin Change
There are two external interrupt pins on the ATmega168/328 called INT0 and INT1.
both INT0 and INT1 are mapped to pins 2 and 3. In contrast, Pin Change interrupts
can be activated on any of the pins.
Arduino Uno Pinout - ICSP Header
ICSP stands for In-Circuit Serial Programming. The name originated from In-System
Programming headers (ISP). Manufacturers like Atmel who work with Arduino have
developed their own in-circuit serial programming headers. These pins enable the
user to program the Arduino boards� firmware. There are six ICSP pins available on
the Arduino board that can be hooked to a programmer device via a programming
cable.
The important thing to know when you choose a board for your project is its
capabilities and limitations. It�s also important to understand the different
communication protocols that the board uses. Of course, you don�t need to remember
all of this information, you can always go back to this post and read the relevant
information for you (this is a good time to bookmark this post btw).
If you have any comments or questions, you are welcome to write them below and of
course, feel free to share this post with your Arduino-loving friends