#include <LiquidCrystal_I2C.h>
#include <Wire.h>
// for ultrasonic sensor
// A0 TO A3 for I/P and A4 and A5 for led blinking.
int trig_0 = A0;
int trig_1 = A1;
int echo_0 = A2;
int echo_1 = A3;
int led_0 = A4;
int led_1 = A5;
int dist_0, dist_1;
// for display
LiquidCrystal_I2C lcd(0x27, 16, 2);
// for relay
int relay_0 = 2;
int relay_1 = 3;
void setup() {
// for ultrasonic sensor
pinMode(trig_0, OUTPUT);
pinMode(trig_1, OUTPUT);
pinMode(echo_0, INPUT);
pinMode(echo_1, INPUT);
pinMode(led_0, OUTPUT);
pinMode(led_1, OUTPUT);
// for Display
Serial.begin(9600);
lcd.init();
lcd.backlight();
// for relay or coil
pinMode(relay_0, OUTPUT);
pinMode(relay_1, OUTPUT);
}
void loop() {
// for display
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Point 1");
lcd.setCursor(0, 1);
lcd.print("Off");
lcd.setCursor(8, 0);
lcd.print("Point 2");
lcd.setCursor(8, 1);
lcd.print("Off");
if (dist_0 <= 25) {
digitalWrite(led_0, HIGH);
lcd.setCursor(0, 1);
lcd.print("On ");
st0();
digitalWrite(relay_0, HIGH);
}
if (dist_1 <= 25) {
digitalWrite(led_1, HIGH);
lcd.setCursor(8, 1);
lcd.print("On ");
st1();
digitalWrite(relay_1, HIGH);
}
}
void st0() {
// for ultrasonic sensor init 0
digitalWrite(trig_0, LOW);
delayMicroseconds(2);
digitalWrite(trig_0, HIGH);
delayMicroseconds(10);
digitalWrite(trig_0, LOW);
long duration_0 = pulseIn(echo_0, HIGH);
dist_0 = duration_0 * 0.034 / 2;
}
void st1() {
// for ultrasonic sensor init 1
digitalWrite(trig_1, LOW);
delayMicroseconds(2);
digitalWrite(trig_1, HIGH);
delayMicroseconds(10);
digitalWrite(trig_1, LOW);
long duration_1 = pulseIn(echo_1, HIGH);
dist_1 = duration_1 * 0.034 / 2;
}