Kod Ara

Ders 20/31: Ultrasonik mesafenin LCD1602 üzerinde gösterilmesi

Ders 20/31: Ultrasonik mesafenin LCD1602 üzerinde gösterilmesi

Bu proje, HC-SR04 ultrasonik mesafe sensörünü I2C destekli LCD1602 ekranla birleştirerek gerçek zamanlı bir mesafe ölçüm sistemi oluşturmayı gösterir. Bu kılavuzun sonunda, bir nesneye olan mesafeyi sürekli olarak santimetre cinsinden ölçüp görüntüleyen çalışan bir cihaza sahip olacaksınız. Bu, sensör girişini görsel çıkışla birleştirdiği için Arduino elektroniğinde temel bir beceridir.

Sunfounder 20-LCD1602-ultrasonic

Bu pratik kurulum, aşağıdakiler dahil çeşitli gerçek dünya uygulamalarında kullanılabilir:

  • Bir duvara veya başka bir araca olan mesafeyi ölçmenize yardımcı olan akıllı bir park asistanı oluşturma.
  • Üstten yüzeye olan mesafeyi ölçerek bir tank için basit bir sıvı seviye monitörü yapma.
  • Bir nesne yaklaştığında açılan otomatik bir el dezenfektanı dağıtıcısı veya temassız bir çöp kutusu geliştirme.
  • Belirli bir bölgeye biri girdiğinde tetiklenen temel bir güvenlik alarmı kurma.

Donanım ve Bileşenler

Bu projeyi oluşturmak için aşağıdaki bileşenlere ihtiyacınız olacak:

  • Arduino kartı (örn. Uno)
  • I2C arayüz modüllü LCD1602 ekran
  • HC-SR04 Ultrasonik Mesafe Sensörü
  • Jumper kablolar
  • Breadboard (isteğe bağlı, daha kolay bağlantılar için)

LCD1602 ve I2C'yi Anlama

LCD1602, iki satırda satır başına 16 karakter gösterebilen popüler bir ekrandır. Arkasındaki "I2C" modülü önemli bir avantajdır çünkü ekranı kontrol etmek için gereken pin sayısını 6 veya daha fazladan yalnızca 2 iletişim pinine (SDA ve SCL) ve 2 güç pinine (VCC ve GND) düşürür. Bu basitleştirme, kablolamayı çok daha temiz hale getirir ve Arduino'nuzdaki değerli dijital pinleri bu projede kullanılan ultrasonik sensör gibi diğer sensörler için serbest bırakır. (videoda 01:30'da)

I2C modülü ayrıca ekranın kontrastını ayarlamak için küçük bir potansiyometre içerir. Ekranı güçlendirirseniz ve hiçbir şey görmezseniz, metin görünene kadar bu vidayı çevirmeyi deneyin. (videoda 02:47'de)

Bağlantı Kılavuzu

LCD1602_wiring_ultrasonic_bb

Bileşenleri bağlamak basittir. LCD'nin I2C modülünde Arduino'ya bağlanması gereken dört pin vardır. Ultrasonik sensörün de dört pini vardır.

Bağlantıların bir dökümü aşağıda verilmiştir:

LCD1602 I2C Modülü Arduino'ya:

  • GND Arduino GND pinine
  • VCC Arduino 5V pinine
  • SDA Arduino A4 pinine
  • SCL Arduino A5 pinine

HC-SR04 Ultrasonik Sensör Arduino'ya:

  • VCC Arduino 5V pinine
  • Trig Arduino dijital 12 pinine
  • Echo Arduino dijital 11 pinine
  • GND Arduino GND pinine

Bu projenin bağlantı şeması videoda referans olarak verilmiştir.

Gerekli Kütüphanelerin Kurulması

Bu proje iki önemli kütüphaneye dayanır. İlki olan LiquidCrystal_I2C, LCD'yi kontrol etmek için gereklidir ve Arduino IDE ile varsayılan olarak gelmez. Videoda açıklamasında verilen bağlantıdan veya Robojax web sitesinden indirebilirsiniz. (videoda 06:16'da)

İkinci kütüphane olan NewPing, ultrasonik sensörle arayüz oluşturmak için kullanılır. Bir ping gönderme ve yankı süresini okuma işlemini basitleştirir. Her iki kütüphane de Arduino IDE'nin Kütüphane Yöneticisi'nden Sketch -> Include Library -> Manage Libraries yolunu izleyerek ve adlarını arayarak kurulabilir.

Kod Açıklaması

Bu taslak, LCD'nin ve ultrasonik sensörün işlevselliğini birleştirir. Kod, özel kurulumunuz için kolayca yapılandırılabilir şekilde yapılandırılmıştır.

