*256 Bit SSL Sertifikası * Full Mobil Uyumlu * Full SEO Uyumlu
İsterseniz Mobil Uygulama Seçeneğiyle
I2C LCD Ekranlı Saat Yapımı
I2C LCD ekranlı saat yapımı, Arduino gibi bir geliştirme kartı kullanarak basit ve eğlenceli bir projedir. Bu yazıda, bu projeyi adım adım nasıl yapacağınızı, ihtiyacınız olan malzemeleri, kodlama sürecini ve sık sorulan soruları detaylı olarak açıklayacağım.
Malzemeler
- Arduino (herhangi bir model kullanılabilir)
- I2C LCD ekran (16x2, 20x4 veya başka bir boyutta olabilir)
- DS1307 RTC modülü (Gerçek Zamanlı Saat Modülü)
- Jumper kabloları
- Breadboard
Aşamalar
1- Öncelikle, I2C LCD ekranınızı RTC modülüne bağlamanız gerekiyor. Bu bağlantı, herhangi bir I2C ekran bağlantısından farklı değildir. SDA ve SCL pinlerini ekranın SDA ve SCL pinleri ile bağlayın.
2- RTC modülüne güç kaynağı sağlamak için, 5V pinini Arduino'nun 5V pinine ve GND pinini Arduino'nun GND pinine bağlayın.
3- RTC modülü, SDA ve SCL hatlarını bağlamak için iki adet çıkış pimine sahiptir. Bu iki pimi, Arduino'nun SDA ve SCL pinlerine bağlayın.
4- LCD ekranınızda I2C arabirimini kullanmak için öncelikle gerekli kütüphaneleri indirmeniz gerekiyor. Arduino IDE arayüzüne gelin, Araçlar menüsünde Kütüphane Yöneticisi'ni seçin ve \"LiquidCrystal I2C\" adlı kütüphaneyi aratın. Kütüphaneyi indirin ve kurun.
5- Sonraki adım, RTC modülü için bir uygun kütüphane aramaktır. DS1307RTC adında bir kütüphane vardır. Bu kütüphaneyi de Arduino kütüphanesi yükleyicisi aracılığıyla indirin ve kurun.
6- Bir sonraki adım, RTC modülünü programlama kısmına başlamaktır. Kodlama aşaması için aşağıdaki kod bloğunu Arduino IDE arayüzünde kullanın:
#include
#include
#include
//Saat için iki değişken tanımlıyoruz
int saat = 0;
int dakika = 0;
//LCD ekrana yazdırmak için tanımlamış olduğumuz değişken
LiquidCrystal_I2C lcd(0x3F,16,2);
void setup() {
lcd.init(); // LCD ekranını başlat
lcd.backlight(); // Arka aydınlatmayı aç
setTime(18, 03,00, 12, 22, 19); // Saat, dakika ve saniyeyi ayarlayın.
}
void loop() {
tarih_ayarlama(); // Alarm ayarlamak için bir fonksiyon çağırın.
saat_ekrana_yaz(); // Saati LCD ekrana yazdırmak için bir fonksiyon çağırın.
}
void tarih_ayarlama() {
if (DS1307RTC::isDateTimeValid()) { // RTC'deki tarih ve saat bilgileri geçerli mi?
saat = hour(); // Saat değerini okuyun.
dakika = minute(); // Dakika değerini okuyun.
}
}
void saat_ekrana_yaz() {
lcd.setCursor(0, 0);
lcd.print(\"Saat: \");
if(saat<10)
lcd.print(\"0\");
lcd.print(saat);
lcd.print(\":\");
if(dakika<10)
lcd.print(\"0\");
lcd.print(dakika);
}
7- Bu kod bloğu, saat ve dakika değişkenlerini tanımlar ve saniye, gün vb. bilgileri düzenler. Void loop () fonksiyonunda, ilk önce tarih_ayarlama() fonksiyonunu çağırarak güncel saati ve dakikayı aldık. Daha sonra saat_ekrana_yaz() fonksiyonunu çağırarak LCD ekrana saat ve dakika bilgilerini yazdırdık.
8- RTC modülü üzerinde bir alarm fonksiyonu da var. Bu, herhangi bir olay için alarm kurmayı mümkün kılar. RTC modülü üzerindeki alarm, Arduino’ya göre çok daha güçlüdür ve belirli bir gelecekte bir olayın gerçekleşmesini sağlamak için programlanabilir. Kod bloğunu aşağıdaki gibi değiştirin:
#include
#include
#include
//Saat için iki değişken tanımlıyoruz
int saat = 0;
int dakika = 0;
//LCD ekrana yazdırmak için tanımlamış olduğumuz değişken
LiquidCrystal_I2C lcd(0x3F,16,2);
void setup() {
lcd.init(); // LCD ekranını başlat
lcd.backlight(); // Arka aydınlatmayı aç
setTime(18, 03,00, 12, 22, 19); // Saat, dakika ve saniyeyi ayarlayın.
RTC.setAlarm(ALM1_MATCH_HOURS, 18, 1, 1, 1); //Alarm ayarları
RTC.alarm(ALARM_1); //Alarmı etkinleştirmek için fonksiyon çağırma
}
void loop() {
tarih_ayarlama(); // Alarm ayarlamak için bir fonksiyon çağırın.
saat_ekrana_yaz(); // Saati LCD ekrana yazdırmak için bir fonksiyon çağırın.
}
void tarih_ayarlama() {
if (DS1307RTC::isDateTimeValid()) { // RTC'deki tarih ve saat bilgileri geçerli mi?
saat = hour(); // Saat değerini okuyun.
dakika = minute(); // Dakika değerini okuyun.
}
}
void saat_ekrana_yaz() {
lcd.setCursor(0, 0);
lcd.print(\"Saat: \");
if(saat<10)
lcd.print(\"0\");
lcd.print(saat);
lcd.print(\":\");
if(dakika<10)
lcd.print(\"0\");
lcd.print(dakika);
}
Sık Sorulan Sorular
S: Hangi RTC modülü kullanabilirim?
C: RTC modüllerinin birçok çeşidi vardır ve birçoğu DS1307 veya GNSS alıcılı modüllerdir. Bu modüllerden herhangi birini kullanabilirsiniz, ancak burada anlatılan örnekte DS1307 RTC modülü kullanılmıştır.
S: I2C LCD ekranının adresi nedir?
C: I2C LCD ekranının adresi 0x3F dir. Ancak, farklı bir adres konfigürasyonu ile çalışıyorsanız farklı bir adresi olabilir.
S: Neden LiquidCrystal_I2C kütüphanesi kullanıyorsunuz?
C: LiquidCrystal_I2C kütüphanesi, I2C arabirimli LCD ekranları kullanmak için özel olarak geliştirilmiş ve çok popüler bir kütüphanedir. I2C arabirimini, bağlantı sayısını azaltarak kontrol edebilirsiniz.
S: RTC modülü ile zamana göre bir alarm da kurabilir miyiz?
C: Evet. RTC modülü üzerinde bir alarm fonksiyonu bulunur. Bu alarm, gelecekte bir etkinlik için alarm kurmayı mümkün kılar. Bu özellik sayesinde, belirli bir zaman veya tarih için bir alarm kurabilirsiniz.
S: Projeyi farklı boyutlardaki LCD ekranları kullanarak nasıl özelleştirebilirim?
C: Projeyi farklı boyuttaki LCD ekranları kullanarak özelleştirmek için, kodu değiştirerek ekran kartının farklı boyutlarına uyacak şekilde ayarlayabilirsiniz. Ancak, ekran kartının farklı boyutlarına uyacak şekilde bağlantıları da değiştirmeniz gerekmektedir.
S: Projeyi nasıl daha güçlü hale getirebilirim?
C: Projeyi daha güçlü hale getirmek için, RTC modülü ile daha fazla işlev ekleyebilir veya projeye kullanımına uygun diğer sensörler veya modüller ekleyebilirsiniz. Örneğin, sıcaklık veya nem sensörü kullanarak proje daha ileri bir seviyeye taşınabilir.
I2C LCD ekranlı saat yapımı size yeni olanaklar sunan farklı bir projedir. Bu projeyi uygulamak, Arduino programlama ve elektronik konularında bilginizi artırabilir. Projeyi özelleştirebilirsiniz ve kendinize özgü, size özel bir proje oluşturabilirsiniz."
I2C LCD Ekranlı Saat Yapımı
I2C LCD ekranlı saat yapımı, Arduino gibi bir geliştirme kartı kullanarak basit ve eğlenceli bir projedir. Bu yazıda, bu projeyi adım adım nasıl yapacağınızı, ihtiyacınız olan malzemeleri, kodlama sürecini ve sık sorulan soruları detaylı olarak açıklayacağım.
Malzemeler
- Arduino (herhangi bir model kullanılabilir)
- I2C LCD ekran (16x2, 20x4 veya başka bir boyutta olabilir)
- DS1307 RTC modülü (Gerçek Zamanlı Saat Modülü)
- Jumper kabloları
- Breadboard
Aşamalar
1- Öncelikle, I2C LCD ekranınızı RTC modülüne bağlamanız gerekiyor. Bu bağlantı, herhangi bir I2C ekran bağlantısından farklı değildir. SDA ve SCL pinlerini ekranın SDA ve SCL pinleri ile bağlayın.
2- RTC modülüne güç kaynağı sağlamak için, 5V pinini Arduino'nun 5V pinine ve GND pinini Arduino'nun GND pinine bağlayın.
3- RTC modülü, SDA ve SCL hatlarını bağlamak için iki adet çıkış pimine sahiptir. Bu iki pimi, Arduino'nun SDA ve SCL pinlerine bağlayın.
4- LCD ekranınızda I2C arabirimini kullanmak için öncelikle gerekli kütüphaneleri indirmeniz gerekiyor. Arduino IDE arayüzüne gelin, Araçlar menüsünde Kütüphane Yöneticisi'ni seçin ve \"LiquidCrystal I2C\" adlı kütüphaneyi aratın. Kütüphaneyi indirin ve kurun.
5- Sonraki adım, RTC modülü için bir uygun kütüphane aramaktır. DS1307RTC adında bir kütüphane vardır. Bu kütüphaneyi de Arduino kütüphanesi yükleyicisi aracılığıyla indirin ve kurun.
6- Bir sonraki adım, RTC modülünü programlama kısmına başlamaktır. Kodlama aşaması için aşağıdaki kod bloğunu Arduino IDE arayüzünde kullanın:
#include
#include
#include
//Saat için iki değişken tanımlıyoruz
int saat = 0;
int dakika = 0;
//LCD ekrana yazdırmak için tanımlamış olduğumuz değişken
LiquidCrystal_I2C lcd(0x3F,16,2);
void setup() {
lcd.init(); // LCD ekranını başlat
lcd.backlight(); // Arka aydınlatmayı aç
setTime(18, 03,00, 12, 22, 19); // Saat, dakika ve saniyeyi ayarlayın.
}
void loop() {
tarih_ayarlama(); // Alarm ayarlamak için bir fonksiyon çağırın.
saat_ekrana_yaz(); // Saati LCD ekrana yazdırmak için bir fonksiyon çağırın.
}
void tarih_ayarlama() {
if (DS1307RTC::isDateTimeValid()) { // RTC'deki tarih ve saat bilgileri geçerli mi?
saat = hour(); // Saat değerini okuyun.
dakika = minute(); // Dakika değerini okuyun.
}
}
void saat_ekrana_yaz() {
lcd.setCursor(0, 0);
lcd.print(\"Saat: \");
if(saat<10)
lcd.print(\"0\");
lcd.print(saat);
lcd.print(\":\");
if(dakika<10)
lcd.print(\"0\");
lcd.print(dakika);
}
7- Bu kod bloğu, saat ve dakika değişkenlerini tanımlar ve saniye, gün vb. bilgileri düzenler. Void loop () fonksiyonunda, ilk önce tarih_ayarlama() fonksiyonunu çağırarak güncel saati ve dakikayı aldık. Daha sonra saat_ekrana_yaz() fonksiyonunu çağırarak LCD ekrana saat ve dakika bilgilerini yazdırdık.
8- RTC modülü üzerinde bir alarm fonksiyonu da var. Bu, herhangi bir olay için alarm kurmayı mümkün kılar. RTC modülü üzerindeki alarm, Arduino’ya göre çok daha güçlüdür ve belirli bir gelecekte bir olayın gerçekleşmesini sağlamak için programlanabilir. Kod bloğunu aşağıdaki gibi değiştirin:
#include
#include
#include
//Saat için iki değişken tanımlıyoruz
int saat = 0;
int dakika = 0;
//LCD ekrana yazdırmak için tanımlamış olduğumuz değişken
LiquidCrystal_I2C lcd(0x3F,16,2);
void setup() {
lcd.init(); // LCD ekranını başlat
lcd.backlight(); // Arka aydınlatmayı aç
setTime(18, 03,00, 12, 22, 19); // Saat, dakika ve saniyeyi ayarlayın.
RTC.setAlarm(ALM1_MATCH_HOURS, 18, 1, 1, 1); //Alarm ayarları
RTC.alarm(ALARM_1); //Alarmı etkinleştirmek için fonksiyon çağırma
}
void loop() {
tarih_ayarlama(); // Alarm ayarlamak için bir fonksiyon çağırın.
saat_ekrana_yaz(); // Saati LCD ekrana yazdırmak için bir fonksiyon çağırın.
}
void tarih_ayarlama() {
if (DS1307RTC::isDateTimeValid()) { // RTC'deki tarih ve saat bilgileri geçerli mi?
saat = hour(); // Saat değerini okuyun.
dakika = minute(); // Dakika değerini okuyun.
}
}
void saat_ekrana_yaz() {
lcd.setCursor(0, 0);
lcd.print(\"Saat: \");
if(saat<10)
lcd.print(\"0\");
lcd.print(saat);
lcd.print(\":\");
if(dakika<10)
lcd.print(\"0\");
lcd.print(dakika);
}
Sık Sorulan Sorular
S: Hangi RTC modülü kullanabilirim?
C: RTC modüllerinin birçok çeşidi vardır ve birçoğu DS1307 veya GNSS alıcılı modüllerdir. Bu modüllerden herhangi birini kullanabilirsiniz, ancak burada anlatılan örnekte DS1307 RTC modülü kullanılmıştır.
S: I2C LCD ekranının adresi nedir?
C: I2C LCD ekranının adresi 0x3F dir. Ancak, farklı bir adres konfigürasyonu ile çalışıyorsanız farklı bir adresi olabilir.
S: Neden LiquidCrystal_I2C kütüphanesi kullanıyorsunuz?
C: LiquidCrystal_I2C kütüphanesi, I2C arabirimli LCD ekranları kullanmak için özel olarak geliştirilmiş ve çok popüler bir kütüphanedir. I2C arabirimini, bağlantı sayısını azaltarak kontrol edebilirsiniz.
S: RTC modülü ile zamana göre bir alarm da kurabilir miyiz?
C: Evet. RTC modülü üzerinde bir alarm fonksiyonu bulunur. Bu alarm, gelecekte bir etkinlik için alarm kurmayı mümkün kılar. Bu özellik sayesinde, belirli bir zaman veya tarih için bir alarm kurabilirsiniz.
S: Projeyi farklı boyutlardaki LCD ekranları kullanarak nasıl özelleştirebilirim?
C: Projeyi farklı boyuttaki LCD ekranları kullanarak özelleştirmek için, kodu değiştirerek ekran kartının farklı boyutlarına uyacak şekilde ayarlayabilirsiniz. Ancak, ekran kartının farklı boyutlarına uyacak şekilde bağlantıları da değiştirmeniz gerekmektedir.
S: Projeyi nasıl daha güçlü hale getirebilirim?
C: Projeyi daha güçlü hale getirmek için, RTC modülü ile daha fazla işlev ekleyebilir veya projeye kullanımına uygun diğer sensörler veya modüller ekleyebilirsiniz. Örneğin, sıcaklık veya nem sensörü kullanarak proje daha ileri bir seviyeye taşınabilir.
I2C LCD ekranlı saat yapımı size yeni olanaklar sunan farklı bir projedir. Bu projeyi uygulamak, Arduino programlama ve elektronik konularında bilginizi artırabilir. Projeyi özelleştirebilirsiniz ve kendinize özgü, size özel bir proje oluşturabilirsiniz."
*256 Bit SSL Sertifikası * Full Mobil Uyumlu * Full SEO Uyumlu
İsterseniz Mobil Uygulama Seçeneğiyle