const int trig = 8;
const int echo = 9;
int LED = 10;
int buzzer=12;
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
void setup() {
pinMode(echo, INPUT);
pinMode(trig, OUTPUT);
pinMode(LED,OUTPUT);
Serial.begin(9600);
pinMode(buzzer,OUTPUT);
lcd.init();
lcd.backlight();
}
void loop() {
long IntervalTime=0;
unsigned char i,j;
while(1){
digitalWrite(trig, 1);
delayMicroseconds(15);
digitalWrite(trig, 0);
IntervalTime=pulseIn(echo, HIGH);
float S=IntervalTime/58.00;
Serial.println(S);
lcd.setCursor(10,0);
lcd.print(S);
if(S<50){
lcd.setCursor(0,0);
lcd.print("too low");
digitalWrite(LED,HIGH);
delay(500);
digitalWrite(LED,LOW);
delay(500);
if(S<10){
lcd.setCursor(14,0);
lcd.print(" ");
}
for(i=0;i<80;i++)
{
digitalWrite(buzzer,HIGH);
delay(1);
digitalWrite(buzzer,LOW);
delay(1);
}
}
if(50<S){
if(S<100){
lcd.setCursor(0,0);
lcd.print("normal ");
digitalWrite(LED,HIGH);
delay(100);
digitalWrite(LED,LOW);
delay(100);
lcd.setCursor(15,0);
lcd.print(" ");
for(i=0;i<100;i++)
{
digitalWrite(buzzer,HIGH);
delay(1);
digitalWrite(buzzer,LOW);
delay(1);
}
}
if(S>100){
lcd.setCursor(0,0);
lcd.print("too far");
digitalWrite(LED,HIGH);
for(i=0;i<200;i++)
{
digitalWrite(buzzer,HIGH);
delay(1);
digitalWrite(buzzer,LOW);
delay(1);
}
}
}
S=0;IntervalTime=0;
delay(500);
}
}