#include <LiquidCrystal_I2C.h>
const int trigPin = 9;
const int echoPin = 10;
const int relay1 = 11;
const int relay2 = 12;
const int ledPin = 8;
LiquidCrystal_I2C lcd(0x27, 16, 2);
long duration;
long distance;
long safetyDistance;
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(ledPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(relay1, OUTPUT);
pinMode(relay2, OUTPUT);
lcd.begin(16, 2);
lcd.setCursor(0, 0);
lcd.print("Place your hand");
}
void loop() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = duration*0.034/2;
safetyDistance = distance;
if(safetyDistance <= 30){
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Disinfecting");
digitalWrite(relay1, HIGH);
digitalWrite(relay2, HIGH);
digitalWrite(ledPin, HIGH);
delay(1000);
digitalWrite(ledPin, LOW);
}
else{
digitalWrite(relay1, LOW);
digitalWrite(relay2, LOW);
digitalWrite(ledPin, LOW);
lcd.setCursor(0, 0);
lcd.print("Place your hand");
}
}