21 Temmuz 2015 Salı

Arduino’da Zaman Kavramı ve Time Kütüphanesi






Time kütüphanesi Arduino’ya ekstra donanım ile ya da ekstra donanım olmadan zaman özelliği ekliyor. Zamanı saniye, dakika, saat, gün, ay ve yıl olarak alabilmek mümkün. Time kütüphanesini burdan indirebilirsiniz.

Time kütüphanesi çeşitli örneklerle birlikte geliyor. Benzer kodlarla Arduino'da aşadıkaki örneklerle zaman ve tarih kullanabilirsiniz.

  •  Gerçek Zamanlı Saat (RTC)
  •  İnternet NTP Zaman Servisi
  •  Küresel Konumlama Sistemi Zaman Bilgisi (GPS)
  •  DCF77 Radyo Sinyali ( bu örnek için tıklayın )
  •  Bilgisayardan Seri Olarak Alınan Zaman bilgisi
DCF77 Radyo Sinyali Modülü
Bu modül sayesinde saat bilgisi almak mümkün.

       Kütüphane Fonksiyonları:

 hour();                            // Saat  (0-23)
 minute();                        // Dakika (0-59)
 second();                        // Saniye (0-59)
 day();                             // Gün (1-31)
 weekday();                    // Haftanın günü( Pazar haftanın 1’inci günü )
 month();                        // Ay (1-12)
 year();                           // Yıl ( 2015 gibi )
 hourFormat12();           // Saatler 12 saat formatına döner   isAM();                                                         // Eğer AM ise true döndürür
 isPM();                           // Eğer PM ise true döndürür
 now();                            // 1 Haziran 1970’den şuana kadar geçen süreyi                                                         saniye cinsinden verir
  





Time kütüphanesi fazladan seçenek olarak zaman ve tarih parametrelerine sahiptir. Aslında bu parametreler anlık olarak dakika saniye gibi verilerin alınırken değişmesini önlemek için var. 

Aşağıdaki fonksiyonları kullanmak sorunu çözecektir:



  time_t t = now();          // zamanı t değişkenine atar
  hour(t);                          // t zamanı için saat bilgisini döndürür
  second(t);                      // t zamanı için saniye bilgisini döndürür
  minute(t);                      // t zamanı için dakika bilgisini döndürür  
  day(t);                           // t zamanı için gün bilgisini döndürür
  weekday(t);                  // t zamanı için haftanın günü bilgisini döndürür
  month(t);                       // t zamanı için ay bilgisini döndürür
  year(t);                          // t zamanı için yıl bilgisini döndürür






Gün ve ay bilgilerini yazdırmak için string fonksiyonları:

monthStr()
monthShortStr()
dayStr()
dayShortStr()

Bu fonksiyonlar için bazı parametreler kullanmak gerekiyor dikat edin, month() gibi mesela. Yani monthStr(month()) ya da dayStr(weekday()) şeklinde yazarsanız çalışır.








Zaman servislerini ayarlamak için kullanılan fonksiyonlar:

  •  adjustTime(adjustment);                 // Ayar değeri girerek ayarlama
  •  setTime(t);                                        // Zamanı sistem zamanına ayarlar
  •  setTime(hr,min,sec,day,month,yr); // Manuel ayarlamak için yöntem
  •  timeStatus();                                   // Zaman ayarlı mı değil mi, bir takım                                                                           dönüşler yapar
                 * timeNotSet           // Zaman hiç ayarlanmadı,
                                                  //  Saat 1 Haziran 1970’te
                 * timeNeedsSync    // Zaman ayarlı fakat senkronizasyon                                                                          gerçekleşmedi
                  * timeSet                 // Zaman ayarlandı ve senkronize oldu








Time kütüphanesi bazı örnekler:
  
  •  “TimeSerial” harici donanım olmadan saat çalıştırma örneği
  •  “TimeRTC” DS1307 ya da DS3231 RTC modülleri için örnek
  •  “TimeNTP”  Arduino ethernet modülü için örnek
  • “TimeGPS” GPS modülü için örnek
  • DCF77” radyo sinyali ile ilgili örnek için tıklayın


Arduino IDE Time kütüphanesi eklemek / güncellemek:


Arduino IDE'yi açıyoruz


Kütüphaneleri Yönet'e tıklıyoruz


Time kütüphanesini buluyoruz
Eskiyse güncelliyoruz
Yoksa yüklüyoruz



Örneklerden Time'ın üzerine geliyoruz

İstediğimiz örneği seçip çalışmaya başlıyoruz


 Çeşitli gerçek zamanlı saat modülleri:

DS3231

DS1307

DS1302
Faydalanılan kaynaklar : 
http://playground.arduino.cc/
www.arduino.cc

Yazar: Korhan TÜRKOĞLU




Hiç yorum yok :

Yorum Gönder