/* Project : Ultrasonic reverse parking sersor with distance display and buzzer beep
Arduino : UNO
Group members : Muhammad Danish Shakir Bin Mohd Fadzilah
Mohd Naqiuddin Bin Rostapar
Wan Ahmad Firdaus Bin Wan Hasbullah
*/
#include <LiquidCrystal_I2C.h>
#define ECHO_PIN 5
#define TRIG_PIN 4
int switchPin = 7;
int switchState = 0;
LiquidCrystal_I2C lcd(0x27, 20, 4);
void setup() {
lcd.init();
lcd.backlight();
lcd.setCursor(1, 0);
Serial.begin(115200);
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
pinMode(switchPin, INPUT);
}
float readDistanceCM() {
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
int duration = pulseIn(ECHO_PIN, HIGH);
return duration * 0.034 / 2;
}
void loop() {
float distance = readDistanceCM();
lcd.setCursor(2,2);
lcd.print(F("Distance : "));
lcd.print(distance);
if (distance >= 100){
lcd.setCursor(7,0);
lcd.print("((R))");
lcd.setCursor(3,1);
lcd.print("Please reverse");
tone(8, 296, 600);
delay(800);
noTone(8);
}
if (distance >75 && distance<100){
lcd.setCursor(7,0);
lcd.print("((R))");
lcd.setCursor(3,1);
lcd.print(" Almost there ");
tone(8, 296, 100);
delay(300);
noTone(8);
}
if (distance <= 75) {
lcd.setCursor(7,0);
lcd.print("((P))");
lcd.setCursor(2,1);
lcd.print(" STOP! ");
tone(8, 296);
}
}