Introduction to Pixy Camera

Hello everyone! I hope you all will be absolutely fine and having fun. Today, I am going to give you an elaboration about Introduction to Pixy Camera. It is basically is an electronic device or sensor having fast vision. It is also known as fast vision sensor most of the time. Using this device we can teach to find objects in a very less time duration. It is an image sensor having a very powerful processor. Pixy is easy to interface with the micro-controllers e.g. Arduino. We can make different programs only to send the desired data from the device to micro-controller. In this way micro-controller can not overwhelm. Pixy camera is able to communicate with the micro-controller in several different ways e.g. serial communication, I2C protocol, digital out, analog out and SPI communication techniques. Using this type of communication between pixy camera and micro-controller we can also perform other tasks when camera is communicating with micro-controller. We can also attach multiple pixy cameras with a single micro-controller. Its normal mean of image detection is through RGB (Red Green Blue) color detection technique. Moreover, it can also detect different images using hue and saturation techniques. Light doesn't effect the image detection of this camera. Its a huge problem while doing image processing techniques. This module has an ability to find hundreds of objects simultaneously and it can remember seven different types of colors. It detects images with a very fast processing speed of 50 frames per second. It is a low cost and highly efficient device available in the market. The further detail about introduction to pixy camera will be given later in this section.

Introduction to Pixy Camera

Pixy camera is a fast vision electronic device. It can capture 50 frames per second. It can communicate with the mirco-controller using different types of communications e.g I2C protocol, SPI and serial communication. Its image detection technique is not effected by the light like all other devices. It cam remember 7 different colors simultaneously. Its a low cost device. It also uses hue & saturation technique for image detection. Pixy-camera is shown in the figure given below.
1. Pixy Camera Pins
  • It has six pins having assigned with different tasks.
  • All the pins are given in the table shown in the figure given below.
2. Pixy Camera Pinout
  • Pinout diagram tells us about the complete information of all the pins of any device.
  • Pixy-camera pinout diagram is given in the figure shown below.
3. Pixy Camera Technical Specifications
  • Technical specifications tell us about the efficiency and different tasks whether they can be performed by it or not.
  • Pixy-camera technical specifications are listed in the table shown in the figure given below.
4. Pixy Camera Features
  • Any device can become a lot popular only on the basis of its unique features.
  • Pixy-camera features are listed in the table given in the figure shown below.
5. Pixy Camera Communication Techniques
  • Pixy-camera has an ability to communicate with the micro-controller in different ways.
  • Alla the communication mediums are provided in the table shown in the figure below.
6. Pixy Camera Result Visualization
  • Its results can be visualized on an application named as Pixy Mon.
  • Pixy Mon is an applications that is able to run on computer or MAC.
  • Using this application we can visualize, that pixy-camera sees, in the form of either raw video or processed video.
  • While using pixy camera, you must know about How to Train Pixy Camera with Computer.
  • Pixy set the output port and manage colors.
  • USB cable maintains communication between pixy mon and pixy-camera.
7. Pixy Camera Problems
  • Each electronic device has its pros and cons, similarly pixy-camera has also some issues with it.
  • The two major problems associated with the pixy-camera are listed in the table shown in the figure given below.
8. Pixy Camera Applications
  • Pixy-camera has several different real life applications.
  • Some of the major applications are provided in the table shown in the figure below.
  The tutorial Introduction to Pixy Camera has provided the detailed discussion on the basics of this module. I hope this tutorial is proved to be an informative for you and you will enjoy this tutorial. You can ask us if you have any problem. I will try me best to help out you. I will share different informative topics in my upcoming tutorials. Till my upcoming tutorial, taker care and bye :)

PIR Sensor Arduino Interfacing

Hello everyone! I hope you all will be absolutely fine and having fun. Today, I am going to provide the detailed discussion on PIR Sensor Arduino Interfacing. PIR basically stands for Passive Infrared Sensor. Basically PIR is an electronic equipment which is often used to measure the infrared light radiating from the different objects in their field of view. It detects the infrared energy released from animals as well as from human beings, when this energy is higher than the certain threshold level PIR sensor shows an indication correspondingly. The energy detected by PIR sensor is usually in the form of heat i.e. emitted by humans as well as from animals. We can also test and verify our results in Proteus using PIR sensor. I have already shared PIR Sensor Library for Proteus. PIR sensor is most of the time used for sensing the motion of the different objects. It can sense the different objects up to 10 meters. It has three different pins. Each pin is assigned with the different task to be performed when the sensor is in working condition. PIR sensor has several different features like wide voltage supply ranges, automated induction, photosensitive control, low micro-power consumption, high output signal and many more. PIR (Passive Infra Red) sensor is most of the time used in security systems. Moreover, it can be used in OEM applications, automatic illuminating devices, building detection, building automation, alarm & security systems and at a lot more places in real life. The further detail about PIR Sensor Arduino Interfacing will be given later in this tutorial.

PIR Sensor Arduino Interfacing

PIR sensor stands for Passive Infra Red sensors. As it is clear from its name that PIR is an electronic device or sensor used to measure the infrared energy emitted by animals and human beings. This energy is emitted in the form of heat. When this energy is above the certain level, there is algorithm to show an an indication that the desired level has be reached. This tutorial is based on PIR interfacing with Arduino. PIR sensor is shown in the figure below along all of its pin names.
1. PIR Sensor Pins
  • PIR sensor has three pins voltage, output and ground respectively.
  • All of the pins are provided in the table shown in the figure given below.
2. PIR Sensor Pins Description
  • Each pin has different task to perform while the sensor is in working condition.
  • PIR sensor pin descriptions are listed in the table shown in the figure below.
3. PIR Working Principle
  • PIR sensor has two different slot which are sensitive to infrared light/energy.
  • When the sensor is in normal condition, both of the slots measure the same amount of infrared energy radiated by walls etc.
  • When a warm body e.g animals and human beings crosses its coverage area, they first cross PIR sensors's first slot, which produces positive differential change between two slots.
  • When an animal or human being leave from the sensing area, a corresponding negative differential change is produced.
  • By detecting these types of changes PIR sensor can detect the motion of different objects which radiates infrared energy.
  • I have tried to elaborate the PIR working principle through some visuals shown in the figure given below.
  • I have also provided the visuals about how PIR sensor generates an output signal after sensing different objects/
  • PIR sensor object sensing is given in the figure shown below.
4. PIR Sensor Schematic Diagram
  • To understand the internal structure of any electronic device, we must have a look at its schematic diagram.
  • PIR sensor schematic diagram is shown in the figure given below.
5. Apparatus Required
A list of apparatus required for PIR interfacing with Arduino is given below.
  • PIR (Passive Infra Red) Sensor
  • Arduino (Microcontroller)
  • Jumper wires
6. PIR Interfacing with Arduino Wiring Diagram
  • I have already shared a brief article on Interfacing PIR sensor with Arduino.
  • Now, this is a detailed article about the similar topic.
  • I have provided wiring diagram for PIR interfacing with Arduino.
  • You can make the similar wiring diagram and can test and verify your results as well.
  • PIR Sensor Arduino Interfacing wiring diagram is shown in the figure given below.
7. PIR Sensor Arduino Interfacing Source Code and Description
  • If you have never use Arduino software for programming then you should first go through How to Write Arduino Code.
  • I have provided the complete source code for PIR interfacing with Arduino.
  • You just need to copy and paste the entire code and upload it to your Arduino board and observe the results.
  • You can also made the same simulation on Proteus as well and can verify the results.
  • In case of Proteus simulation you must need to know about How to get Hex File from Arduino.
int LED = 13;                
int inputPin = 2;               
int PIR_STATE = LOW;             
int VALUE = 0;                   
 
void setup() {
  pinMode(LED, OUTPUT);      
 
  Serial.begin(9600);
}
 
