Merhaba arkadaşlar ! Arduino dersleri serimizde proje yapmaya devam ediyoruz. Bu yazımızda sizlerle RTC saat modülünü kullanarak Arduino ile Dijital Saat projesi yapacağız. Bu projeyi yaparken LCD de kullanacağız !
Daha önceki yazımızda PIR sensörünün kullanımından bahsetmiştik >>> Arduino ile Hırsız Alarmı Yapalım !
RTC Arduino Saat Modülü Nedir? Nasıl Çalışır? DS1302 Modeli
RTC’nin açılımı Real Time Clock yani Gerçek Zamanlı Saat’tir. RTC modülünün içerisinde gerçek zamanlı saat devrelerinde bulunan DS1302 entegresi bulunur. Bu modül sayesinde saat bilgisini anlık ve sürekli olarak okuyabilmek mümkündür. RTC modülü yıl, ay, gün, saat, dakika ve saniye bilgilerini sürekli olarak içerisinde barındırmaktadır.
Haydi, Arduino LCD Dijital Saat Yapımına Başlayalım
Gerekli Malzemeler:
- Arduino UNO
- Breadboard
- DS1302 RTC Modül
- 2×16 LCD Ekran
- 10K Potansiyometre
- 40 Pin Ayrılabilen Erkek-Erkek Jumper Kablo
Arduino Dijital Saat Devresi
RTC Modülü ile Dijital Saat Arduino Kodu
Hadi öyleyse RTC modülü ve LCD kullanacağımız Dijital Saat uygulamamız için gereken Arduino kodunu yazmaya başlayalım. Yazılım işlemini yapmadan önce gerekli kütüphaneyi buradan indirebilirsiniz.
#include <LiquidCrystal.h> //LCD kütüphanemizi başlatıyoruz. #include <RealTimeClockDS1307.h> //RTC kütüphanemizi ekliyoruz. int CLK_PIN = 6; //6. pini clock pini olarak tanımladık int DAT_PIN = 7; //7. pini data pini olarak tanımladık int RST_PIN = 8; //8. pini reset pini olarak tanımladık. virtuabotixRTC myRTC(CLK_PIN, DAT_PIN, RST_PIN); // Kütüphanemizi pinlere atıyoruz.4 int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2; //LCD'nin pin değişkenlerini tanımlıyoruz. LiquidCrystal lcd(rs, en, d4, d5, d6, d7); //LCD'nin pin bağlantılarını ayarlıyoruz. void setup() { lcd.begin(16, 2); //LCD ekranımızın en-boy oranını ayarlıyoruz. } void loop() { myRTC.updateTime(); //RTC'den zamanı okuyoruz lcd.clear(); //Başlamadan önce ekranı temizliyoruz. lcd.setCursor(0, 0); //Ekranın ilk satır ilk sütunundan yazmaya başlıyoruz. lcd.print(myRTC.dayofmonth); //Günü ekrana bastırıyoruz. lcd.print("/"); lcd.print(myRTC.month); //Ayı ekrana bastırıyoruz. lcd.print("/"); lcd.print(myRTC.year); //Yılı ekrana bastırıyoruz lcd.setCursor(0, 1); //LCD'nin 2. satır 1. sütunundan yazmaya başlıyoruz. lcd.print(myRTC.hours); //Saati ekrana bastırıyoruz. lcd.print(":"); lcd.print(myRTC.minutes); //Dakikayi ekrana bastırıyoruz. lcd.print(":"); lcd.print(myRTC.seconds); //Saniyeyi ekrana bastırıyoruz. delay(1000); //1 saniye bekleme. }
Merhabalar gerekli kütüphaneyi buradan indirebilirsiniz yazmışsınız fakat herhangi bir link yok,aurdinio kütüphanesinden bulduğum diğer 2 adet kütüphanede programda çalışmıyor.Programı buradan direk kopyalayıp yapıştırmama rağmen eklediğim her iki kütüphane programla uyuşmuyor,lütfen mail adresime uygun kütüphaneyi gönderebilirmisiniz.
Teşekkürler..
ben de de olmuyor
saat modülünü kullanıyorum sadece ancak yılın 2000 olması dışında tüm değerler 0 gösteriyor sorun ne olabilir acaba
pinler yanlış
Aynı sorun bende de olmuştu.Videoda önce bir RTC yenileme kodu yazıyor.Sonra ana kodu yazıyor.RTC yenileme koduna şu linkten ulaşabilirsin:https://github.com/Robotistan/YouTube-DIY-Projeler/blob/master/Arduino%20Dersleri/Ders-16%20Dijital%20Saat%20Yapimi%20-RTC%20Modulu/Saat_Ayar.ino
Ama öncelikle o koddaki myRTC.setDS1302Time(10, 10, 14, 4, 13, 9, 2018); satırını tarihe göre değiştirmelisin.Gün,ay,yıl sıralamasını videodan bulabilirsin.Ondan sonra Robotistan Blog sitesindeki kodu upload edebilirsin.
bu ne la ç harfleri ü harfleri var
Grekli kütüphaneyi nerden bulablirim ?
arkadaş bu robotistan program tanıtımlarında karşılaştığım kaçıncı hata, üstelik te hep aynı hata yapılıyor şu include yazıldıktan sonra bi kütüphane ismi yazmanız gerekir acaba sitede bi editör bilmediğimiz bi probleminden dolayı projeleri tek tek gezip include dosyasından sonraki kütüphane isimlerini mi siliyor yoksa sitenizdeki bi kod hatasından dolayı kütüphane isimleri mi kayboluyor bu kaçıncı ya, insanlar o kadar merak edip indiriyorlar bu kodları sonra “error”….
bu bi hata değil senin kendi kütüphaneni eklemeni istiyor sende farklı bir kütüphane varsa onu kullan bizimkini arama diye yspıyolar.
Yazıklar olsun yazdığım 1 yoruma da cevap gelse şaşardım zaten çok teşekkür ederim baya yardım ettiniz
kütüphane isimlerini yazmamışsınız çalışmıyor bu program
hayır çalışıyor yalancı
Sayın İlge İpek saat projesinde takvim kısmının kütüphanesini nasıl değiştirebiliriz.Örnek 15/08/2018 tarihi 15.gün 08. ay (Ağustos) ve yıl ise 2018 olarak ekrana yazdırıyor.benim istediğim 08.ay değil de direk Agustos veya Eylül diye yazı yazdırsın bunun için kütüphaneyi nasıl güncelleyebiliriz..
Kütüphaneyi güncellemeye gerek yok koddaki tarihi değiştirmek yeterli olacaktır.
Sanırım robotistan Arduino e-kitabından gerekli kütüphaneyi bulabilirsiniz. Kolay gelsin.
Rtclib kütüphanesi ile saati yaptım. Herşey çok güzel çalışıyor derken, besleme voltajını kesip 10 dakika sonra tekrar besleme verdiğimde saatin 10 dakika boyunca hiç ilerlemediğini gördüm. Yani her elektrik kesildiğinde çalışmayacaksa her seferinde pc ile saat ayarı yapmak mı gerekiyor
Aynı sıkıntı bende de mevcut. bir kaç çeşit sıfır pil ilede denedim sonuç aynı. NAsıl çözebiliriz.
Modüle pili taktıysanız ve bu sorunu alıyorsanız ya data bacağını arduinoya bağlarken yada 3.3v bacağını arduinoya bağlarken ya 1k yada 10k lık bir direnç yardımıyla ekleyin. Bildiğim çözüm yöntemleri bunlar.
gerekli kütüphane buradan indiremiyoruz?
RTC kütüphanesi: https://github.com/chrisfryer78/ArduinoRTClibrary
LCD kütüphanesi: https://github.com/arduino-libraries/LiquidCrystal
Bu projedeki saati encoder ile ayarlanabilecek şekildede yaparmısınız
kütüphane yok
RTC kütüphanesi: https://github.com/chrisfryer78/ArduinoRTClibrary
LCD kütüphanesi: https://github.com/arduino-libraries/LiquidCrystal
Herşeyi dediğiniz gibi yapmama rağmen lcd ekranıma yazı gelmiyor ne yapmam lazım ?
Potansiyometre ile kontrast ayarı yapmayı ve donanımsal bağlantılarınızı tekrardan kontrol etmeyi deneyiniz.
yine de olmadı
iyi akşamlar tiny rtc i2c modülü var onun bağlantısı ve kod kısmı hakkında bilgi verebilir misiniz ?
I2C ile alakalı çokça fazla kütüphane var. Örnek kodları yükleyip SDA ve SCL pinlerini sırayla A4 ve A5 pinlerine bağlamalısınız. I2C adresi, kodlar ve bağlantılar doğruysa sorunsuz çalışacaktır.
Merhaba, Gerekli kütüphaneyi indirip kurulumu yaptım fakat 1/1/2000 yazıyor bunu nasıl düzeltebilirim?
Yardımcı olursnaız çok sevinirim..
“myRTC.setDS1302Time(00, 59, 23, 6, 10, 1, 2014);” satırındaki kod ile güncel bilgileri yazmalısınız.
bana yardım edebilirmisiniz acaba
tum herseyi yaptım fakat ekranda saat hiç degismiyor
saniye hep aynı
RTC modülünüzün bağlantılarını ve pilini kontrol ediniz.
ben de her şey doğru ama saniye 59 dan sonra 09,19,29,39,49,59,69,79,89,99 oluyor sonra 10 dan itibaren normal şekilde yazıyor ve yine aynısı oluyor.
Bu devreyi potansiyometre kullanmadan yapmam mümkün mü?
RTC modülünü pilsiz kullandım lcd ekrana hiçbir şekilde yazı vs gelmiyor. Sizce pildenmi yoksa lcd ekrandanmı kaynaklı bir hata vardır.
LCD ekrandan kaynaklı olabilir fakat pil kullanmanız da gerekiyor.
:))) yoruumlar etkileyici.. Robotistanın bin dolarlar eden bu bilgiyi yine T.C. insanı mantığı ile fikir vererek paylaşmasını bile trolleyen yurdum insanı.. adam diyor ki bu tip yapılıyor. Kopya çek ve yap demiyor. Senin kullandığın ekipman ile farklılık göserebilir. Bu çok doğal. Yorumlar sonucunda ben admin olsam bu sayfayı kapatırdım.
Hanımlar Beyler biraz daha sakin olmalıyız. Adamların tam çalışan müşteri memnuyieti gibi bir misyonu yok. Gördüğüm en bedavva ve bilgi dolu site. Sakin….
Merhaba, kusura bakmayın ısmarlama gibi olacak ama 7 segment led display ile alarmlı saat devresi yapmak var mı planlarınızda? TM1637 ile de olabilir. Ayarlar için buton yerine Rotary Encoder kullanarak mesela 🙂