Getting Started With Arduino

Introduction

 
Being a Web application developer and with the buzz going on about IoT, I felt left out and way behind the crowd. So, I decided to start my journey in learning the IoT. Since I am a baby in this arena, I will keep sharing my crawling experience as I believe there will be many others who will be waiting to crawl.
 
I have decided to use an ARDUINO board in order to start my learning experience. Why!! Because it is economical, easy, and has its own IDE to let us write the code and upload it to the board. Let's learn something about Arduino first.
 

Arduino

 
Arduino is a simple microcontroller that is based on an input/output receiving unit. We can have it attached to any sensors, LEDs, switches, etc. The best part is it is open source and easy to understand and use. You can also contribute to the Arduino community, creating your own prototype programming. For beginners, Arduino is the best option, I would say!
 
To get started with it, you will need an Arduino Board first. So get it online at a very minimal rate, for around Rs.500 (Indian currency!). I will be using the Arduino UNO board.
 
Arduino
 
The above is the simple Arduino Board which does miracles. Let's understand the points mentioned in the diagram and their usage!
  • 1 - USB Jack
     
    This is the connecting female port, where the cable gets inserted in order to set a connection to the computer to have the IDE accessible and upload the programs.
     
    USB Jack
     
    Usually, it is a 2.0 USB port. The input and the output passage happens through this, we can consider this to be the starting point of the Board. Usually, the voltage acceptable is,
     
    Input Voltage (acceptable)- 7-12V
     
    Input Voltage (limit)- 6-20V
     
  • 2 - Power Jack
     
    As the name suggests, it is the external power supply. But be careful while using this, use a multimeter to check for the acceptable limit of power to be transferred to the board in order to avoid a short circuit.
     
  • 3 - GND Pins
     
    The grounded pins used to connect the jumper wires to have a grounded circuit. Usually, when we see the connection we will realize that GND pins are considered as the negative supply.
     
  • 4 - 5V Supply
     
    This is the point used to have the breadboard 5V supply in order to power the circuit, which we will check out in a few moments.
     
  • 5 - 3.3 V supply
     
    This is the point used to have the breadboard 3.3V supply in order to power the circuit. Same as the 5V but based on our circuit requirement we can also use this in case we are missing resistors.
     
    • IOREF:-Though not numbered in the diagram, this is an interesting port in the board, which provides the voltage ref. with which the microcontroller or the Arduino board operates.
       
    • Vin:-As discussed above the external supply to the board, to pass the voltage to the circuit (external), we can use this port.
       
  • 6 - Analog Input Pins
     
    These are the analog points in the board, which would help convert analog inputs to digital. Usually used to read analog signals.
     
  • 7,8,9 - Digital Pins
     
    The digital pins provide the circuit for the uploaded code to connect (layman terms). Used for digital I/O.
     
  • 10 - Reset Button
     
    It is self-explanatory, used to reset the microcontroller or the board.
     
  • 11 - ON
     
    When connected to the USB, this green led lights up to let us know the board is powered.
     
  • 14 - Voltage Regulator
     
    The voltage regulator supplied to the Arduino board.
     
  • 12 - RX-TX LEDs
     
    These are the LEDs that light up when the code or the program is successfully uploaded to the microcontroller. This is the practical implication I have come across so far.
For more info on the pins please refer to Arduino Pins.
 
So this is it about the Arduino board, a brief summary I would say! There is much more to this. Please refer here.
 
Some Prerequisites
 
Here are some pre-requisites required to learn and start on your work with the Arduino. After you get the Arduino board from the market, the next job is to install the Arduino IDE on your system in order to interact with the microcontroller.
 
To install the IDE visit the link: Arduino IDE Download. Here, you get a list of OS where you can install it, this proves it is cross-platform! :O Wow!! Another great feature.
 
After the installation, you need to connect the USB jack to the computer via the jack cord and get the Arduino connected.
 
The IDE somewhat looks like this,
 
IDE
 
Mark the highlighted portion below, it says Arduino UNO on COM3. COM3 is a serial port id, which suggests we select the Board connection on COM3 port.
 
For getting on with MAC, please follow the link here.
 
The selection is to be done under:
 
Tools-> Port-> "Select",
 
Port
 
The default code as you see goes like:
  1. void setup()    
  2. {     
  3.   // put your setup code here, to run once:     
  4. }     
  5. void loop()     
  6. {     
  7.   // put your main code here, to run repeatedly:     
  8. }   
Pretty simple to understand. It first does the setup and then the loop code gets executed in order to perform the main task you have configured. There are many sample programs built-in with the code, which we can find under:
 
Files->Examples->Basic->Blink.
 
