Friday, 29 May 2015

Arduino Relay and LDR Ciruit and Proteus Simulation

Suppose you'd like to create an LDR controlled circuit.
This circuit may perform something simple ,for example in our case switch an LED on and off, or may be extended to controlled a light affected process such as masking (imprinting onto) a PCB board or and other use you may find for it.

We're going design this simple circuit (Arduino being the major component) and use a simulation tool like Proteus(ISIS) tool simulate it.
The circuit schematic design will also be done using Proteus .

The Arduino Code is fairly simple;just a few lines of code:


const int sensorPin = 0; //LDR sensor will connect here
int solenoidPin = 2;

void setup(){
pinMode(solenoidPin,OUTPUT);
}

void loop(){
int rate = analogRead(sensorPin);

if(rate>10){

digitalWrite(solenoidPin,HIGH);


}else{
digitalWrite(solenoidPin,LOW);
}

}

Next is the circuit:

When you run this you should see this:
video
Now a little explanation: 
The Arduino reads the Analog input from the LDR and a value of  10(possibly intensity),
When this input value is greater than 10, the LED will go off.

NOTES:
You need the Arduino IDE or Atmel Studio(-with Visual Micro Plugin);
When you build a sketch in Atmel Studio, the .hex file is stord within the "Debug" folder of your sketch. Copy this .hex file in to a directory which you can easily access,double click on your Proteus schematic and select the program file option and navigate to the .hex file directory.

However when using the Arduino IDE the .hex file is stored in %temp%  (Temporary folder in your Appdata-Windows users), the remainder of the process remains the same for linking into Proteus.

Proteus components:
1N40001,2N2222,ARDUINO UNO,LED,1 Kilo Ohm resistor,10 Kilo Ohm resistor,Torch_LDR,Relay.

Then run it.
Happy Coding...