void loop(){
  VALUE = digitalRead(inputPin); 
  if (VALUE == HIGH) {           
    digitalWrite(LED, HIGH); 
    if (PIR_STATE == LOW) {
      // we have just turned on
      Serial.println("Motion has been detected!");
      PIR_STATE = HIGH;
    }
  } else {
    digitalWrite(LED, LOW); 
    if (PIR_STATE == HIGH){
      // we have just turned of
      Serial.println("Motion has been stopped!");
      PIR_STATE = LOW;
    }
  }
}
  • I have initialized the LED pin, PIR state pin and the pin and a variable for reading sensor's data.
  • Then I have checked whether the detected value from the sensor is above or below the certain level.
  • Then I have decide to be print the certain values on Serial Monitor.
  • If it is above the certain level a message "Motion has been detected" will be displayed on the serial monitor through Serial Communication.
  • If the detected value is below the certain level then the message "Motion has been stopped" will be displayed on the serial monitor in Arduino software.
  • So, that was the brief description of the source code designed for PIR interfacing with Arduino.
  • You can download the complete wiring diagram along with the complete Arduino source code here by clicking on the button below.

8. PIR Sensor Interfacing with Arduino Actual Circuit Diagram
  • I have also provided the actual circuit diagram for PIR interfacing with Arduino.
  • Actual circuit diagram is shown in the figure given below.
9. PIR Sensor Ratings
  • To know the power, current and voltage requirements of an electronic device can be known through its ratings.
  • PIR sensor ratings are listed in the table given in the figure shown below.
10. PIR Sensor Features
  • A device can be popular on the basis of its amazing and unique features, which make it different from other devices.
  • PIR sensor some of the main features are listed in the table given in the figure shown below.
11. PIR Sensor Applications
  • PIR sensor has several different real applications.
  • Some of common applications associated with PIR sensor are provided in the table shown in the figure given below.
  • I have provided a circuit designed for security alarm system, which is its most common application.
  • The complete circuit design for security alarm system is given in the figure shown below.
  • PIR sensor's another application is making a timer circuit using PIR.
  • I have provided timer circuit using PIR sensor, shown in the figure given below.
  • Another most common application of PIR sensor is the motion detection.
  • Motion detection circuit diagram using PIR sensor is shown in the figure given below.
12. PIR Sensor Advantages
  • There are a lot of advantages associated with Passive Infrared Sensor, few of them are given below.
13. PIR Sensor Disadvantages
  • Infrared sensors also have some disadvantages but they are in a very small as compared to its disadvantage.
  • Infrared sensor disadvantage are listed in the table given in the figure shown below.
The tutorial PIR Sensor Arduino Interfacing has provided the detailed discussion about the interfacing of PIR sensor with Arduino. If you feel any problem in PIR Sensor Arduino Interfacing, you can ask me in comments anytime. I will try me level best to entertain you and to solve your problems. I will share further informative topic in my later tutorials. Till then take care and bye :)

DHT11 Arduino Interfacing

Hello everyone! I hope you all will be absolutely fine and having fun. Today, we will have a look at the DHT11 Arduino Interfacing. DHT11 is an embedded sensor, used to measure both temperature and humidity of the surroundings. It is made up of two different parts i.e. capacitive humidity sensor and a thermistor. DHT11 is a slow sensor but is quite efficient for the applications where we need to do some basic analog data exchange. There is a small chip inside this sensor which performs the function of analog to digital to analog conversion and gives the results for temperature as well as for humidity in digital form. This digital signal can be read easily through any micro-controller.

LM335 is another temperature sensor and to understand today's post more properly, you should also go through Introduction to LM335. DHT11 is a low cost sensor and is easily available in the market now a days. This property makes it more popular among the similar type of sensors. It provide precise results with the higher efficiency. It has a small size and low power consumption. It can transmit the signal up to 20 meters. It has four pins whose detail will be explained later. DHT11 has a lot of features including low cost, long term stability, fast response time, excellent quality, long distance signal transmission and many more. In real life DHT11 can be used at several different places e.g. home appliances, weather stations, consumer goods etc. the further detail about DHT11 Arduino Interfacing will be given later in this tutorial.

Where To Buy?
No.ComponentsDistributorLink To Buy
1DHT11AmazonBuy Now
2Arduino UnoAmazonBuy Now

What is DHT11 Sensor?

  • DHT11 is an electronic sensor, consists of 4 pins and is used to measure the temperature and humidity of the surroundings.
  • DHT Pinout is as follows:
    1. Pin#1: Vcc (+5V)
    2. Pin#2: Out (digital)
    3. Pin#3: NC (Not Connected)
    4. Pin#4: GND (Ground)
  • It has both a capacitive humidity sensor and a thermistor embedded in it.
  • It is a low-cost sensor but provides precise results and it gives value once every 2 seconds.
  • DHT11 measures the relative humidity of the surrounding.
  • It is used in home appliances, weather stations, medical humidity control, data loggers, HVAC and at several security places.
  • DHT11 along with its pinout is shown in the figure given below.

DHT11 Pinout

  • Before using any electronic device we must know about the functions of its all pins.
  • DHT Pinout is as follows:
    1. Pin#1: Vcc: We need to provide +5V to this pin.
    2. Pin#2: Out: Output Pin for reading DHT11 data.
    3. Pin#3: NC: It's an open pin and is not connected to anything(For future use).
    4. Pin#4: GND: Need to provide ground to this pin.
  • DHT11 pin description is provided in the below table:

DHT11 Working Principle

  • In order to measure temperature, DHT11 uses a thermistor also known as NTC (Negative Temperature Coefficient) temperature sensor.
  • A thermistor is simply a variable resistor, which changes its resistance with respect to the temperature.
  • A thermistor is made up of sintering of semiconductors in order to provide a large change in its resistance with the small changes in temperature.
  • NTC means the resistance decrease with the increase in temperature.
  • I have provided a visual display of the relation between temperature and resistance for the DHT11 sensor, shown in the below figure:
  • For humidity sensing, DHT11 uses a capacitive humidity sensor.
  • The humidity part consists of two electrodes having moisture-holding substrates in between them.
  • As the humidity level changes, the resistance between both of the electrodes or conductivity also changes correspondingly.
  • This change in conductivity or resistance is estimated and processed by an internal IC.
  • I have also provided the visual description of humidity sensing using DHT11 sensor, as given in the figure shown below.

DHT11 Temperature Sensing Characteristics

  • The temperature sensing characteristics of the DHT11 sensor are listed in the below table:

DHT11 Humidity Sensing Characteristics

  • The humidity sensing characteristics of the DHT11 sensor are listed in the below table:
Note: I have also made some LabVIEW simulations for temperature measuring and conversion, their links are shared below.

Components Required for DHT11 Arduino Interfacing

As its a simple project, so we are going to need few components, listed below:

  • DHT11 Sensor (Temperature and humidity sensor)
  • Arduino UNO (Microcontroller Board)
  • Jumper wires (Male to Female)

DHT11 Arduino Interfacing

  • The connections between Arduino and DHT11 pins are shown in the figure given below.
  • The circuit diagram for DHT11 Arduino Interfacing is given in the below figure:

Arduino Code

  • If you have not written Arduino code before, you must have a look at How to Write Arduino Code.
  • You just need to copy and paste the source code given below into your Arduino software.
  • After that just upload the code into your Arduino board to test the results.
#include<dht.h>// DHT11 humidity sensor library
dht DHT; //Creating sensor object
#define DHT11_PIN 2 // Sensor is connected to Arduino pin 2
void setup()
{
  Serial.begin(9600); //setting baud rate
  Serial.println("   =====================================================");
  Serial.println("   ||   Welcome to Temperarue and Humidity Detector   ||");
  Serial.println("   =====================================================");
  Serial.println("");
  }
void loop()//method used to run the code repeatedly
{
  int chk = DHT.read11(DHT11_PIN); //Reading data from sensor
  Serial.print(" Humidity = ");//prints on the serial monitor
  Serial.print(DHT.humidity);// prints obtained humidity on serial port
  Serial.print(" g/m^3");
  Serial.print("    \tTemperature = ");//prints on the serial monitor
  Serial.print(DHT.temperature, 1);//prints obtained temperature on serial port
  Serial.println(" degrees");
  
  delay(2000);//adding the delay of 2 seconds
  }
  • First of all, I have defined the library for the DHT11 sensor.
  • After that, I have read the humidity and temperature values from DHT11 sensor in digital form.
  • Then I have printed the digital values of both humidity and temperature on the Arduino Serial Monitor.
  • We can print the values obtained from the sensor on the serial monitor using Serial Communication.
  • So that was the brief description about DHT11 interfacing with Arduino.
  • You can download DHT11 library, wiring diagram and complete Arduino source code here by clicking on the button below.

