Ultrasonıc sensör ile mesafeyi ölçerek LCD ekranda gösteriyoruz. LCD ile ilgili kütüphaneyi LCD ekran kullanımı 1  örnek sayfasındaki linkten indirebilirsiniz.

#include <Wire.h>

 

#define echoPin 7 // Echo Pin
#define trigPin 8 // Trigger Pin
#define LEDPin 13 // Onboard LED

 

int maximumRange = 200; // Maximum mesafe
int minimumRange = 0; // Minimum mesafe
long duration, distance; // mesafe hesaplamak için kullanılan süre

 

#include <LiquidCrystal_I2C.h>

 

// addr, en,rw,rs,d4,d5,d6,d7,bl,blpol
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);

 

void setup()
{
Serial.begin(9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(LEDPin, OUTPUT); // led
lcd.begin(16,2); // 16 karakter-2 sütunlu lcd olduğunu belirtiyoruz

 

// ——- önce 3 kere ekran ışığı yanıp sönecek ————-
for(int i = 0; i< 3; i++)
{
lcd.backlight();
delay(150);
lcd.noBacklight();
delay(150);
}

 

}

 

void loop()
{

 
digitalWrite(trigPin, LOW);
delayMicroseconds(2);

 

digitalWrite(trigPin, HIGH);
delayMicroseconds(10);

digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
lcd.backlight();

 

lcd.clear();
lcd.setCursor(0,0); //üst satırın başı

 

lcd.print(“MESAFE = “);
// süre hesabı
distance = duration/58.2;

if (distance >= maximumRange || distance <= minimumRange){
/* ölçüm kademe dışı */
lcd.print(“xxxxx”);
digitalWrite(LEDPin, HIGH);
}
else {
// mesafeyi LCD ye yazdır
lcd.print(distance);

// kursor 2. satır başından 1 karekter ileri alınıyor. Yazı ortalansın diye
lcd.setCursor(1,1);
lcd.print(“robotkursu.com”);
digitalWrite(LEDPin, LOW);
}

//Delay 50ms bir sonraki okuma için
delay(50);

 

}

 

 

HC-SR04-Ultrasonic-Distance-Sensor-Module-600x600