#include <LiquidCrystal_I2C.h>
#define trig 13
#define echo 12
#define buzzer 7
int mesafe, sure;
int minMesafe = 30;
int maxMesafe = 200;
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
// put your setup code here, to run once:
pinMode(trig, OUTPUT);
pinMode(echo, INPUT);
pinMode(buzzer, OUTPUT);
Serial.begin(9600);
lcd.init();
lcd.backlight();
}
int melodi(int param1){
int frequency = param1 * 10;
tone(buzzer, 200);
delay(frequency);
noTone(buzzer);
delay(frequency);
//if else bloklarında melodiyi sürekli kullanacağım için melodi fonksiyonu oluşturdum.
}
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(trig, LOW);
delayMicroseconds(2);
digitalWrite(trig, HIGH);
delayMicroseconds(10);
digitalWrite(trig, LOW);
sure = pulseIn(echo, HIGH);
mesafe = sure / 58.2;
if (mesafe < minMesafe){
lcd.clear();
lcd.setCursor(0,0);
lcd.print(mesafe);
lcd.println(" cm cok yakin.");
melodi (minMesafe);
//30 cm'den az bir uzaklık varsa sık bip bip
// delay süresi 300 oluyor.
}
else if (mesafe > minMesafe && mesafe < 100){
lcd.clear();
lcd.setCursor(0,0);
lcd.print(mesafe);
lcd.println(" cm mesafe var.");
melodi (maxMesafe / 4);
// 30 cm-100 cm arasında ise orta bip bip
// delay süresi 500 oluyor
}
else {
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Mesafe ");
lcd.print(mesafe);
lcd.println(" cm");
melodi (maxMesafe / 2);
delay(100);
// 100 cm ve üzerinde ise uzun bip sesi
// delay süresi 1000 oluyor
}
}