Temperature & Humidity Results on Serial Monitor

  • I have printed the digital values obtained from DHT11 sensors.
  • Both temperature and humidity digital values are given in the figure shown below.

DHT11 Sensor Interfacing with Arduino Circuit Diagram

  • I have provided an actual circuit diagram for DHT11 sensor interfacing with Arduino.
  • Actual circuit diagram is given in the figure shown below.

DHT11 Features

  • The features are such parameters depending upon which a device can flop as well as features that can make a device more popular due to their uniqueness.
  • DHT11's major features are provided in the table given in the figure shown below.

DHT11 Applications

  • Most of the devices are usually known by their range of applications.
  • DHT11 sensor applications are given in the table shown in the figure below.

That is all from today's tutorial. If you have any problem you can ask me in comments any time you want. Till my next tutorial bye :)

Flame Sensor Arduino Interfacing

Hello everyone! I hope you all will be absolutely fine and having fun. Today, I am going to provide a detailed discussion on Flame Sensor Arduino Interfacing. Flame sensor is an electronic device which is capable of sensing/detection of fire or a high temperature zone. It gives an indication through an LED attached at its top, just after sensing the fire. These type of sensors are usually used for short ranges. They are able to detect the fire up to 3 feet. Flame sensors is the most common device available in the market these days due to its good results and cost efficiency. You should also have a look at Flame Sensor Library for Proteus. Flame sensors are available in the market in two types one having three pins and the other having four pins respectively. Both of the sensors can be easily interfaced to any micro-controller. I am using four pin flame sensor in this tutorial. You will see the complete wiring diagram for interfacing flame sensor with Arduino and the complete Arduino source code and its description as well. Flame sensor can detect fire or any other light sources whose wavelength is in the range of 760nm to 1100nm. This device consists of and IR sensor, an LED for indication, operational amplifier circuit and a potentio-meter. The device is sensitive to flame so when it detects the flame it turns on its LED to show an indication. The sensitivity of the flame sensor can be adjusted according to the requirements. It can be used at different places e.g. in offices, home, institutions, industrial applications.

Flame Sensor Arduino Interfacing

Flame Sensor is an electronic device which is used to sense the fire or any other light having wavelength between 700nm to 1100nm. It consists of either three or four pins both of them are compatible with all micro-controllers. It is sensitive to flame and gives the indication for the presence of the flame. It can be sued in homes, offices, industrial applications. Flame sensor along with its pi names are shown in the figure below.
1. Flame Sensor Pins
  • Flame sensor has four pins with different individual function.
  • Flame sensor pins are given in the figure shown below.
2. Flame Sensor Pins Description
  • Each pin has different tasks to perform.
  • Flame sensor pin descriptions are listed in the table shown in the figure given below.
3. Flame Sensor Working Principle
  • Flame sensor is very sensitive to flame and other lights.
  • Its analog output provides real time output voltage on the thermal resistance.
  • When the temperatures reaches at the certain threshold the output high and low signal threshold adjustable via potentio-meter , Its the task of digital output.
4. Flame Sensor Circuit Diagram
  • Flame sensor diagram is shown in the figure given below.
5. Apparatus Required for Flame Sensor Interfacing with Arduino
  • Arduino UNO (Micro-controller)
  • Flame Sensor
  • Jumper wires
  • Wero board
  • Light or another flame sensor
6. Flame Sensor & Arduino Pin Connections
  • Connections between Arduino and flame sensor pins are given in the table shown in the figure below.
7. Flame Sensor Arduino Interfacing - Wiring Diagram
  • Before hardware interfacing, you can also test your result on Proteus.
  • For Proteus simulation, you need to know about How to get Hex File from Arduino.
  • I have shared a brief tutorial on Interfacing of Flame Sensor with Arduino in my previous tutorial.
  • I have given a completely labeled wiring diagram for Flame Sensor Arduino Interfacing.
  • You can test & verify your results by making the same wiring diagram.
  • Wiring diagram for Flame Sensor Arduino Interfacing is shown in the figure given below.
8. Flame Sensor Interfacing with Arduino Source Code & Description
  • If you haven't written Arduino code ever, you must go through How to Write Arduino Code.
  • You just need to copy & to paste the complete source code given below in your Arduino software.
  • And just upload the code onto your Arduino board in order to verify the results.
int led_pin = 13 ;// initializing the pin 13 as the led pin

int flame_sensor_pin = 2 ;// initializing pin 7 as the sensor output pin
int flame_pin = HIGH ; // state of sensor

void setup ( )  {

  pinMode ( led_pin , OUTPUT ); // declaring led pin as output pin
  pinMode ( flame_sensor_pin , INPUT ); // declaring sensor pin as input pin for Arduino
  Serial.begin ( 9600 );// setting baud rate at 9600
}

void loop ( ) {
   flame_pin = digitalRead ( flame_sensor_pin ) ;  // reading from the sensor
  if (flame_pin == LOW )  // applying condition
  {
    Serial.println ( " FLAME , FLAME , FLAME " ) ;
    digitalWrite ( led_pin  , HIGH ) ;// if state is high, then turn high the led
  }
  
  else
  {
    Serial.println ( " no flame " ) ;
    digitalWrite ( led_pin , LOW ) ;  // otherwise turn it low
  } 
}
  • First of all I have defined the pins for led and the flame sensor.
  • The I have printed the digital information on the Serial Monitor obtained from the flame sensor.
  • The messages are displayed on the serial monitor via Serial Communication.
9. Flame Sensor Interfacing with Arduino
  • The actual circuit diagram for flame sensor interfacing with Arduino.
10. Flame Sensor Applications
  • Flame sensor has a lot of different applications.
  • Some of them are given below.
The tutorial Flame Sensor Interfacing with Arduino has explained the entire necessary detail about the flame sensor interfacing with Arduino. If you have any kind of problem you can ask me in comments anytime. I will try my level best to solve your issues. I hope you have enjoyed this tutorial. I will share other informative topics in my upcoming tutorials. Till my next tutorial take care and bye :)

Arduino Keypad Interfacing

Hello everyone! I hope you all will be absolutely fine and having fun. Today, we are going to work on Arduino Keypad Interfacing. First of all, I would like to tell you a bit about the keypad. After getting the basic idea about the keypad, we will start our discussion about Arduino Keypad Interfacing.  You should also have a look at Interfacing of Keypad with PIC Microcontroller.

In this tutorial, I am going to use a 4×4 keypad. It has sixteen buttons having four alphabetic characters. Let's have a look at the Arduino Keypad Interfacing:

Where To Buy?
No.ComponentsDistributorLink To Buy
1Jumper WiresAmazonBuy Now
2Keypad 4x4AmazonBuy Now
3Arduino UnoAmazonBuy Now

What is Keypad?

  • The keypad consists of multiple buttons, arranged in the form of a matrix(rows & columns) and is used in embedded projects.
  • They are cost-efficient and are easily available from online electronic stores.
  • Keypads are normally available in a 3×3, 4×3 and 4×4 format.
  • Keypad has several applications in real life based projects e.g. mobile phones, calculators, laptops, personal computers, television remote, toy remote, microwave oven, photocopy machine, bank’s ATM machine, tablets and a lot more.
  • A simple 4x4 Keypad is shown in the figure given below:
 

Keypad Pinout

  • I am using a 4×4 keypad in this tutorial, it has total of eight (8) pins.
  • All of these pins are provided in the table shown in the figure below:
  • From the above table, we can see that keypad’s first four pins are associated with its four rows.
  • The last four pins are assigned to the four columns of the keypad.
  • 4×4 Keypad’s pins functions are listed in the table provided in the figure given below.

Components Required for Arduino Keypad Interfacing

  • Components required for this project are:
    • Arduino UNO.
    • 4x4 Keypad.
    • Jumper Wires(Male to Female).

Keypad & Arduino Connections

  • The connections between the keypad and Arduino are provided in the figure given below:

