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);
}