A noobs way to roughly understand what an Arduino is.
Since I was a kid I liked the idea of being able to make my own smart system such us a smart lock for your home, were you could provide a password in order to go through a door. It wasn’t an idea that didn’t already exist, code pass locks weren’t something new, but I was intrigued by the idea of being able to make such a system at home like a DIY project.
In my mind I would imagine the password would be provided by a keyboard to my computer and then after it was authenticated a lock system would open, a DIY lock system at that. This all seemed very complex back then and quite impractical. Imagine a huge computer being needed for such a small task and cables everywhere. Although I would have loved to make such a feat in my own home, back then I didn’t have the resources nor the knowledge to do so.
Arduino happened! It provides you with the hardware in a compact board and the IDE software to program it. A very practical and easy to use package that provides you the resources to make projects like the one above! On top of that you can make your own unique system with input methods like a keyboard or a sensor and output methods with compatible widgets like LEDs and monitors or many others that you can program to perform an action like the electronic lock system I described earlier in the post. With the help of the internet, a documented try to make a project like this is fairly easy to find and follow to make your own system at home.
Being curious I had a lot of questions when I had first heard about Arduino and after some research I had the answers to most of my questions. The rest of this post is the information I gathered from the research that helped me understand the way the Arduino works.
What is an Arduino?
Arduino is an open-source platform that you can use to build various projects. This platform consists of both a hardware (programmable circuit board) and a software(IDE). Arduino is able to read input and turn it into output. The input can come from various widgets or sensors that can be connected with the board and the output can be in the form of a message on a screen, turning on a led or even making a post online.
You can tell your board what action to perform by loading it with code using the Arduino IDE(Blink) that runs on your computer. The loading of the code is done using a USB cable making the Arduino more universal and easy to program. The programming language that is used on the IDE is a simplified version of C/C++ making it easy to learn the language from scratch or transition from regular C/C++ or other objective programming languages. You can also use a different IDE to program your board but configuration is needed to link it to the Arduino core libraries or you can simply use Arduino’s web editor.
There are many varieties of the Arduino board and at this time there are 23 available for purchase (not including modules, shields, kits, accessories and upcoming boards). One of the more popular boards in the Arduino series is the UNO which will be used as an example to show the general components of the board later on this post. The different versions of the board provides you with the variety to get a more powerful board or one with better suited characteristics for you or your upcoming project.
What’s on the board?
For reference I am using the Arduino UNO board, but the components are very similar to all boards.
Power USB and Barrel Jack (1)
Of course, a power source is needed for the board to function. The Arduino UNO can be powered from a USB cable straight from your pc or with a wall supply with a barrel jack. The USB is also how you will load your code on the board.
The main future of the Arduino is that you can make your own circuit. There are various pins on the board that provides you with that possibility.
GND: GND can be used to ground your circuit.
5V & 3.3V: 5 volts supply of power, and the 3.3 volts supply of power. Used to power your extra sensors and components.
PWM: The digital pins with (~) next to them act as normal digital pins, but can also be used for Pulse-Width Modulation (PWM). They simulate analog output. For example a pulsating LED.
Analog: Pins A0 through A5 read analog signal (Analog In) from your analog sensor and convert it into a digital value.
Digital: Pins 0 through 13 can be used for digital input and output.
AREF: The Analog Reference configures the reference voltage used for analog input (i.e. the value used as the upper limit for the analog input pins.)
IOREF: It is to let a shield know what voltage levels to expect on the I/O pins from the Arduino 3.3V or 5V.
RESET: You can use this pin to as an external reset button simply by using a push button and two wires connecting the reset pin and a GND pin with that button.
TX RX LEDs (3)
TX stands for transmit and Rx for receive. TX and RX indicator LEDs that give visual indications whenever your Arduino is receiving or transmitting data.
Main IC (4)
The black chip is an Integrated Circuit which has inside multiple small transistors, making it a small processor,is the brains of your Arduino.
Voltage Regulator (5)
It controls the amount of voltage that is let into the Arduino board and turns away any extra voltage. Plugging the board to a 20 volts and greater power source will still fry it I am sure.
Power LED Indicator (6)
Simple stuff! LED is on when your Arduino is connected to a power source.
Reset Button (7)
The “Have you tried turning it off and on again” button. It connects the reset pin to ground and restarts your loaded code.
ICSP 2×3 pins (8)
It is an AVRtiny programming header for the Arduino consisting of MOSI, MISO, SCK, RESET, VCC and GND, it is an expansion of the output pins. It can also be used to restore the bootloader to the ATmega Chip (Main IC (4)) if the bootloader can’t function or is missing.
Things like fingerprint scanners, motion and pressure sensitive sensors, LCD monitors, keyboards and various others are compatible and easy to connect to your board. With a little bit of wiring and coding your project will be ready for takeoff!
Also available are several shields. Shields are printed circuit expansion boards that can provide motor controls for 3D printing projects or other applications, GPS, Ethernet and LCD capabilities.
Arduino is a powerful open source tool that can help achieve a variety of projects, so don’t be afraid to get creative and make mistakes while learning! The internet is full of possible projects that can get you started. Start on a project and give it your own spin with tweaks here and there if you are not ready to get on schematic design and circuit creation, it is not as scary as it looks! So, learn and have fun! Here is an awesome digital thermometer widget by George, give it a try.
Here are some links for Arduino Uno and some sensors:
Some of the above links may be affiliate links ,meaning ,at no additional cost to you ,if you click through and make a purchase a small commission is earned to help support the site and the authors.Read more here.
The following links are the sources from my research and have been of great help in understanding the workings of the Arduino.