Circuit Diagram of Keypad Arduino Interfacing

  • I have made a circuit diagram for keypad interfacing with Arduino.
  • A complete labeled circuit diagram is given in the figure shown below:
  • You can make a similar diagram and can easily test & verify your results on the serial monitor.

Arduino Code

  • You just need to copy this code into your Arduino software.
  • After successfully uploading the code to your Arduino board you will be able to verify the results.
#include <Keypad.h>

const byte ROWS = 4; //four rows
const byte COLS = 4; //four columns
//define the cymbols on the buttons of the keypads
char hexaKeys[ROWS][COLS] = {
  {'1','2','3','A'},
  {'4','5','6','B'},
  {'7','8','9','C'},
  {'*','0','#','D'}
};
byte rowPins[ROWS] = {9, 8, 7, 6}; //connect to the row pinouts of the keypad
byte colPins[COLS] = {5, 4, 3, 2}; //connect to the column pinouts of the keypad

//initialize an instance of class NewKeypad
Keypad customKeypad = Keypad( makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS); 

void setup(){
  Serial.begin(9600);
}
  
void loop(){
  char customKey = customKeypad.getKey();
  
  if (customKey){
    Serial.println(customKey);
  }
}
  • First of all, I have defined the number of rows and columns of the keypad.
  • Then I have declared the complete keypad characters in terms of rows and columns.
  • After that, I have defined the row and column pin of the keypad attached to the Arduino pins.
  • Then I have simply read the data sent from the keypad and displayed it on the serial monitor.
  • You can download a completely labeled wiring diagram and Arduino source code here by clicking on the below button:
Wiring Diagram & Arduino Code

In the tutorial Keypad Interfacing with Arduino, I have explained the basics of the keypad as well as the keypad interfacing with Arduino UNO. I have tried my level best to cover up all the necessary information. If you found something missing, please let me know then. I will update my tutorial correspondingly as soon as possible. I hope you have enjoyed the complete tutorial and I am hoping for your positive response. If you have any problem you can freely ask as in comments anytime. I will share different topics in my upcoming tutorials. Take care and bye till the next tutorial :)

Introduction to ATmega328

Hello everyone! I hope you all will be absolutely fine and having fun. Today, I am going to give you a detailed Introduction to ATmega328. ATmega328 is an Advanced Virtual RISC (AVR) microcontroller. It supports 8-bit data processing. ATmega-328 has 32KB internal flash memory.

ATmega328 has 1KB Electrically Erasable Programmable Read-Only Memory (EEPROM). This property shows if the electric supply supplied to the micro-controller is removed, even then it can store the data and can provide results after providing it with the electric supply. Moreover, ATmega-328 has 2KB Static Random Access Memory (SRAM). Other characteristics will be explained later. ATmega 328 has several different features which make it the most popular device in today's market. These features consist of advanced RISC architecture, good performance, low power consumption, real timer counter having separate oscillator, 6 PWM pins, programmable Serial USART, programming lock for software security, throughput up to 20 MIPS etc. Further details about ATmega 328 will be given later in this section.

Note:
  • Here's the link to download the Atmega328 datasheet, although after reading this article you won't need it. :)
  • Moreover, I have also given the link to a reliable online source from where you can buy it easily.
Download Atmega328P Datasheet
Where To Buy?
No.ComponentsDistributorLink To Buy
1Arduino UnoAmazonBuy Now

Introduction to ATmega328

  • ATmega328 is an 8-bit, 28-Pin AVR Microcontroller, manufactured by Microchip, follows RISC Architecture and has a flash-type program memory of 32KB.
  • Atmega328 is the microcontroller, used in basic Arduino boards i.e Arduino UNO, Arduino Pro Mini and Arduino Nano.
  • It has an EEPROM memory of 1KB and its SRAM memory is 2KB.
  • It has 8 Pins for ADC operations, which all combine to form PortA ( PA0 - PA7 ).
  • It also has 3 built-in Timers, two of them are 8 Bit timers while the third one is 16-Bit Timer.
  • You must have heard of Arduino UNO, UNO is based on atmega328 Microcontroller. It's UNO's heart. :)
  • It operates ranging from 3.3V to 5.5V but normally we use 5V as a standard.
  • Its excellent features include cost-efficiency, low power dissipation, programming lock for security purposes, real timer counter with separate oscillator.
  • It's normally used in Embedded Systems applications. You should have a look at these Real Life Examples of Embedded Systems, we can design all of them using this Microcontroller.
  • The following table shows the complete features of ATmega328:
ATmega328 Features
No. of Pins 28
CPU RISC 8-Bit AVR
Operating Voltage 1.8 to 5.5 V
Program Memory 32KB
Program Memory Type Flash
SRAM 2048 Bytes
EEPROM 1024 Bytes
ADC 10-Bit
Number of ADC Channels 8
PWM Pins 6
Comparator 1
Packages (4) 8-pin PDIP 32-lead TQFP 28-pad QFN/MLF 32-pad QFN/MLF
Oscillator up to 20 MHz
Timer (3) 8-Bit x 2 & 16-Bit x 1
Enhanced Power-on Reset Yes
Power Up Timer Yes
I/O Pins 23
Manufacturer Microchip
SPI Yes
I2C Yes
Watchdog Timer Yes
Brownout detect (BOD) Yes
Reset Yes
USI (Universal Serial Interface) Yes
Minimum Operating Temperature -40 C to +85 C

ATmega328 Pins

  • ATmega-328 is an AVR Microcontroller having twenty-eight (28) pins in total.
  • All of the pins in chronological order, are listed in the table shown in the figure given below.
Now let's have a look at the pinout of Atmega328 in detail:

ATmega328 Pinout

  • Through the pinout diagram, we can understand the configurations of the pins of any electronic device, so you are working on any Engineering Project then you must first read the components' pinout.
  • ATmega328 pinout diagram is shown in the figure given below:

ATmega328 Pins Description

  • Functions associated with the pins must be known in order to use the device appropriately.
  • ATmega-328 pins are divided into different ports which are given in detail below.
  • VCC is a digital voltage supply.
  • AVCC is a supply voltage pin for analog to digital converter.
  • GND denotes Ground and it has a 0V.
    • Port A consists of the pins from PA0 to PA7. These pins serve as an analog input to analog to digital converters. If analog to digital converter is not used, port acts as an eight (8) bit bidirectional input/output port.
    • Port B consists of the pins from PB0 to PB7. This port is an 8 bit bidirectional port having an internal pull-up resistor.
    • Port C consists of the pins from PC0 to PC7. The output buffers of port C has symmetrical drive characteristics with source capability as well high sink.
    • Port D consists of the pins from PD0 to PD7. It is also an 8 bit input/output port having an internal pull-up resistor.
  • All of the AVR ports are shown in the figure given below.
  • AREF is an analog reference pin for analog to digital converter.
  • So this was the brief of all the pins in the ATmega328 AVR micro-controller.

ATmega328 Architecture

  • An architecture of a device presents information about the particular device.
  • ATmega-328 architecture is shown in the figure given below.

ATmega328 Memory

  • ATmega 328 has three types of memories, named:
    • Flash Memory: 32KB. It is a Programmable Read-Only Memory (ROM). It is a nonvolatile memory.
    • SRAM: 2KB. Stands for Static Random Access Memory. It is a volatile memory i.e. data will be removed after removing the power supply.
    • EEPROM: 1KB. Stands for Electrically Erasable Programmable Read-Only Memory.
  • AVR memory spaces are shown in the figure given below.

ATmega328 Registers

  • ATmega-328 has thirty-two (32) General Purpose (GP) registers.
  • These all of the registers are part of Static Random Access Memory (SRAM).
  • All the registers are given in the figure shown below.

ATmega328 Packages

  • The different versions of the same device are denoted by the different packages of that device.
  • Each package has different dimensions, in order to differentiate easily.
  • ATmega 328 packages are given in the table shown in the figure given below.

ATmega328 Block Diagram

  • The Block diagram shows the internal circuitry and the flow of the program of any device.
  • ATmega 328 block diagram is shown in the figure given below.

ATmega328 Features

  • To perform any task we can select a device on the basis of its features. i.e whether its features match to obtain the desired results or not.
  • Some of the main features of an AVR Microcontroller ATmega328 are shown in the table given in the figure below.