Run the Blink program and try to understand what has been done. It is very simple.
  1. // the setup function runs once when you press reset or power the board     
  2. void setup()    
  3.     {    
  4.         // initialize digital pin 13 as an output.     
  5.         pinMode(13, OUTPUT);    
  6.         Serial.begin(9600);    
  7.     }    
  8.     // the loop function runs over and over again forever     
  9. void loop()    
  10. {    
  11.     digitalWrite(13, LOW);    
  12.     // turn the LED on (HIGH is the voltage level)     
  13.     delay(1000);    
  14.     // wait for a second     
  15.     digitalWrite(13, HIGH);    
  16.     // turn the LED off by making the voltage LOW     
  17.     delay(1000);    
  18.     // wait for a second     
  19. }   
Here, the pinMode function activates the pin which you specify as input or output. Here it is Pin 13 and is Output. Pin 13 is as we all know the default LED. Here it sets the pin and then in the loop method, we find the method with a digital-Write prefix, which says that the connection is on the Digital pins. The method which we see has the Pin port number and the other parameter as LOW/HIGH which can be considered as 1/0 in order to light up and light off the LED 13. A delay has been given, to mention the Led light up with the specified delay time.
 
Before checking the build-up which we will be making in the due course, let's have a look at the other components to be used.
  1. Bread Board
     
    The board is familiar to all electrical or engineering students also.
     
    Bread Board
     
    Still, let's have a brief explanation of this. As we see in the image, + symbol, means the voltage connection is to be done to this port. The entire line, column-wise, is connected. Every hole in the plus column is connected internally. You can use a multimeter to check and verify the breadboard.
     
    Same applies to the - symbol column. But, this is usually used for the grounded pins connection from the Arduino. The a,b,c,d.. columns are used to connect the LEDs and the resistors, which we will see in a while. Unlike the +/- these are connected internally ROW-WISE.
     
  2. Jumper Wires
     
    These are the connecting wires to be used in order to connect the Arduino and the breadboard ports. They are cheap and reliable as well. They look like,
     
    Jumper Wires
     
  3. A few LEDs and resistors.
Next is to design our circuit, which looks like,
 
circuit
 
The above is the basic breadboard connection circuit. I will give a pictorial image of the entire circuit connection. In this article, I will be sharing how to take user inputs through the Serial port and use it to light the LED on and off. The circuit connection looks like below,
 
circuit
 
circuit
 
The connection diagram is below,
 
diagram
 
The above diagram is a reference. For any doubts, you can add your queries related to the connections. As you have seen, I have used Pin 13 to connect the Arduino program to the Breadboard. That is the programming uploaded that will be used to manipulate the LED on/off via Pin 13. Let's have a look at the code involved,
  1. int userInput = 0;    
  2. // the setup function runs once when you press reset or power the board     
  3. void setup()     
  4. {    
  5.         // initialize digital pin 13 as an output.     
  6.         pinMode(13, OUTPUT);    
  7.         Serial.begin(9600);    
  8.     }    
  9.     // the loop function runs over and over again forever     
  10. void loop()    
  11. {    
  12.     if (Serial.available() > 0)    
  13.     {    
  14.         // read the incoming     
  15.         byte: userInput = Serial.read();    
  16.         // say what you     
  17.         got: Serial.print("Received Input: ");    
  18.         Serial.println(userInput, DEC);    
  19.     }    
  20.     if (userInput == 49)    
  21.     {    
  22.         //As checked through, if 1 is pressed, the result comes to be 49 based on the ASCII code     
  23.         digitalWrite(13, HIGH);    
  24.         // turn the LED on (HIGH is the voltage level)     
  25.         delay(1000);    
  26.         // wait for a second    
  27.     } else    
  28.     {    
  29.         digitalWrite(13, LOW);    
  30.         // turn the LED  off by making the voltage     
  31.         LOW delay(1000);    
  32.         // wait for a second     
  33.     }    
  34. }   
Thus the above code is simple to understand. We have used the Serial port to track the user input, which is a part of the Arduino IDE.
 
Serial port
 
Here, the user adds the input, and our code checks, if 1 with ASCII code 49, is hit then the LED lights ON and if any other key is pressed the LED goes OFF.
 

Conclusion

 
We have covered a brief introduction about the Arduino board and the circuits involved and basic programming uploaded to the Arduino board via Arduino IDE. This same concept can be integrated too.
 
This is all folks! I really found this interesting and this is surely the future! IoT is the future. I wish to come up with more sensors attached and programming done! It would be great if all developers start throwing their hands on this and create miracles!!
 
This is all folks! I really found this interesting and this is surely the future! IoT is the future. I wish to come up with more sensors attached and programming done! It would be great if all developers start throwing their hands on this and create miracles!!


Invincix Solutions Private limited
Every INVINCIAN will keep their feet grounded, to ensure, your head is in the cloud