Monday, May 14, 2018

LDR Based Automatic Light with PIC16F90



Hello, today I will do an interesting project which is LDR Based Automatic Light with PIC16F690. This is a simple project using LDR and PIC16F90. This PIC16F690 is a very popular microcontroller. PIC16f690 micro controller has 3 port. These are PORT A, PORTB, and PORTC. Each port has some specific purpose. 

The purpose of this project is to make an automatic light with the help of LDR and microcontroller. If there is sunlight or light from other sources then systems light will be turned off and if there is no sunlight or other source of light then systems light will be turned on. For sensor will will use LDR. 

LDR is basically a photoresistor or  light dependent resistor. This is a light controlled variable resistor. The resistance of a LDR decreases with increasing incident light intensity and the resistance of a LDR increases with increasing incident of light intensity.



Figure 1: Light Dependent Resistor


To do this we need following software:

   1. MikroC pro for PIC (student verison)
   2. Proteus 8 professional
   3. PicKit 2

MikroC pro for PIC will be used for writing and compiling the code. Here we will use C language.
Proteus 8 professional will be used for the simulation and finally Pickit 2 will be used for burning the hex file in the PIC16F690  IC.



To do this project we need following components;


   1. PIC16F690
   2. LED
   3. 16 MHz Crystal Oscillator
   4. Breadboard
   5. Wires

   6. 5V DC Power source
   7. 5V Relay Module
   8. LDR


CODE

void main()
{
      unsigned int input = 0;
      TRISC = 0;                             // output register
      PORTC = 0;                           // output port

      ADCON1 =0x0E;                  // Analog to digital converter turning on

      while(1)
      {

         input = ADC_read(0);         // Reading the ADC value from PORT A0

         if(input<=500)                     // 500 is corresponding value of LDR
         {
            PORTC = 0b01111111;     // Turning on LED on PORTC
            delay_ms(1000);               // Turning on LED for 1 seconds

         }

         else
         {
            PORTC = 0b00000000;   // Turning off LED
         }

      }
}


SCHEMATIC





Figure 2: Schematic


Figure 3: Schematic



Line Follower Robot using Arduino

This project was a part of Line Follower Robot Competition