ATmega328 and Arduino

  • ATmega328 is the microcontroller used in the Arduino UNO board.
  • When we upload code in Arduino UNO, it's actually uploaded in the Atmega328 Microcontroller.
  • A software driver called bootloader is pre-installed in the flash memory of the Atmega328 microcontroller, which makes it compatible with Arduino IDE.
  • AVR Atmega328 attached on Arduino is shown in the figure given below:

ATmega328 and Arduino Pins

  • ATmega328 pins are connected to the corresponding pins of Arduino.
  • Their connectivity with each other is shown in the pinout diagram shown in the figure given below.
  • The encircled section analog pins consist of the Arduino pins which are connected to the corresponding AVR micro-controller ATmega-328 pins.
  • I have written both of the pins in front of each other, it will help to understand easily.
  • If you want to work on this Arduino board then you must try these Arduino Projects for Beginners, they will help to get your hands on Arduino.

Applications of Atmega328

  • A complete package including ATmega 328 and Arduino can be used in several different real-life applications.
  • It can be used in Embedded Systems Projects.
  • It can also be used in robotics.
  • Quad-copter and even small aero-plane can also be designed through it.
  • Power monitoring and management systems can also be prepared using this device.
  • I have designed this Home Security System using Arduino UNO, you should have a look at it.

How to start working on Atmega328

  • If you want to start working on this Microcontroller then I would suggest you do it using Arduino.
  • The benefit of using Arduino is that you get to use all of its built-in libraries, which will make the work a lot easier.
  • After designing your project on Arduino, then design the basic circuit of Atmega-328 which is quite simple and I have discussed above.
  • Now you must be careful while using its Pins, Atmega328 and Arduino Pins are discussed above.
  • Another thing to mention here is that before working on hardware, you should first design its Proteus Simulation.
  • Download Arduino Library for Proteus and then design your project on it.
  • Once you are confirmed that everything's correct then design its circuitry on Wero Board or PCB (Printed Circuit Board) and you have your project ready. :)
The tutorial Introduction to ATmega328 has the presented a detailed discussion on the basic use of ATmega 328. I have completely provided the entire necessary details about the use of an AVR micro-controller. If you have any problems, you can ask us in the comments anytime. Our team is always here to help you guys. I will share other amazing topics with all of you in my upcoming tutorials. So, till then take care :)

Arduino Projects for Beginners

Hello everyone! I hope you all will be absolutely fine and having fun. Today, I am going to elaborate you, how to make Arduino Projects for beginners. Before gong into the detail of this tutorial first of all I would like to explain you a bit about Arduino. Arduino is an open source micro controller. A lot of help is available online so its user friendly hardware. Most of the students prefer to do work on this device. Arduino is a low cost high performance device. Due to its cost effectiveness and open source feature it is commonly available in the market these days. An amazing thing about Arduino is that students can take help online with a lot of examples regarding any of the task. There are thousands of Arduino projects are available online from beginner level to the major real life projects. Students can make their own projects without having a lot of programming experience. Arduino kits for the beginners are also available in the market now a days. These kit usually consist of an Arduino board, jumper wires, motors, LED's, sensors, relays etc. Arduino has a very wide of real life applications including automation, robotics, remote control, LED's, environmental sensing, Internet of Things (IoT), display, monitoring etc. Further detail about this tutorial will be given later.

Arduino Projects for Beginners

In this section of the tutorial Arduino Projects for beginners, I will elaborate you how to make basic and very simple projects using Arduino which will lead you to the better and better understanding of Arduino environment later. With the help of such a projects you will be much confident and will be able to make large projects too. So here I am going to share some of the basic and beginners level Arduino projects from my blog.
Arduino Basic Projects
In this section I will provide Proteus ISIS libraries for the different Arduino boards e.g. Arduino Nano, Arduino UNO, Arduino Mega 2560 etc and other different projects too. Here is the list of those projects.
  1. Getting Started with Arduino Software
  2. Arduino Library for Proteus
  3. Arduino UNO Library for Proteus
  4. Arduino Genuino Library for Proteus
  5. Arduino Lilypad Library for Proteus
  6. Arduino Mega 2560 Library for Proteus
  7. Arduino Nano Library for Proteus
  8. Arduino Pro Mini Library for Proteus
  9. Arduino UNO PCB Design for Proteus
  10. Arduino Library for Seven Segment Display
  11. How to get .hex File from Arduino
  12. How to use Arduino Software Serial
  13. How to use Arduino Serial Flush
  14. How to use Arduino Serial Read
  15. Ultrasonic Sensor Library for Proteus
  • These are the very basic Arduino Projects, a student must go through all of these projects for the better understanding of the other projects.
  • Now, I am going to share all of the mini projects designed by our team using Arduino board.

1. A Simple Arduino LED Example in Proteus

In this tutorial I have shared an LED control example using Arduino UNO in Proteus ISIS. I have designed the circuit to control a single LED using Arduino in Proteus. First I have testes and verified the control of an LED using Arduino. After its successful testing I have designed another circuit in Proteus to control a bundle of LED using the Same Arduino board. You can also check the blinking of an on board LED attached to the pin 13 of Arduino board. I have provided the complete Proteus ISIS design and Arduino source code for your easiness.
  • You can download the entire package here by clicking on the button below.

Download Simulation

  • Download .rar file, extract it and enjoy the simulation.

2. Circuit Designing of LCD with Arduino in Proteus

In this tutorial I have shared the design of a circuit for LCD interfacing with Arduino UNO in Proteus ISIS. I have used LCD here basically for debugging purpose in order to check whether the Arduino source code is in working condition or not. I have designed the Proteus simulation first and then I wrote source code in Arduino software. At the end after uploading .hex file in Arduino I have verified the code as show in the figure.
  • You can download the entire package here by clicking on the button below.

Download Simulation

  • Click on the button above and go through the detailed discussion.

3. Interfacing of Keypad with Arduino in Proteus ISIS

In this article I have elaborated the circuit designing of keypad with Arduino UNO. I have used 4*3 keypad. Keypads are most common in a lot of real life applications such as calculators, laptops, ATM machined etc. The functionality of keypad is based on matrix systems. I have interfaced Arduino UNO, LCD and keypad in such a way that the text is displayed on LCD with respect to the corresponding buttons pressed from the keypad.
  • You can download the entire package here by clicking on the button below.

Download Simulation

  • Download the file, extract it and enjoy the simulation.

4. Scrolling Text on LED Matrix 8*8 using Arduino in Proteus ISIS

This part of this tutorial will explain the design for scrolling text on LED matrix 8*8 using Arduino in Proteus ISIS. I have used an LED matrix. It is basically used to display long messages that we want to write on it. I have designed the complete circuit simulation in Proteus ISIS. Then I have written the Arduino source code. After uploading the code I have verified the results as well. They were absolutely perfect. Our team has done a lot of hard work to design this project. So, I have imposed a very lost on it that a student can easily buy this project even with his pocket money.
  • You can buy this project here by clicking on the button below.

Buy Simulation & Arduino Source Code

5. Ultrasonic Sensor Simulation in Proteus

This article presents the detailed discussion about the circuit designing for interfacing of SONAR with Arduino UNO. I have used the library for ultrasonic sensor whose link is given above. This sensor is very to interface using this library. I have shared three type of examples regarding ultrasonic sensor interfacing with Arduino in Proteus ISIS. These examples include ultrasonic sensor interfacing using buttons, as a proximity switch and as a switch. I have provided both Proteus simulation as well as Arduino source code.
  • You can download the entire package here by clicking on the button below.

Download Simulation

  • Download the file, extract it and enjoy the simulation.

6. Interfacing of Temperature Sensor 18B20 with Arduino

  The detailed discussion about circuit designing and interfacing of temperature sensor with Arduino UNO is given in this section of the tutorial Arduino projects for beginners. I have used non-water proof temperature sensor. I have used an LCD as well to print the values obtained from the temperature sensor. We can get the values of temperature in Celsius using 18B20. There is a library for Arduino while interfacing 18B20 with it. I have shared that library too.
  • You can download the entire package containing both simulation and Arduino library for 18B20 here by clicking on the button below.

Download Library & Simulation

  • Download the file, extract it and enjoy the simulation.

