Ana Sayfa Arduino Arduino Uno ile Hc-Sr04 ve Lcd Ekran Kullanarak Mesafe Ölçmek

Arduino Uno ile Hc-Sr04 ve Lcd Ekran Kullanarak Mesafe Ölçmek

5 min read
12
0
17,101

Roboturka’dan merhabalar.

Arduino öğrenmeye başlayanların ilk yaptığı projelerden biri,Hc-Sr04 ultasonik mesafe sensörü  ve  2×16 Lcd ekran kullanarak, robotun karşısındaki engellerin mesafesini ölçmek ve bunu ekranda görüntülemektir. Buyrun,bu projeyi birlikte yapalım. Öncelikle ihtiyacımız olan malzemelerden bahsedelim.

Kullanılan Malzemeler ve Tavsiye Ürün Linkleri

  • 1 Adet Arduino Uno
  • 1 Adet Hc-Sr04 Ultrasonik mesafe sensörü
  • 1 Adet 16×2 Lcd Ekran
  • 1 Adet Breadboard

Yeteri kadar jumper kablosu ve isteğe bağlı potansiyometre. Potansiyometreyi lcd ekranın parlaklığını ayarlamak için kullanacağız.

İsterseniz fritzing şemasına,isterseniz fotoğraflara bakarak devre şemasını oluşturalım.

Hc-sr4-lcd-sema

hc-sr4-lcd

 

20150613_130921

Devremizi bu şekilde kurduktan sonra yeni bir arduino projesi açıp gerekli kodları yapıştırıyoruz ve kodları arduinomuza yüklüyoruz.


/*
HC-SR04 Ultrasonic Sensor with LCD dispaly
Bağlantılar:
HC-SR04 Ultrasonic Sensor
 VCC to Arduino 5V
 GND to Arduino GND
 Echo to Arduino pin 12
 Trig to Arduino pin 13
 
LCD Display (I used JHD162A)
 VSS to Arduino GND
 VCC to Arduino 5V
 VEE to Arduino GND
 RS to Arduino pin 11
 R/W to Arduino pin 10
 E to Arduino pin 9
 DB4 to Arduino pin 2
 DB5 to Arduino pin 3
 DB6 to Arduino pin 4
 DB7 to Arduino pin 5
 LED+ to Arduino 5V
 LED- to Arduino GND
 
Modified by Hidayet Çalışkan (Haziran, 2015).
*/
#include <LiquidCrystal.h> //Load Liquid Crystal Library
LiquidCrystal LCD(11,10,9,2,3,4,5); //Create Liquid Crystal Object called LCD
 
#define trigPin 13 //Sensörün Echo pini Arduinonun 13. pinine bağlanır
#define echoPin 12 //Sensorün Trig pini Arduinonun 12. pinine bağlanır
 
void setup()
{
 pinMode(trigPin, OUTPUT); //13. yani trigpini çıkış olarak ayarlıyoruz
 pinMode(echoPin, INPUT); //12. yani echoPini giriş olarak ayarlıyoruz
 
 LCD.begin(16,2); //Arduinoya lcdyi çalıştırmasını söylüyoruz
 LCD.setCursor(0,0); //kursoru ilk satırın ilk sütununa getirmesini söylüyoruz
 LCD.print("ww.roboturka.com"); //İlk satırda görünecek mesajı yazıyoruz
}
 
void loop() {
 long duration, distance;
 digitalWrite(trigPin, LOW);
 delayMicroseconds(2);
 digitalWrite(trigPin, HIGH);
 delayMicroseconds(10);
 digitalWrite(trigPin, LOW);
 duration = pulseIn(echoPin, HIGH);
 distance = (duration/2) / 29.1; //sesin gidiş gelişinde ölçülen süreyi önce ikiye bölerek sadece gidiş hızını ölçüyor sonra da ses hızına bölerek mesafeyi buluyoruz.
 
LCD.setCursor(0,1); //Kursoru ikinci satır birinci sütuna getiriyoruz
 LCD.print(" "); //Ekranı temizlemek için boşluk yazdırıyoruz.
 LCD.setCursor(0,1); //Kursoru tekrardan ikinci satır birinci sütuna getiriyoruz
 LCD.print("Mesafe ");
 LCD.setCursor(7,1); //satırın başında mesafe yazdığı için kursoru 7. sütuna götörüyoruz
 LCD.print(distance); //Ölçülen mesafeyi yazdırıyoruz
 LCD.print(" cm"); //Ölçü birimini yazdırıyoruz
 delay(250); //250 milisaniye bekletiyoruz.
}

Her şeyi doğru yaptıysanız aşağıdaki gibi bir sonuç almanız gerekiyor. Alamadıysanız kablo bağlantılarınızı tekrar kontrol etmelisiniz

20150613_133153

hc-sr4-lcd

Hc-Sr04 ultasonik mesafe sensörü  ve  16×2 Lcd ekran kullanarak mesafe ölçme projemizin sonuna geldik.