Kodun en üstünde, ayarlamanız gerekebilecek temel değişkenleri bulacaksınız:

// 16 karakter ve 2 satırlık ekran için LCD adresini 0x27 olarak ayarlayın
LiquidCrystal_I2C lcd(0x27, displayChars, displayRows);

#define TRIGGER_PIN  12  // Ultrasonik sensördeki tetik pinine bağlı Arduino pini.
#define ECHO_PIN     11  // Ultrasonik sensördeki yankı pinine bağlı Arduino pini.
#define MAX_DISTANCE 190 // Ping atmak istediğimiz maksimum mesafe (santimetre cinsinden).
  • LCD Adresi (0x27): Bu, LCD modülünüzün I2C adresidir. Çoğu modül 0x27 kullanır, ancak bazıları 0x3F kullanabilir. Ekranınız hiçbir şey göstermiyorsa, doğru adresi bulmak ve bu değeri güncellemek için bir I2C tarayıcı taslağı çalıştırmanız gerekebilir. (videoda 08:11'de)
  • TRIGGER_PIN ve ECHO_PIN: Bunlar, ultrasonik sensörün Trig ve Echo pinlerine bağlı Arduino dijital pinlerini tanımlar. Farklı pinler kullanırsanız, bu tanımları değiştirin.
  • MAX_DISTANCE: Bu, sensörün ölçeceği maksimum mesafeyi santimetre cinsinden ayarlar. HC-SR04 400-500cm'ye kadar ölçebilir, ancak daha düşük bir değer ayarlamak, özellikle daha kısa mesafeler için okumaların doğruluğunu ve güvenilirliğini artırabilir.

loop() fonksiyonunda kod aşağıdaki adımları gerçekleştirir:

  1. sonar.ping_cm() fonksiyonunu kullanarak mesafeyi ölçer ve distance değişkeninde saklar.
  2. LCD'yi temizler ve ilk satıra "Robojax.com" metnini yazdırır.
  3. Ardından imleci ikinci satıra ayarlar ve "Distance: " yazdırır.
  4. Son olarak, imleci ikinci satırda 10. konuma taşıyarak ölçülen distance değerini ve ardından "cm" yazdırır.

Döngünün sonundaki delay(200), sensörün ne sıklıkla yeni bir ölçüm alıp ekranı güncelleyeceğini kontrol eder.

Kod Gösterimi

Kod Arduino'nuza yüklendikten sonra, LCD aydınlanacak ve mesafeyi göstermeye başlayacaktır. Elinizi veya bir nesneyi ultrasonik sensöre yaklaştırıp uzaklaştırarak kurulumu test edebilirsiniz. Ekrandaki sayı, mesafeyi santimetre cinsinden gerçek zamanlı olarak güncellenmelidir. (videoda 38:07'de)

Bu videodan ilgili projeler

Bölümler

  • [00:00] LCD1602'ye Giriş ve Proje Genel Bakışı
  • [01:30] LCD1602 Donanımı ve I2C Modülü Açıklaması
  • [03:14] LCD Pin Yapısı ve I2C Adres Yapılandırması
  • [05:28] LCD1602 için Bağlantı Şeması
  • [06:16] Gerekli LCD Kütüphanesinin Kurulumu
  • [07:24] LCD'ye Metin Yazdırmak için Temel Kod
  • [08:11] LCD'nizin I2C Adresini Bulma
  • [11:10] LCD Örnekleri: Yanıp Sönen İmleç ve Özel Karakterler
  • [18:51] LCD Örneği: Seri Görüntüleme ve Kayan Metin
  • [24:36] LCD'de DHT11 Sıcaklık ve Nem Gösterimi
  • [33:00] LCD'de Potansiyometreden Voltaj Gösterimi
  • [35:56] Ultrasonik Sensör Kodunu LCD ile Birleştirme
  • [38:07] Ultrasonik Mesafe Gösteriminin Tanıtımı

Görseller

Sunfounder car assembled
Sunfounder car assembled
Sunfounder 20-LCD1602-ultrasonic
Sunfounder 20-LCD1602-ultrasonic
LCD1602_wiring_ultrasonic_bb
LCD1602_wiring_ultrasonic_bb
921-Lesson 20/31: Displaying distance from ultrasonic sensor on LCD1602
Dil: C++
This code has not been parsed yet. Please return to the admin panel to parse it.

Kaynaklar ve referanslar

Dosyalar📁

Arduino Kütüphaneleri (zip)

Kullanım Kılavuzu