Arduino, DS3231 ve röle modülü kullanarak babama paydos zili yapmıştım. Paydos vakti gelince zilin çalması gerekiyor ve öyle de oluyor. Bu aşamada bir sıkıntı yok zaten. Sorun saatin zamanla sapması. Yani ben saati ayarlayıp Arduino'ya kodu yükledikten 1 - 2 ay sonra saat olması gerekenden geri kalmaya başlıyor. Bu yüzden 1 - 2 ayda bir Arduino'yu ordan alıp tekrar saati doğru yazarak kodu yüklemem gerekiyor. Saatin üstündeki pilde herhangi bir sıkıntı yok. Bu neden olabilir? Daha iyi bir RTC modülü öneriniz var mı? Bu sorunu nasıl çözebilirim? Son düzenleyen: Moderatör: 31 Ağustos 2021

Ek olarak kodda sorun olma ihtimaline karşı başka bir hazır kod ile test edebilirsin.

Aynı modülü ben de kullandım sorun olmuyor. Yazdığın kodu ve devre şemasını gönderebilir misin? Ayrıca bahsettiğin sorun pilden kaynaklı gibi düzgün çalıştığından emin misin?

Kodun yaptığı iş sadece saati okuyup ona göre işlem yapmak, koddan kaynaklı olarak saatin sapma yapacağı benim aklıma yatmıyor. Aynı modülden bir tane daha alayım bakalım soruna çare olacak mı.

Pilin düzgün çalıştığına eminim. Sorun pildendir diye pili de birkaç defa değiştirdim. Pilin voltajını ölçtüğümde ise herhangi bir sıkıntı olmadığını görüyorum. #include <DS3231. h> int Relay = 4; DS3231 rtc ; Time t; const int sabahHour = 8; const int sabahMin = 03; const int sabahSec = 00; const int sabahKahvaltiHour = 9; const int sabahKahvaltiMin = 30; const int sabahKahvaltiSec = 00; const int sabahKahvaltiBitisHour = 9; const int sabahKahvaltiBitisMin = 45; const int sabahKahvaltiBitisSec = 00; const int oglenArasiHour = 13; const int oglenArasiMin = 00; const int oglenArasiSec = 00; const int oglenArasiBitisHour = 14; const int oglenArasiBitisMin = 00; const int oglenArasiBitisSec = 00; const int ikindiArasiHour = 16; const int ikindiArasiMin = 00; const int ikindiArasiSec = 00; const int ikindiArasiBitisHour = 16; const int ikindiArasiBitisMin = 15; const int ikindiArasiBitisSec = 00; const int aksamCikisHour = 19; const int aksamCikisMin = 33; const int aksamCikisSec = 00; void setup void loop { t = rtc. getTime ; Serial. print ; Serial. print("hour , "); Serial. print ; Serial. print("minute "); Serial. print ; Serial. print("second "); Serial. println ; delay(1000); if else if else if else if else if else if else if else if else } Devre şeması yok elimde şu an maalesef, zaten bildiğiniz klasik bağlantılar yani.

Dediğim gibi sorun kod kaynaklı durmuyor ama emin olmak için yapabilirsiniz. Onun dışında modül ya da Arduino kartı sebep oluyor olabilir.

Belki RTC de ki kristal de sorun olabilir DS1302 kullanıyorum ben hem ucuz hem basit.