Uygulamanın videosu da aşağıdadır. Kolay gelsin. İyi çalışmalar

Buna Benzer Yazılar Göster !
Daha Fazlasını Yükle - Konuk Yazar
Daha Fazla Göster -  Arduino

12 Yorumlar

  1. tarık

    22 Ağustos 2015 at 16:04

    guzel paylasım tşk ederım ancak su yenı gordugum 4 tane baglantı ucu olan 2×16 ya gore bır baglantı seklı varmı acaba IC2 2×16 LCD kullnımı hakkında bi baglantı seması paylasımı varmı yenı baslıan birisi olarak

    Reply

    • Bilal Kaya

      Bilal Kaya

      22 Ağustos 2015 at 21:02

      Merhabalar Tarık,
      Arduino kod satırında yorum olarak LCD bağlantılarından bahsedilmiştir.Açıklayıcı olduğunu düşünüyorum 🙂

      Reply

  2. volkan

    8 Aralık 2015 at 23:44

    avrdude: ser_open(): can’t set com-state for “\\.\COM5”

    şeklnde ir yorum alıyorum ve yüklenme gerçekleşmiyor yardımcı olailirmsnizz

    Reply

    • cihan

      16 Mayıs 2016 at 22:34

      kardeş sorunun çözümünü bulabildin mi ? aynı sorunu bende yaşıyorumda.

      Reply

  3. yeter

    30 Mart 2016 at 16:22

    #include

    LiquidCrystal lcd(7, 8, 9, 10, 11, 12);

    int trigPin=2; //define trigPin 2

    int echoPin=3; //define echoPin 3

    int led=3;

    int siddet=0;

    void setup() {

    pinMode(trigPin, OUTPUT);

    pinMode(echoPin, INPUT);

    pinMode(led,OUTPUT);

    lcd.begin(16,2);

    }

    void loop() {

    int sure, uzaklik;

    lcd.clear();

    lcd.setCursor(0,0);

    digitalWrite(trigPin, HIGH);

    delayMicroseconds(1000);

    digitalWrite(trigPin, LOW);

    sure = pulseIn(echoPin, HIGH);

    uzaklik = (sure/58);

    siddet=255-(uzaklik/1,57); //1,57 olmazsa 1.57 yazın virgül yerine nokta koyun

    analogWrite(led,siddet);

    lcd.print(“Uzaklik = “);

    lcd.print(uzaklik);

    lcd.print(” cm”);

    delay(400);

    }

    ilgili kodlar yukarıda yazılmış ancak hocamız bzden her cm buzzer ötecek ama 10 cm algıkadıgında yüksek sesle buzzer ötmesini istedi
    kodlarda nasıl değişiklik yapılır
    yardımcı olabilir misiniz

    Reply

    • Batuhan Sözer

      17 Haziran 2016 at 12:46

      Hocam sen mantığını anla o kodu kendin yaz hocanız interneten bakın dememiştir kardeşim sen yanlış anlamışsındır

      Reply

  4. emirhan cansel

    30 Ocak 2017 at 15:54

    Benim yaptıgım projede surekli 0 cm gostermektedir. yani mesafe olcmuyor yardımcı olursanız sevinirim

    Reply

    • Bilal Kaya

      Bilal Kaya

      5 Haziran 2017 at 02:47

      Bağlantıları doğru yaptığınızı kontrol ediniz lütfen

      Reply

  5. Yakup

    3 Haziran 2017 at 20:23

    Yaptım gercekten mükemmel 5 dakka sürüyor sadece oraya kendi adımı yazdım ölçüm belki yüzde yüz değil ama 12 cm ise 12 cm gösteriyo milim farkı olsada önemi yok emeği geçenlerin eline sağlık. Kodlarda hiç bi sıkıntı yok

    Reply

  6. Sefa

    1 Aralık 2017 at 15:53

    exit status 1
    #include expects “FILENAME” or
    diye bir hata alıyorum ilk satırda.Bağlantıları vs kontrol ettim bir bakar mısınız hocam.

    Reply

  7. Sefa

    1 Aralık 2017 at 15:54

    Arduino:1.8.5 (Windows Store 1.8.10.0) (Windows 10), Kart:”Arduino/Genuino Uno”

    mesafe_sensoru_ve_olcum:1: error: #include expects “FILENAME” or

    #include <LiquidCrystal.h> //Load Liquid Crystal Library

    ^

    exit status 1
    #include expects “FILENAME” or

    This report would have more information with
    “Show verbose output during compilation”
    option enabled in File -> Preferences.

    Reply

  8. Hazal

    8 Aralık 2017 at 21:38

    Merhaba. Infrared kullanarak yapabilirmiyiz.

    Reply

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Bak Bakalım ?

Ucuz Zelio (Akıllı Röle) Kablosu Nasıl Yapılır ?

Daha önce ‘Zelio Akıllı Röleden’ bahsetmiştik, bu yazıda onu programlamak için kullanılan …