Bu yazıda, Arduino ile gerçek zamanlı saat (RTC) modülünü ve 16×2 karakter LCD ekranı I2C modülü kullanarak tarih ve saati ekranda nasıl görüntüleyeceğinizi inceleyeceğiz.
Gerekli Malzemeler:
- Arduino Uno (veya benzeri bir Arduino kartı)
- RTC modülü (örneğin, DS3231)
- 16×2 karakter LCD ekran (HD44780 uyumlu)
- I2C LCD adaptör modülü (örneğin, PCF8574)
- Breadboard
- Jumper kablolar
Devre Kurulumu:
RTC Modülü Bağlantıları:
Arduino Pinleri | RTC Modülü Pinleri | İşlev |
5V | VCC | Güç Kaynağı (5V) |
GND | GND | Toprak Bağlantısı |
A4 | SDA | I2C Veri Hattı |
A5 | SCL | I2C Saat Hattı |
LCD Ekran ve I2C Modülü Bağlantısı:
- I2C modülünü LCD ekranın arkasındaki pinlere takın. Pinler genellikle renk kodlu veya etiketlidir.
I2C Modülü Bağlantıları
Arduino Pinleri | I2C Modülü Pinleri | İşlev |
5V | VCC | Güç Kaynağı (5V) |
GND | GND | Toprak Bağlantısı |
A4 | SDA | I2C Veri Hattı |
A5 | SCL | I2C Saat Hattı |
Kodlama:
- Kütüphane Kurulumu:
- Arduino IDE’sinde “Araçlar” > “Kütüphane Yöneticisi” yolunu izleyin.
- “RTClib” ve “LiquidCrystal_I2C” kütüphanelerini yükleyin.
- Kod Yazma:
#include <Wire.h> // I2C iletişimi için gerekli #include <RTClib.h> // RTC modülü için gerekli #include <LiquidCrystal_I2C.h> // I2C LCD ekran için gerekli RTC_DS3231 rtc; LiquidCrystal_I2C lcd(0x27, 16, 2); // I2C LCD adresini ve boyutlarını ayarlayın void setup () { Serial.begin(9600); lcd.init(); lcd.backlight(); if (! rtc.begin()) { Serial.println("RTC bulunamadı!"); while (1); } // İlk zaman ayarını yapın (opsiyonel) // rtc.adjust(DateTime(F(__DATE__), F(__TIME__))); } void loop () { DateTime now = rtc.now(); lcd.setCursor(0, 0); lcd.print(now.year(), DEC); lcd.print('/'); lcd.print(now.month(), DEC); lcd.print('/'); lcd.print(now.day(), DEC); lcd.setCursor(0, 1); lcd.print(now.hour(), DEC); lcd.print(':'); lcd.print(now.minute(), DEC); lcd.print(':'); lcd.print(now.second(), DEC); delay(1000); }
Kod Açıklaması:
- Kütüphaneler: RTClib ve LiquidCrystal_I2C kütüphaneleri dahil edilir.
- RTC Nesnesi Oluşturma: RTC_DS3231 sınıfından rtc adında bir nesne oluşturulur.
- LCD Nesnesi Oluşturma: LiquidCrystal_I2C sınıfından lcd adında bir nesne oluşturulur ve I2C adresi ile LCD boyutları belirtilir.
- setup() Fonksiyonu:
- Seri iletişim başlatılır.
- LCD ekran başlatılır ve arka ışığı açılır.
- rtc.begin() fonksiyonu ile RTC modülü başlatılır. Eğer modül bulunmazsa, bir hata mesajı yazdırılır ve program durdurulur.
- rtc.adjust() fonksiyonu ile RTC modülünün zamanını ayarlayabilirsiniz (isteğe bağlı).
- loop() Fonksiyonu:
- rtc.now() fonksiyonu ile mevcut tarih ve saat bilgisi alınır.
- lcd.setCursor() fonksiyonu ile imleç konumu ayarlanır.
- lcd.print() fonksiyonu ile tarih ve saat bilgileri LCD ekrana yazdırılır.
- 1 saniye (1000 milisaniye) beklenir.
Geliştirmeler:
- Tarih ve saat formatını özelleştirin.
- Sıcaklık gibi ek sensör verilerini LCD ekranda görüntüleyin.
- Alarm veya zamanlayıcı gibi özellikler ekleyin.
- LCD ekranın kontrastını ayarlamak için potansiyometre kullanın.
Notlar:
- RTC modülünüzün pilinin takılı olduğundan emin olun. Aksi takdirde, Arduino’ya güç verilmediğinde zaman kaybolacaktır.
- I2C LCD modülünüzün adresini doğru şekilde ayarlayın. Bu bilgi genellikle modülün veri sayfasında bulunabilir.
- RTC ve LCD kütüphanelerinin kullanımına dair daha fazla bilgi edinmek için kütüphane dokümantasyonlarını inceleyebilirsiniz.
Özet:
RTC modülü ve LCD ekran kullanarak Arduino projelerinize gerçek zamanlı saat bilgisi ekleyebilirsiniz. Bu, zamanlanmış olaylar, veri kaydı ve kullanıcı arayüzü gibi birçok uygulama için kullanışlı bir özelliktir.
Yorumlar