dominoFiber     domiRobot     Blog

 
Hoşgeldiniz Ziyaretçi. Lütfen giriş yapın veya kayıt olun.

Kullanıcı adınızı, şifrenizi ve aktif kalma süresini giriniz

Gönderen Konu: RTC I2C tarih saat güncelleme  (Okunma sayısı 328 defa)

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Mart 10, 2019, 11:36:11 ÖÖ
Çevrimdışı Hasan ERTURK
*****
İleti: 99
Profili Görüntüle 
 

İşlem Basamakları:
1. RTC bağlantısı yukarıdaki resimde görüldüğü gibi yapılır.
2. RTC kütüphanesi eklenir.
3. Aşağıdaki kodlamada bulunan 25. satırdaki tarih ve saat bilgisi güncellenerek kodlar yüklenir.
Kod: [Seç]
// Date and time functions using a DS1307 RTC connected via I2C and Wire lib

#include <Wire.h>
#include "RTClib.h"

RTC_DS1307 rtc;

void setup () {
  Serial.begin(9600);
#ifdef AVR
  Wire.begin();
#else
  Wire1.begin(); // Shield I2C pins connect to alt I2C bus on Arduino Due
#endif
  rtc.begin();

 // if (! rtc.isrunning()) {
    Serial.println("RTC is NOT running!");
    Serial.println((__DATE__, __TIME__));
    // following line sets the RTC to the date & time this sketch was compiled
   // rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
   rtc.adjust(DateTime(__DATE__, __TIME__)); //yes - I want it to adjust to compile time
    // This line sets the RTC with an explicit date & time, for example to set
    // January 21, 2014 at 3am you would call:
     rtc.adjust(DateTime(2019, 3, 10, 9, 54, 0));
// }
}

void loop () {
    DateTime now = rtc.now();
   
    Serial.print(now.year(), DEC);
    Serial.print('/');
    Serial.print(now.month(), DEC);
    Serial.print('/');
    Serial.print(now.day(), DEC);
    Serial.print(' ');
    Serial.print(now.hour(), DEC);
    Serial.print(':');
    Serial.print(now.minute(), DEC);
    Serial.print(':');
    Serial.print(now.second(), DEC);
    Serial.println();
   
    Serial.print(" since midnight 1/1/1970 = ");
    Serial.print(now.unixtime());
    Serial.print("s = ");
    Serial.print(now.unixtime() / 86400L);
    Serial.println("d");
   
    // calculate a date which is 7 days and 30 seconds into the future
    DateTime future (now.unixtime() + 7 * 86400L + 30);
   
    Serial.print(" now + 7d + 30s: ");
    Serial.print(future.year(), DEC);
    Serial.print('/');
    Serial.print(future.month(), DEC);
    Serial.print('/');
    Serial.print(future.day(), DEC);
    Serial.print(' ');
    Serial.print(future.hour(), DEC);
    Serial.print(':');
    Serial.print(future.minute(), DEC);
    Serial.print(':');
    Serial.print(future.second(), DEC);
    Serial.println();
   
    Serial.println();
    delay(3000);
}