The Arduino Uno hardware is straightforward. It has Input and output pins that are clearly labelled and easy to access. Likewise, every component on the board is organised in a very intuitive way. And to top it all off, we have access to the Arduino Uno datasheet, which details the layout of our development board.
So, why make this guide in the first place if Arduino Uno is so simple?
Well, It is usually the case that, for many budding innovators, Our first time around the Arduino Uno and its datasheet can be somewhat disconcerting.
But, there is good news.
The internet is teeming with resources to help us pull through this phase. And as luck would have it, this very post and its predecessors, happen to be one of these golden resources. This guide will make your first tango with your Uno a lot easier.
To that end, I recommend that you have a copy of the Arduino Uno datasheet near by. And more importantly, I highly recommend that you have your Arduino Uno development board with you as we go through this article together.
Without further delay, let us move on to the first component on our list.
The Microcontroller: The brains of the board
The microcontroller, or MCU, is the brains and core of our Arduino Uno. You can think of the microcontroller as a small computer, built into a single chip, which you can program to do certain tasks. In fact, the purpose of the rest of the board and its components, is to ensure that the microcontroller functions properly. As well as to provide a means to interconnect the microcontroller to other devices. Arduino Uno R3 boards come with a microcontroller called ATmega328P from Atmel.
USB Port: The Interface
We use the USB interface when uploading our sketches to our Arduino board. The interface is equipped with a type B USB connector. Secondly, our Arduino can use the USB interface to send and receive data to and from our PC during runtime. We can power our board through this port as well.
DC Power Port: Powering up our Arduino
The DC power port is dedicated to providing power to our board. It uses a 2.1×5.5mm DC female jack. We plugin a 7V – 12V DC power supply to this port. We can also connect a 9V battery to the DC port, using a DC barrel jack male adaptor and a 9V battery snap.
Pin Description: Arduino Uno Rev 3
The Pins on an Arduino Uno R3 board are primarily grouped into Digital pins, Analog pins and Power pins. Lets take a closer look.
Digital Input/Output (I/O) and PWM: Pins 0-13
There are 14 Digital input/output (I/O) pins on our Arduino Uno R3 board.They are labelled 0 to 13. We, the users, get to decide whether the digital pins will be used as input or output mediums when we connect them to other devices.
In input mode, we can connect a push button and detect when the button is pressed. In output mode, we can connect LEDs and turn them ON or OFF from our code. But this is just the beginning.
As we advance, we can use these pins to connect to the internet, control robots and even automate our homes
The digital pins can supply, and draw in 20mA of current, at 5V. This is enough to light up a standard 5mm LED, but it won’t drive an electric motor. If the current received or pulled from the digital I/O pins exceeds 40mA, then permanent damage can be done to our board.
Pins 3, 5, 6, 9, 10 and 11(all marked with a ~) can be used for Pulse Width Modulation(PWM) output. We will talk about this in a future post.
Analog Inputs: Pins A0-A5
Our Arduino Uno R3 has six analog pins labelled A0 to A5. These pins are used to read from analog devices. They measure analog voltages in the range of 0V to 5V. It is worth mentioning that these pins can also be used as Digital I/O pins as well. Something to keep at the back of our in minds for when we need extra I/O pins.
We have two power pins dedicated to powering external circuits. The 5V power pin supplies regulated 5V, and the 3.3V pin supplies regulated of 3.3V. These pins can be used to power other circuits that are connected to our board as well as independent circuits, working in conjunction with our Arduino. Our board also comes with three GND pins.
Additionally, we have a pin marked Vin. This pin, together with a GND pin can be used to power our board in a similar way as the USB port and DC power jack that we discussed earlier.
AREF, IOREF & RESET PIN
The AREF pin is used to set the reference voltage for the analog input pins. The IOREF pin provides the logic reference voltage, it is connected to the 5 volts bus. Sending a signal to this pin does nothing. We then we have the reset pin. The reset pin will cause our microntroller to reboot if we bring the pin down to 0V(by connecting it to GND).
The reset button is located at the top right corner of our board. It reboots our Arduino, just like the reset pin. This button comes in handy when our board becomes unresponsive due to errors in our code.
LEDs: ON, TX & RX
These three LEDs show the status of our board. The ON LED tells us when our board is connected to power. The TX LED tells us when our board is transmitting data. And the RX LED indicates when our board is receiving data.
There is also a fourth L LED that is linked to pin 13. It is commonly refered to as the built in LED and It can be turned on or off using code.
Special Function Pins
Some pins have special dedicated capabilities. In addition to their default functions, Pin 0 (RX) and Pin 1(TX) are used for UART communication. Pin 10(SS), pin 11(MOSI) , pin 12(MISO) and pin 13 (SCK) are used for SPI communication. Lastly, Pin A4(SDA) and Pin A5(SLC) are used for TWI or I2C communication. Again, don’t worry about these for now, we will pick them up as we go.
In-circuit Serial Programmer(ICSP)
These pins provide and alternative way of programming the microcontroller on our Arduino board. We won’t be using these pins as beginners. Unless, maybe in the unlikely event that we need to restore a damaged bootloader.
Bootloader: Its actually software
The bootloader is actually a piece of software. Even so, I felt that I at least mention it here because of the pivotal role it plays in how our board functions. It is a small program, about 0.5 KB in size, and it tells our microcontroller what it should do next after powering up or after a reset. It comes pre-installed in the flash memory of every microcontroller on an Arduino Uno board. The bootloader allows us to upload code to our board via the USB Interface. Without it, we would need additional programming hardware to do this.
And that brings us to the end. I believe we can now find our way around our Arduino Uno board, as well as its datasheet, with ease.
I obviously do not expect anyone to memorise all of this information in one sitting. Feel free to bookmark this page. You can return to it every now and again for a refresher.
Also, I did not mention every component. I left out the voltage regulators, USB to serial converter, oscillator and so forth. We can use our board without knowledge of these components. We will talk about them later on, if we ever decide to build our own Arduino board.
The next article will look at the Arduino software. Until then, I hope to see you in the comments section. I would love to hear your feedback and your thoughts on how we can make this series even better.
- Massimo Banzi – Getting Started with Arduino
- Ashwin Pajankar – Arduino Made Simple
- Neil Cameron – Arduino Applied
- Ahmed Ebeed- Arduino 2020 Guide
- Arduino datasheet