7. Interfacing of Temperature Sensor LM35 with Arduino in Proteus ISIS

This section of the tutorial Arduino projects for beginners, will provide you the discussion about the circuit designing of L35 interfacing with Arduino in Proteus. LM35 is a low cost sensor as compared to the other temperature sesnsors e.g. 18B20. I have designed the circuit in Proteus ISIS first and then I have written the code in Arduino software. After that I have tested the written code and verified the results. There were absolutely accurate. I have provided both simulation and code for free.
  • You can download the entire package here by clicking on the button below.

Download Simulation & Code

  • Download the file, extract it and enjoy the simulation.

8. Interfacing PIR Sensor with Arduino

The detailed discussion about the interfacing of PIR sensor with Arduino is given in this section of the tutorial Arduino projects for beginners. PIR sensor is designed for motion detection purposes. PIR sensor is a passive device and does not generate its own voltages and energy. I have provided the complete circuit diagram of PIR interfacing with Arduino as well as the source code in Arduino software. You can also read the detailed discussion here by clicking on the button below.

Download Simulation

  • Download source code and circuit diagram and enjoy the simulation.

9. Interfacing Flame Sensor with Arduino

In this section of the tutorial Arduino projects for beginners, I have given the detailed discussion about interfacing flame sensor with Arduino UNO. Flame sensor is designed basically fire detection purposes or you can say for temperature monitoring purposes. You have to set a threshold value and above that value an LED on the top of the sensor will be turn on as an indication. I have designed its Proteus ISIS simulation first. Then I have written its source code in Arduino software. I have uploaded the code in Arduino in Proteus and observed the results, they were quite accurate. You have to change the state of logic state from 0 to 1. As the state becomes the sensor will start working and a corresponding test will be displayed on LCD. I have provided the complete simulation and source code for this project.
  • You can download the entire package here by clicking on the button below.

Download Simulation & Arduino Source Code

  • Download source code and circuit diagram and enjoy the simulation.

10. Interfacing NRF24L01 Sensor with Arduino

This section of the tutorial Arduino projects for beginners, will give you the detailed discussio nabout the interfacing of NRF24L01 sensor with Arduino UNO. NRF24L01 is basically used for wireless communication between two different nodes.It operates on a frequency equal to WiFi frequency i.e. 2.4GHz. This sensor has a capability to send and receive data at the same time. I have provided Arduino library for NRF24L01, complete circuit diagram and Arduino source code for this project for free. You can easily design your own circuit with the help of this article.
  • You can download the entire simulation and source code here by clicking on the button below.

Download Simulation & Arduino Source Code

  • Download source code and circuit diagram and enjoy the simulation.

11. Interfacing RFID RC522 with Arduino

In this section I will elaborate you the method for interfacing RFID RC522 with Arduino. I have used a breadboard and jumper wires to make a connection between RFID RC522 and Arduino UNO. RFID RC522 is used in the projects where there is a need of wireless communication between laptop/PC and the micro controller. I have provide the pins configuration of Arduino as well as RFID RC522 sensor. I have also provided the library for RFID, a complete circuit diagram of in terfacing this module with Arduino as well as the source code to operate this module.
  • You can download the library, circuit diagram and source code here by clicking on the button below.

Download Simulation & Arduino Source Code

  • Download source code and circuit diagram and enjoy the simulation.

12. Control Servo Motor with Arduino in Proteus

This section of the tutorial Arduino Projects for Beginners, will provide explanation about control of a servo motor with Arduino in Proteus ISIS. Servo motor is commonly used in the projects where there is a need of high precision like CNC machines, robotics are such fields where high precised results are required. So, servo motors are the best option in such cases. I have designed a complete circuit for interfacing of a stepper motor with Arduino UNO in Proteus ISIS. I have provided the complete Arduino source code as well. After uploading the source code in Arduino you will be able to control the servo motor in Proteus ISIS.
  • You can download the complete simulation and source code here by clicking on the button below.

Download Simulation & Arduino Source Code

  • Download source code and circuit diagram and enjoy the simulation.

13. Home Automation Project using XBee and Arduino

In this tutorial I have explained all of the steps about making a home automation project using XBee and Arduino UNO. Now a says, since every thing is going under automation. So, I thought to design a pretty simple automation projects named as home automation project. Home automation project has the features e.g. you can control the entire appliances of the home from your PC or Laptop sitting anywhere in the world. This features required internet services. First of all I have designed the complete circuit as shown in the figure as well. I have designed the circuit to control the home using remote. I have written Arduino source code and after uploading the code in Arduino I have tested the projects and it was operating well. Our team has designed this project with a lot of hard work so we have imposed a very small amount of cost on it. Even a student can but this project with his/her pocket money.
  • You buy the complete simulation as well the Arduino source code here by clicking on the button below.

Buy Simulation & Arduino Code

14. GSM Based Home Security System using Arduino

In this section of the tutorial Arduino projects for beginners, I have explained all of the necessary steps to design a GSM based home security system using Arduino. Some of people are very conscious and they want to secure there houses at any cost. So basically this type of project is pretty suitable for them. I have designed a complete Proteus ISIS simulation for home security system using Arduino and GSM. Then I have written a complete Arduino Source code and after uploading it on the Arduino board in Proteus I have tested the results which were quite efficient and precise. This project took a lot of hard work and time. So, we have imposed a small amount of cost on it as well.
  • You can buy this project easily here by clicking on the button below, its not costly at all.

Buy Simulation & Arduino Code

This tutorial contains a detailed discussion of Arduino Projects for Beginners. I have a lot of basic Arduino projects. Some of them were free of cost and some projects are assigned with a small amount cost. I have tried to share different easy and moderate level Arduino projects. If you have any problem you can freely ask us. Me and my team is 24/7 available here to entertain you and to help you out in some good manner. I will share other informative and helpful tutorials in my upcoming articles. Till then, Taker Care :)

Servo Motor Control using Arduino

Hello everyone! I hope you all will be absolutely fine and having fun. Today, I am going to tell you about how to design an algorithm for Servo Motor Control using Arduino. First of all I would like to tell you a bit about the servo motors. Servo motors are small devices having an output shaft. We can adjust this shaft in different angular positions by continuously sending the servo coded signal. Servo motor maintains the angular position of the shaft as long as the coded signal is present at the input. If the applied coded signal changes, angular position of the shaft of a servo motor also changes correspondingly. If you are working on Servo Motor then i would suggest you to must have look at this tutorial Servo Motor control in Proteus, as its always a best practice to design simulation first. In my previous tutorials I have controlled the direction and speed of the both DC as well as of the stepper motor. Ordinary DC motor has only two input terminals. When power is supplied it simply starts to rotate continuously. In comparison to the DC motor servo motor has three wires. Using servo coded signal we can send commands to the servo motor that in what direction and with what angle it has to rotate. If we want to add motion in our electrical projects, servo motor will be an easy way to do so. Servo motor has a wide range of applications in our daily life e.g elevator, cars, robotics, puppets, remote controlled airplanes and cars, conveyor belts, solar tracking system, antenna positioning, textiles etc.Moreover, I have also controlled the Servo Motor with PIC Microcontroller, so if you are using PIC Microcontroller then have a look at that one.

Servo Motor Control using Arduino

In the tutorial Servo Motor Control using Arduino, I will tell you step by step procedure for connecting the servo motor with Arduino and how to design a algorithm in Arduino software to control its angular position with the help of servo coded signal. First of all I would like to tell you about the hardware components necessary for Servo Motor Control using Arduino.
  • You can download the complete Arduino source code here by clicking on the button below.

  • Just download .rar file, extract it and enjoy the complete source code.
Hardware Required
A complete list of the hardware equipment necessary for this task is given below.
  • Computer/Laptop
  • Arduino UNO (Micro Controller)
  • Appropriate USB Cable
  • Servo Motor (4.8 to 6.0V with 2.5 kgf-cm torque)
  • Jumper Wires (Cables)
