// Muhammad Rusman Hilmi Bin Mohd Rais
// Lab L01-B02
#include <LiquidCrystal_I2C.h>
#include <Wire.h>
#define trigerPin 12
#define echoPin 13
#define ledPin 2
#define buzzerpin 10
#define pitch 262
#define led 7
#define button 6
int knob = 0;
LiquidCrystal_I2C lcd(0x27,16,2);
double duration;
int distance;
void setup() {
Serial.begin(9600);
pinMode(trigerPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(ledPin, OUTPUT);
pinMode(buzzerpin, OUTPUT);
pinMode(led, OUTPUT);
lcd.init();
lcd.backlight();
lcd.setCursor(0,0);
lcd.print("Danger Detection");
lcd.setCursor(0,1);
lcd.print("by rusman");
delay(1000);
}
void loop() {
lcd.clear();
digitalWrite(trigerPin, LOW);
delayMicroseconds(2);
digitalWrite(trigerPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigerPin, LOW);
delayMicroseconds(2);
duration = pulseIn(echoPin,HIGH);
distance = (duration/2) * 0.0343;
lcd.setCursor(0,0);
lcd.print("Danger: ");
lcd.print("Ahead");
delay(1000);
if(distance<=200){
knob = digitalRead(button);
if(knob == HIGH)
digitalWrite(led, LOW);
delay(500);
digitalWrite(led, HIGH);
delay(200);
digitalWrite(ledPin, HIGH);
tone(buzzerpin, pitch);
delay(300);
if(knob == LOW){
digitalWrite(led, HIGH);
}
digitalWrite(ledPin, LOW);
noTone(buzzerpin);
delay(300);
}
else{
digitalWrite(ledPin, LOW);
noTone(buzzerpin);
}
lcd.setCursor(0,1);
lcd.print("Ready for impact");delay(1000);
if(distance >200){
digitalWrite(led, LOW);
}
}