So you might have heard about Arduino from your friends at school or on the internet, it seemed quite exciting, but you don’t know where to start, fret not as this article will let you know the basics of getting started with your shiny new Arduino.
Arduino was a project started at Interaction Design Institute Ivrea (IDII) in Ivrea, Italy, with its primary goal being creating affordable and straightforward tools for non-engineers to use and create digital projects. During its infancy, the project consisted of just three members- Hernando Barragán, Massimo Banzi, and Casey Reas. Hernando Barragán worked under the guidance of Massimo Banzi and Casey Reas and created a development platform called Wiring as his masters’ thesis project at IDII. The development platform consisted of the ATMega168 microcontroller as its brains and used an IDE based on Processing, which was co-created by Casy Reas. Later, Massimo Banzi, along with two other students from IDII, namely- David Mellis and David Cuartielles, added support for the cheaper ATMega8 microcontroller. The three, instead of working on developing and improving Wiring, they forked it and renamed the project to Arduino. The initial core Arduino team consisted of Massimo Banzi, David Cuartielles, Tom Igoe, Gianluca Martino, and David Mellis, but Barragán was not included.
Now that you know the origin of Arduino, it is essential to get yourself acquainted with the hardware that Arduino as a company offers. One of the main reasons for Arduino being so accessible and affordable across the globe is because all of the Arduino hardware is open-source. Being open-source has a plethora of advantages- anyone can access the design and build of the device and make improvements; anyone can use the same hardware design to create their product lineup. Since Arduino is open-source, it has its own devoted community that strives to help the core company develop and improve its hardware products. Another significant advantage of being open-source, especially in the case of hardware, is that local companies can create replicas of the products, making it more accessible and affordable to the local consumers as it avoids hefty customs and shipping charges. All of these advantages contribute to Arduino being so widespread, affordable and ever-improving.
It is necessary to know that Arduino doesn’t necessarily offer just one piece of hardware, it provides a range of boards, each of which caters to a different level of expertise and have different use-cases altogether. Arduino Uno is one of the most basic and popular boards that Arduino offers. This is because it features an ATMega328 microcontroller that is both cheap and powerful enough for most basic beginner-level projects. Once you’re familiar with Arduino IDE, you can move up to boards with more powerful and sophisticated chipsets like the MKR range which is concerned with IoT applications and inter compatibility, or the Nano range which as the name suggests is designed to keep the form factor as small as possible while packing most of the features and power of the full-sized boards.
Understanding the Hardware
Note: Since this guide is aimed at absolute beginners, this article is limited to getting started with
So you got yourself an Arduino Uno, and you’re ready to jump into the world of electronics and join the community of makers from around the world, but before you begin with programming and external circuitry through breadboards and whatnot, it is necessary to understand the layout and circuitry of your Arduino Uno.
Using the above image as a reference, the labeled components of the board respectively are-
- USB: can be used for both power and communication with the IDE
- Barrel Jack: used for power supply
- Voltage Regulator: regulates and stabilises the input and output voltages
- Crystal Oscillator: keeps track of time and regulates processor frequency
- Reset Pin: can be used to reset the Arduino Uno
- 3.3V pin: can be used as a 3.3V output
- 5V pin: can be used as a 5V output
- GND pin: can be used to ground the circuit
- Vin pin: can be used to supply power to the board
- Analog pins(A0-A5): can be used to read analog signals to the board
- Microcontroller(ATMega328): the processing and logical unit of the board
- ICSP pin: a programming header on the board also called SPI
- Power indicator LED: indicates the power status of the board
- RX and TX LEDs: recieve(RX) and transmit(TX) LEDs, blink when sending or recieving serial data respectively
- Digital I/O pins: 14 pins capable of reading and outputting digital signals; 6 of these of these pins are also capable of PWM
- AREF pins: can be used to set an external reference voltage as the upper limit for the analog pins
- Reset button: can be used to reset the board
Getting started with the Arduino IDE
Now that you’re familiar with the hardware, its time to learn about the development environment using which you’re going to program your Uno. The Arduino IDE is the best place to start your journey in programming your Uno. To get started, visit this page and download the latest build of the Arduino IDE for your Mac or PC. Go ahead and install the IDE on your PC or Mac and open it.
As you open the IDE, you’ll be greeted by a window similar to the one shown in the above image. The text editor is where you’ll be writing your code; you’ll use the verify button to compile and debug the written program, the save button to save the program and the upload button to upload the program to the board. Before you click on the upload button, it is necessary to select your board, Uno in this case, from the tools menu in the Menu Bar. After you choose your appropriate board, make sure you specify the correct port on your PC or Mac that you’ve connected your Uno to, in the IDE.
Uploading your first program
In this example program, we’ll be blinking the inbuilt L LED located right above the RX and TX LEDs. The Arduino IDE includes many basic programs to help you get started with your Uno. For this example, we’ll be using the inbuilt ‘Blink’ program. To open this program, go to the Files menu in the Menu Bar; click on Examples; click on 01.Basics; select Blink. Now that you’ve opened the example program, its time to upload the program, to do this, click on the upload button and wait for the process to complete. If your Output Pane header turns amber and shows an error which reads “Serial Port COM’x’ not found”, you’ve not connected your board correctly or that you’ve not specified the correct port that your board is connected to in the IDE. When you advance and start writing your own programs, you might run into errors while compiling and uploading; this can be because of a syntax error in the program. After you’ve corrected the errors and uploaded the program, you’ll see that the inbuilt LED blinks, alternating between the ON and OFF state every second.
Congrats on uploading and executing your first piece of code on your Arduino Uno. You can now tinker with the program you just uploaded by changing the values of delay. This will change the pattern and the rate of blinking. Do keep in mind that the default unit of time in the Arduino IDE is milliseconds; also remember that you’ve to upload the program to the board after you’ve made changes in the values of delay to notice the changes in the rate and pattern of the blinking.
Now that you’re familiar with the IDE and the hardware on the board, you can move up to programs that require external actuators and sensors using the inbuilt example programs as a reference. After you’ve gained some expertise with the board, you can move on to create projects that inculcate your innovative and innovative ideas. Soon in your journey through electronics, you’ll realize that the Uno is not powerful enough or does not pack the features you require for your expert level programs, that is when you’ll have to consider upgrading your board to something from the MKR line or to more powerful lines like the Yun.
- Different Operating Systems
- Check if a number has prime count of divisors
- Java class dependency analyzer in Java 8 with Examples
- 10 Important Android Studio Shortcuts You Need the Most
- Evolution of Malwares from Encryption to Metamorphism
- What is Heap Pollution in Java and how to resolve it?
- Malwares - Malicious Software
- How to Create a Custom Image Magnifier using jQuery ?
- Laravel | Front-end Scaffolding
- ES6 | Multimedia
- How to use filter within controllers in AngularJS ?
- Create a GeeksforGeeks Wrapper Application using Electron
- How to enable PHP's openssl extension to install Composer ?
- How to draw Inscribed circle of a triangle using p5.js ?
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to email@example.com. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.