Arduino UNO acts as the backbone of this task. It sends the servo encoded signal to the servo motor to control its angular movement. Arduino UNO board is shown in the figure below. Servo Motor having torque of 2.5kgf-cm and 4.8-6.0v is used for this project. The selected servo motor is shown in the figure below. Power of 5V is supplied to the servo motor from the Arduino UNO board. Jumper Wires are used to make the connections of the all the components in order to make the complete circuit with proper working. Jumper wires are shown in the figure below.
Circuit Diagram
  • The circuit diagram for Servo Motor Control using Arduino is shown in the figure below.
  • I have supplied 5V to red wire of the servo motor as shown in the above figure.
  • The black wire is the attached to the GND pin of the Arduino UNO.
  • Yellow wire is basically the wire used to control the angular motion as well as the angle of the servo motor.
Source Code Description
  • The complete Arduino source code for Servo Motor Control using Arduino is given below.
  • You have to just copy the code given below and to past it in your Arduino software.
  • By uploading the source code to your Arduino board you will be able to control the servo motor using Arduino.
#include <Servo.h> //library for servo motor

Servo myservo;  // servo motor object for its control

int ang = 0;    // a variable to store the servo angle

void setup() {

  Serial.begin(9600);
  
  myservo.attach(8);  // servo motor is attached to pin no 8 og Arduino

}

void loop() {

  for (ang = 0; ang <= 180; ang += 5) // goes from 0 degrees to 180 degrees with a step og 5 degree
  { 
    myservo.write(ang);              // rotates the servo to rotate at specific angle
    delay(50);     // adding delay of 50 msec
    Serial.println("Motor has started its rotation from 0 to 180 degress");
      }
  for (ang = 180; ang >= 0; ang -= 5) // goes from 180 degrees to 0 degrees with a step of 5 degree
  { 
    myservo.write(ang);              // rotates the servo to rotate at specific angle
    delay(50);                      // adding delay of 50 msec
    Serial.println("Motor has started its rotation from 180 to 0 degress");
      }
}
  • First of all I have inserted the library for servo motor.
  • Then I have created a servo object and declared the initial angle of the servo motor.
  • After that I have have adjust the baud rate, the rate at which Arduino communicates with the laptop/computer.
  • Then I have defined the pin at which the servo motor is attached to the Arduino UNO's board.
  • Inside the main loop, I have applied the condition that in between 0 and 180 degrees, the servo motor's angle will be increased with different steps and each step has 5 degrees of angular movement.
  • When maximum limit is reached, the angle will be reduced from 180 to 0 degree with different steps, each step having 5 degrees of angular movement.
  • That was the brief description of the Arduino complete source code designed for Servo Motor Control using Arduino.
That is all from the tutorial Servo Motor Control using Arduino. I hope you all have enjoyed this tutorial. If you face any sort of problem you can ask me freely in comments any time you want without even feeling any kind of hesitation. I will try my level best to solve your issues in a better way, if possible. I will explore Arduino by making different projects on it and will share all of them with all of you as well in my later tutorials. Till then, Take care :)

DC Current Sensor ACS712 Arduino Interfacing

Hello everyone! I hope you all will be absolutely fine and having fun. Today, I am going to share my knowledge with all of you guys about DC Current Sensor ACS712 Arduino Interfacing. First of all, I would like to tell you about importance of current sensing/measuring. Sensing the amount of current passing through any circuit can be useful in a lot of applications. For example, in low power consuming equipment, current sensing will be helpful to understand the system's impact on its battery life. The current sensing can also be used to make the decisions regarding safety in over current protection circuits. Simply, we can say that sensing and controlling the flow of the current through the circuits is now a fundamental requirement e.g. over current protection circuits, battery chargers, watt meters, power supplies etc.

DC Current Sensor ACS712 Arduino Interfacing

Basically, there are two types of current senors AC and DC. But, in the tutorial,I am going to do the DC Current Sensor ACS712 Arduino Interfacing, and we will learn about the sensing of the DC current. I will use ACS712 DC current sensor for sensing the DC current.
  • You can download the complete Arduino source code there.
  • Download .rar file, extract it and upload code in your Arduino board:

Components Required
Here I am going to tell you about the components necessary for this projects. The list of all the components is given below.
  • Arduino UNO
  • DC Current Sensor (ACS712)
  • DC Load
  • Wero Board
  • Soldering Iron
  • Soldering Gum
  • Jumper wires
  • Power Supply (12V)
  • 20 x 4 LCD
Description of the Components used
[ultimate_spacer height"10"] In this section of the tutorial Interfacing DC Current Sensor with Arduino, I will explain the reasons why I have used the specific components for this project.
  • Arduino UNO acts as the back bone of the project. It manipulates the whole source code uploaded to the board, prints the desired data on the serial monitor and also prints the executed commands on the LCD. You can use the same code of other Arduino boards as well i.e. Arduino Nano, Arduino Pro Mini etc.
  • Power Supply of 12V is used to turn the entire system ON. Because, we can not test and verify our system until we have not switched it ON. Power supply used for this project is shown in the figure. I have used this 9A Battery (I have this available) but you can use 1.5A small battery as well. Battery selection depends on your projects' power consumption.
  • LCD is used to display the digital values of the data which has been printed on the serial monitor of the Arduino software i.e all the executed commands will be printed on the LCD as well. The LCD which I have used for this is shown in the figure.
  • Jumper Wires are used to make the connections of the all the components, in order to make the complete circuit with proper working. Jumper wires are shown in the figure. There are 3 types of Jumper wires available: Male to Male, Male to Female & Female to Female.
  • ACS712 is used to sense the Direct Current (DC) flowing through the any circuit. The DC current sensor used is shown in the figure.
Flow Chart
[ultimate_spacer height="5"]
  • Here, I would like to explain the entire algorithm with the help of a flow chart for DC Current Sensor ACS712 Arduino Interfacing.
  • The flow chart for this project DC Current Sensor ACS712 Arduino Interfacing is shown in the figure.
  • First of all, I have initialized the Serial Port.
  • After that we are reading the value from our current sensor ACS712.
  • Then data will be displayed on the LCD and Serial Monitor.
Circuit Diagram
  • The complete wiring diagram for this project is shown in the figure below.
  • You can run this project properly, by making the circuit first, identical to the circuit diagram shown in the figure above.
  • The digital pin 0 of the Arduino UNO will help us in reading the data from the sensor.
  • The other two pins of the sensor are connected to the supply of 5V and ground respectively as you can see from the above figure.
Source Code Description
  • The source code for this project DC Current Sensor ACS712 Arduino Interfacing is given below.
  • You have to just copy and paste the code given below in your Arduino software after properly interfacing DHT11 with the Arduino.
  • After uploading the code onto your Arduino board you will be able to observe the humidity and temperature and humidity level on serial monitor.
// include the library code:
#include <LiquidCrystal.h> //library for LCD

// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(8, 9, 10, 11, 12, 13);

//Measuring Current Using ACS712

const int analogIn = 0; //Connect current sensor with A0 of Arduino
int mVperAmp = 185; // use 100 for 20A Module and 66 for 30A Module
int RawValue= 0;
int ACSoffset = 2500; 
double Voltage = 0; //voltage measuring
double Amps = 0;// Current measuring

void setup() {
  //baud rate
  Serial.begin(9600);//baud rate at which arduino communicates with Laptop/PC
  // set up the LCD's number of columns and rows:
  lcd.begin(20, 4);  //LCD order
  // Print a message to the LCD.
  lcd.setCursor(1,1);//Setting cursor on LCD
  lcd.print("www.TheEngineering");//Prints on the LCD
  lcd.setCursor(4,2);
  lcd.print("Projects.com");
  delay(3000);//time delay for 3 sec
  lcd.clear();//clearing the LCD display
  lcd.display();//Turning on the display again
  lcd.setCursor(1,0);//setting LCD cursor
  lcd.print("Reading Values from");//prints on LCD
  lcd.setCursor(1,1);
  lcd.print("DC Current Sensor");
  lcd.setCursor(5,2);
  lcd.print("ACS 712");
  delay(2000);//delay for 2 sec
}

