This is an old revision of the document!
By Sebastian-Ioan Panca
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
const int trig = 12; const int echo = 13;
const int LED1 = 8; const int LED2 = 7; const int LED3 = 6; const int LED4 = 5; const int LED5 = 4; const int LED6 = 3; const int LED7 = 2; int buzzer = 9; int duration = 0; int distance = 0;
void setup() {
pinMode(trig , OUTPUT); pinMode(echo , INPUT); pinMode(buzzer, OUTPUT); pinMode(LED1 , OUTPUT); pinMode(LED2 , OUTPUT); pinMode(LED3 , OUTPUT); pinMode(LED4 , OUTPUT); pinMode(LED5 , OUTPUT); pinMode(LED6 , OUTPUT); pinMode(LED7 , OUTPUT); lcd.init(); lcd.backlight(); Serial.begin(9600);
}
void loop() {
digitalWrite(trig , HIGH); delayMicroseconds(500); digitalWrite(trig , LOW);
duration = pulseIn(echo , HIGH); distance = (duration/2) / 28.5 ;
Serial.println(distance);
lcd.clear(); lcd.setCursor(0,0); //Set cursor to first column of second row lcd.print("Distance:"); //Print blanks to clear the row lcd.print(distance); //Print measured distance lcd.print(" cm"); //Print your units. delay(500);
if ( distance <= 7 ) { digitalWrite(LED1, HIGH); tone(buzzer, 700); } else { digitalWrite(LED1, LOW); noTone(buzzer); } if ( distance <= 14 ) { digitalWrite(LED2, HIGH); tone(buzzer, 600); } else { digitalWrite(LED2, LOW); noTone(buzzer); } if ( distance <= 21 ) { digitalWrite(LED3, HIGH); tone(buzzer, 500); } else { digitalWrite(LED3, LOW); noTone(buzzer); } if ( distance <= 28 ) { digitalWrite(LED4, HIGH); tone(buzzer, 400); } else { digitalWrite(LED4, LOW); noTone(buzzer); } if ( distance <= 35 ) { digitalWrite(LED5, HIGH); tone(buzzer, 300); } else { digitalWrite(LED5, LOW); noTone(buzzer); } if ( distance <= 42 ) { digitalWrite(LED6, HIGH); tone(buzzer, 200); } else { digitalWrite(LED6, LOW); noTone(buzzer); } if ( distance <= 49 ) { digitalWrite(LED7, HIGH); tone(buzzer, 100); } else { digitalWrite(LED7, LOW); noTone(buzzer); }
}