#include <LiquidCrystal.h>
LiquidCrystal lcd(2,3,4,5,6,7);
const int ir1 = A0;
const int ir2 = A1;
const int ir3 = A2;
const int ir4 = A3;
const int Sound = A4;
const int Relay1 = 8;
const int Relay2 = 9;
const int Relay3 = 10;
const int Relay4 = 11;
int ir_flag1 = 0,ir_flag2 = 0,ir_flag3 = 0,ir_flag4 = 0,ir_flag5 = 0;
long acc_x_avg=0;
int acc_x;
void function_dispaly()
{
lcd.setCursor(0,0); lcd.print("D1:");
lcd.setCursor(8,0); lcd.print("D2:");
lcd.setCursor(0,1); lcd.print("D3:");
lcd.setCursor(8,1); lcd.print("D4:");
}
void ir_function()
{
//------------------------------------------------
if(digitalRead(ir1)==LOW)
{
if(ir_flag1 == 0)
{
digitalWrite(Relay1,HIGH);
ir_flag1 = 1;
lcd.setCursor(3,0);lcd.print("ON ");
}
else if(ir_flag1 == 1)
{
digitalWrite(Relay1,LOW);
ir_flag1 = 0;
lcd.setCursor(3,0);lcd.print("OFF ");
}
while(digitalRead(ir1)==LOW){}
}
//------------------------------------------------
if(digitalRead(ir2)==LOW)
{
if(ir_flag2 == 0)
{
digitalWrite(Relay2,HIGH);
ir_flag2 = 1;
lcd.setCursor(11,0);lcd.print("ON ");
}
else if(ir_flag2 == 1)
{
digitalWrite(Relay2,LOW);
ir_flag2 = 0;
lcd.setCursor(11,0);lcd.print("OFF ");
}
while(digitalRead(ir2)==LOW){}
}
//------------------------------------------------
if(digitalRead(ir3)==LOW)
{
if(ir_flag3 == 0)
{
digitalWrite(Relay3,HIGH);
ir_flag3 = 1;
lcd.setCursor(3,1);lcd.print("ON ");
}
else if(ir_flag3 == 1)
{
digitalWrite(Relay3,LOW);
ir_flag3 = 0;
lcd.setCursor(3,1);lcd.print("OFF ");
}
while(digitalRead(ir3)==LOW){}
}
//------------------------------------------------
if(digitalRead(ir4)==LOW)
{
if(ir_flag4 == 0)
{
digitalWrite(Relay4,HIGH);
ir_flag4 = 1;
lcd.setCursor(11,1);lcd.print("ON ");
}
else if(ir_flag4 == 1)
{
digitalWrite(Relay4,LOW);
ir_flag4 = 0;
lcd.setCursor(11,1);lcd.print("OFF ");
}
while(digitalRead(ir4)==LOW){}
}
}
void setup()
{
Serial.begin(9600);
lcd.begin(16,2);
pinMode(ir1,INPUT_PULLUP);pinMode(ir2,INPUT_PULLUP);
pinMode(ir3,INPUT_PULLUP);pinMode(ir4,INPUT_PULLUP);
pinMode(Sound,INPUT_PULLUP);
pinMode(Relay1,OUTPUT);pinMode(Relay2,OUTPUT);
pinMode(Relay3,OUTPUT);pinMode(Relay4,OUTPUT);
digitalWrite(Relay1,LOW);digitalWrite(Relay2,LOW);
digitalWrite(Relay3,LOW);digitalWrite(Relay4,LOW);
lcd.setCursor(0,0);
lcd.print(" Automatic "); //Automatic Contactless Switch For Smart Home
lcd.setCursor(0,1);
lcd.print(" Contactless ");
delay(2000);
lcd.setCursor(0,0);
lcd.print("Switch for Smart"); //Automatic Contactless Switch For Smart Home
lcd.setCursor(0,1);
lcd.print(" HOME ");
delay(2000);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("D1:OFF D2:OFF ");
lcd.setCursor(0,1);
lcd.print("D4:OFF D4:OFF ");
}
void loop()
{
function_dispaly();
ir_function();
//------------------------------------------------------
// /*acc_x_avg=0;
//for(int i=1;i<=50;i++)
//{
// acc_x = analogRead(Sound);
// acc_x_avg+=acc_x;
// }
// acc_x = acc_x_avg/100;
// Serial.print("Acc. Values : ");Serial.print(acc_x);Serial.println(" ");
// */
if(digitalRead(Sound)==LOW) // Change this Value check serial monitor
{
if(ir_flag5 == 0)
{
digitalWrite(Relay1,HIGH);digitalWrite(Relay2,HIGH);
digitalWrite(Relay3,HIGH);digitalWrite(Relay4,HIGH);
ir_flag1 = 1;ir_flag2 = 1;ir_flag3 = 1;ir_flag4 = 1;ir_flag5 = 1;
lcd.setCursor(3,0);lcd.print("ON ");lcd.setCursor(11,0);lcd.print("ON ");
lcd.setCursor(3,1);lcd.print("ON ");lcd.setCursor(11,1);lcd.print("ON ");
}
else if(ir_flag5 == 1)
{
digitalWrite(Relay1,LOW);digitalWrite(Relay2,LOW);
digitalWrite(Relay3,LOW);digitalWrite(Relay4,LOW);
ir_flag1 = 0;ir_flag2 = 0;ir_flag3 = 0;ir_flag4 = 0;ir_flag5 = 0;
lcd.setCursor(3,0);lcd.print("OFF ");lcd.setCursor(11,0);lcd.print("OFF ");
lcd.setCursor(3,1);lcd.print("OFF ");lcd.setCursor(11,1);lcd.print("OFF ");
}
while(digitalRead(Sound)==LOW)
{
//acc_x_avg=0;
//for(int i=1;i<=50;i++)
//{
// acc_x = analogRead(Sound);
// acc_x_avg+=acc_x;
//}
//acc_x = acc_x_avg/100;
//Serial.print("Acc. Values : ");Serial.print(acc_x);Serial.println(" ");
}
}
}