void loop() //method to run the source code repeatedly
{
 
 RawValue = analogRead(analogIn);//reading the value from the analog pin
 Voltage = (RawValue / 1024.0) * 5000; // Gets you mV
 Amps = ((Voltage - ACSoffset) / mVperAmp);
 
//Prints on the serial port
 Serial.print("Raw Value = " ); // prints on the serial monitor
 Serial.print(RawValue); //prints the results on the serial monitor
 
 lcd.clear();//clears the display of LCD
 delay(1000);//delay of 1 sec
 lcd.display();
 lcd.setCursor(1,0);
 lcd.print("Raw Value = ");
 lcd.setCursor(13,0);
 lcd.print(RawValue);
 
 Serial.print("\t mV = "); // shows the voltage measured 
 Serial.print(Voltage,3); // the '3' after voltage allows you to display 3 digits after decimal point
 
 lcd.setCursor(1,1);
 lcd.print("Voltage = ");
 lcd.setCursor(11,1);
 lcd.print(Voltage,3);
 lcd.setCursor(17,1);
 lcd.print("mV");//Unit for the voltages to be measured
 
 Serial.print("\t Amps = "); // shows the voltage measured 
 Serial.println(Amps,3);// the '3' after voltage allows you to display 3 digits after decimal point
 
 lcd.setCursor(1,2);
 lcd.print("Current = ");
 lcd.setCursor(11,2);
 lcd.print(Amps,3);
 lcd.setCursor(16,2);
 lcd.print("A"); //unit for the current to be measured
 delay(2500); delay of 2.5 sec
}
  • I am going to explain you that how this code is working!
  • Then I have defined the library for LCD.
  • I have defined the pin at which DC current sensor is attached with the Arduino board.
  • Then I have defined the Arduino pins at which the LCD is interfaced.
  • Then by opening the serial port I have started to print the level of temperature and humidity on the serial monitor as well as on the 20×4 LCD.
  • At the end, I have added the delay of few seconds so that the speed of the data to be printed on the serial monitor can be reduced to some extent in order to observe properly.
  • This was the brief description of the source code.
This is all from the tutorial DC Current Sensor ACS712 Arduino Interfacing. I hope you all enjoyed this tutorial. If you face any sort of problem you can ask me anytime in comments without even feeling any kind of hesitation. I will try my level best to solve your issues in a better way, if possible. I will explore Arduino further in my later tutorials. Till then, Take care :)

Scrolling Text on LCD with Arduino

Hello everyone! hope you all will be fine. In this article I am going to share the knowledge about displaying Scrolling Text on LCD with Arduino. A Liquid Crystal Display is usually known as LCD in the market. It is a display unit made up of liquid crystal. When we want to made electronics based projects, we need a device on which we can show the system’s output and the desired messages. There are a lot of such devices which are helpful to display the output messages and the most common is a seven segment display. Alternate good option is LCD, which are now available in different size having different qualities. 16×2 LCD Module is a most frequently used device for the electronic projects out of all the other types of LCD’s available in the market. 32 ASCII characters can be displayed on it simultaneously in 2 rows i.e. it has a capacity to show 16 characters per row. 20×4 LCD, 128×64 graphical LCD and 2.4 inch TFT Touch screen LCD are also used commonly for the electronic projects now-a-days in the market and as well as in the institutions.

Scrolling Text on LCD with Arduino

In the tutorial Scrolling Text on LCD with Arduino, we are going to learn how to interface a 16×2 lcd to Arduino UNO and how to display the scrolling text on LCD in Proteus ISIS. First I would like to write a simple code to print something on the LCD and then I will update the previously written code to scroll the text printed already on the LCD.
  • You candownload the complete simulation here by clicking on the button below.

Arduino Source Code

  • Just download .rar file, extract it and enjoy the complete simulation.
Interfacing 16×2 LCD to Arduino uno
LCD modules are most frequently used devices specially in Arduino based electronic projects. So it is essential to share this tutorial based on interfacing LCD module to Arduino UNO and displaying scrolling text on LCD with all of you. Interfacing of an Arduino UNO to 16×2 LCD is elaborated in this section. The selected LCD module has 16 pins. You can operate this module in 4 bit mode by using only four data lines (from D4 to D7) or 8 bit mode by using all the eight data lines (from D0 to D7). In this article we are using the LCD module operating in the 4-bit operational mode i.e. we are using only four data pins. I have divided this tutorial in two parts. First of all, I will explain how to display a simple text messages on the 16×2 LCD with Arduino UNO and secondly I will show that how to display scrolling text on the same LCD interfaced with Arduino UNO. Before the explanation of this design, let’s have a look at the selected LCD. You should also have a look at this New LCD Library for Proteus.
Designed Circuit in Proteus ISIS
Find Arduino UNO and a 16×2 LCD in the components library of proteus ISIS ISIS. If arduino library is present in your Arduino software then arduino will be shown in the components library otherwise you have to install Arduino library for proteus ISIS. Wiring diagram of the LCD module with Arduino UNO in proteus ISIS is shown in the figure below. You can download this Proteus Simulation from Interfacing of LCD with Arduino.
  • .Now just copy and paste the given source code in the Arduino software
#include<LiquidCrystal.h> //Library for LCD
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);// LCD pins at which it is attached to the Arduino

void setup() //method used to run the source for the one time onlys
{
  lcd.begin(16, 2);//LCD order i.e. 16 columns & 2 rows
  lcd.print("The Engineering Projects ");//prints on LCD
  lcd.setCursor(0,1);//setting cursor on LCD
  lcd.print("www.TheEngineeringProjects.com");//prints on LCD
  delay(1000);//delay of 1 sec
}
void loop() //method to run the source code repeatedly 
{
 lcd.noDisplay();//turn off the display of LCD
 delay(250);//delay to 0.25 seconds
 lcd.display();//turning on the LCD display
 delay(250); //delay of 0.25 seconds again
}
  • Now compile the source code and get hex file from it as shown in the figure below.
  • Copy this address as shown in the figure above.
  • Double click on Arduino UNO in proteus, a new window will be opend as shown in the figure below.
  • Paste that address in the file menu as encircled in the figure below.
  • Run the proteus simulation from the Arduino software from the upper left corner of the software.
  • If everything goes perfect you will see the output as shown in the figure below.
  • Copy and paste the source given below in your Arduino software.
#include <LiquidCrystal.h>//Library for LCD
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);//LCD pins at which it is attached to the Arudino

void setup()//method used to run the code for once 
{
  lcd.begin(16, 2);//LCD order
  lcd.print("The Engineering Projects ");//prints on LCD
  lcd.setCursor(0,1);//Setting the cursor on LCD
  lcd.print("www.TheEngineeringProjects.com");//prints on LCD
  delay(1000);//delay of 1 second
}

void loop() //used to run the code repeatedly
{
 for(int PositionCount=0;PositionCount<13; PositionCount++)//loop for scrolling the LCD text
  {
    lcd.scrollDisplayLeft();//builtin command to scroll left the text
    delay(150);// delay of 150 msec
    }

   for(int PositionCount=0; PositionCount<29; PositionCount++)
   {
    lcd.scrollDisplayRight(); //builtin command to scroll right the text
    delay(150);//delay of 150 msec
    }
   for(int PositionCount=0; PositionCount<16; PositionCount++)//loop for scrolling the text
   {
    lcd.scrollDisplayLeft();//builtin command to scroll the text left again
    delay(150);//delay of 150 msec
    }
}
  • Compile the code given above.
  • Obtain the hex file as I told above in the figure.
  • And open it in your proteus as I described above.
  • Run the simulation like the I have previously done.
  • You will be able to see the scrolling text on LCD as shown in the figure below.
  • That all from this article to show Scrolling Text on LCD using Arduino.
  • Was it difficult? I don't think so :)
So, that is all from the tutorial Scrolling Text on LCD using Arduino. I hope you enjoyed this tutorial. If you face any sort of problem, you can ask me in the comments any time. I will try my level best to solve your issues in a better way, if possible. I will explore Arduino by making different projects on it and will share them with you as well. Till then, take care :)
Syed Zain Nasir

I am Syed Zain Nasir, the founder of <a href=https://www.TheEngineeringProjects.com/>The Engineering Projects</a> (TEP). I am a programmer since 2009 before that I just search things, make small projects and now I am sharing my knowledge through this platform.I also work as a freelancer and did many projects related to programming and electrical circuitry. <a href=https://plus.google.com/+SyedZainNasir/>My Google Profile+</a>

Share
Published by
Syed Zain Nasir