#include <LiquidCrystal.h>
#define echoPin1 2
#define trigPin1 3
#define echoPin2 12
#define trigPin2 13
#define buzzer 11
int top = A0;
int tym = A2;
long duration1;
int distance1;
long duration2;
int distance2;
const int rs = 9, en = 8, d4 = 4, d5 = 5, d6 = 6, d7 = 7;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
void setup() {
lcd.begin(16, 2);
pinMode(trigPin1, OUTPUT);
pinMode(echoPin1, INPUT);
pinMode(trigPin2, OUTPUT);
pinMode(echoPin2, INPUT);
pinMode(top, INPUT);
pinMode(tym, INPUT);
pinMode(buzzer, OUTPUT);
Serial.begin(9600);
}
void loop() {
digitalWrite(trigPin1, LOW);
delayMicroseconds(2);
digitalWrite(trigPin1, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin1, LOW);
duration1 = pulseIn(echoPin1, HIGH);
distance1 = duration1 * 0.034 / 2;
digitalWrite(trigPin2, LOW);
delayMicroseconds(2);
digitalWrite(trigPin2, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin2, LOW);
duration2 = pulseIn(echoPin2, HIGH);
distance2 = duration2 * 0.034 / 2;
int diff = (distance2 - distance1);
int A = analogRead(top);
int C = analogRead(tym);
int a = 0;
int c = 0;
if (A < 100) {
a = 1;
} else if (A < 200) {
a = 2;
} else if (A < 300) {
a = 3;
} else if (A < 400) {
a = 4;
} else if (A < 500) {
a = 5;
} else if (A < 600) {
a = 6;
} else if (A < 700) {
a = 7;
} else if (A < 800) {
a = 8;
} else if (A < 900) {
a = 9;
} else if (A < 1000) {
a = 10;
} else {
a = 10;
}
if (C < 100) {
c = 0;
} else if (C < 200) {
c = 2;
} else if (C < 300) {
c = 5;
} else if (C < 400) {
c = 10;
} else if (C < 500) {
c = 15;
} else if (C < 600) {
c = 30;
} else {
c = 60;
}
int buff = c * 1000;
if (diff >= a) {
delay(buff);
digitalWrite(buzzer, HIGH);
} else {
digitalWrite(buzzer, LOW);
}
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Calibrate: ");
lcd.print(a);
lcd.print(" cm");
lcd.setCursor(0, 1);
lcd.print("timer:");
lcd.print(c);
lcd.print(" Seconds");
Serial.print("Distance1: ");
Serial.print(distance1);
Serial.println(" cm");
Serial.print("Distance2: ");
Serial.print(distance2);
Serial.println(" cm");
}