#include <LiquidCrystal.h>
#define TRIGGER_PIN1 2
#define ECHO_PIN1 3
#define TRIGGER_PIN2 4
#define ECHO_PIN2 5
#define OUTPUT_PIN1 6
#define OUTPUT_PIN2 7
LiquidCrystal lcd(8, 9, 10, 11, 12, 13);
void setup() {
pinMode(TRIGGER_PIN1, OUTPUT);
pinMode(ECHO_PIN1, INPUT);
pinMode(TRIGGER_PIN2, OUTPUT);
pinMode(ECHO_PIN2, INPUT);
pinMode(OUTPUT_PIN1, OUTPUT);
pinMode(OUTPUT_PIN2, OUTPUT);
lcd.begin(16, 2);
lcd.print("Slot-1 off");
lcd.setCursor(0, 1);
lcd.print("Slot-2 off");
}
void loop() {
float duration1, distance1, duration2, distance2;
// Sensor 1
digitalWrite(TRIGGER_PIN1, LOW);
delayMicroseconds(2);
digitalWrite(TRIGGER_PIN1, HIGH);
delayMicroseconds(10);
digitalWrite(TRIGGER_PIN1, LOW);
duration1 = pulseIn(ECHO_PIN1, HIGH);
distance1 = (duration1 / 2) / 29.1; // Calculate distance in cm
// Sensor 2
digitalWrite(TRIGGER_PIN2, LOW);
delayMicroseconds(2);
digitalWrite(TRIGGER_PIN2, HIGH);
delayMicroseconds(10);
digitalWrite(TRIGGER_PIN2, LOW);
duration2 = pulseIn(ECHO_PIN2, HIGH);
distance2 = (duration2 / 2) / 29.1; // Calculate distance in cm
// Display readings on LCD
lcd.clear();
if (distance1 < 10) {
lcd.setCursor(0, 0);
lcd.print("Slot-1 charging");
digitalWrite(OUTPUT_PIN1, HIGH);
} else {
lcd.setCursor(0, 0);
lcd.print("Slot-1 off");
digitalWrite(OUTPUT_PIN1, LOW);
}
if (distance2 < 10) {
lcd.setCursor(0, 1);
lcd.print("Slot-2 charging");
digitalWrite(OUTPUT_PIN2, HIGH);
} else {
lcd.setCursor(0, 1);
lcd.print("Slot-2 off");
digitalWrite(OUTPUT_PIN2, LOW);
}
delay(1000); // Adjust delay as needed for your application
}