Zamanı Bilmek

“What time is it?” sorusu ile “What is the time?” sorusuna verilecek cevaplar hayli farklı olsa gerek 😉

Her gün kullandığımız bir kelime Zaman. Ama 2 kelimelik bir soru bizi derin düşüncelere gark edebilir.

Zaman nedir?


Görsel
Evveliyat: #1, #2, #3#4#5#6#7, #8, #9

Cevabı size bırakıp, başka bir soru daha sorayım.

Zamanı nasıl ölçeriz?

Günümüzde 1 Saniye’nin yaklaşık tanımı şöyle: Sezyum atomun 9.192.631.770 defa titreşimi için geçen süre.

? Neredeyse komik bir tanımlama. Ancak Sezyum hayli karalı olduğu için zamanı, 100 milyon yılda 1 saniye sapacak hassasiyette ölçebilir. Bu da geçen yazıda bahsi geçen senkronizasyon sorunlarını minimize etmek demek.

Bununla birlikte, daha yakın zamanda geliştirilen başka atom saatleri de var. Örneğin:

.. stronsiyum atom saati o kadar hassastır ki, Büyük Patlama’dan beri (yaklaşık 14 milyar yıldan beri) çalışıyor olsaydı bugün zamanı 1 saniyeden daha az bir hata ile gösteriyor olurdu.

..

genel görelilik kuramının en önemli sonuçlarından biri, zamanın akış hızının kütleçekiminden etkilenmesidir. Dolayısıyla yeryüzünden farklı yüksekliklerdeki saatler farklı hızlarla çalışır. Dünya gibi küçük gezegenlerin etraflarındaki zayıf kütleçekim alanlarında bu etkiyi sıradan saatlerle ölçmek çok zordur. Ancak en son geliştirilen stronsiyum atom saatlerinin yüksekliğini sadece 2 santimetre değiştirerek zamanın akış hızında meydana gelen değişiklikleri gözlemlemek mümkün.

http://bilimgenc.tubitak.gov.tr/makale/atom-saatleri


Bizim AHMT örneğinde bu kadar hassas ölçümlere gerek yok ancak, Elektrikler kesilse bile Zaman Bilgisi’ni hafızasında tutacak, “Saat kaç? Bu günün tarihi ne?” gibi sorulara yanıt verecek bir modül kullanıyoruz.

Neden?

Hatırlarsanız, AHMT‘i sıcaklığa ve harekete duyarlı hale getirmiştik. Verdiğimiz değerlere göre oda sıcaklığını ayarlamak için kombi() fonksiyonu yazmıştık.

Bu, oda sıcaklığını diyelim 22 derecede tutmak için kombiyi çalıştırıp-durduruyordu. Bu fonksiyonu Hareket algılama içinde kullanınca; odada hareket yoksa, sıcaklığı 22 derecede tutmaya çalışmak yerine minimum değerde tutuyordu.

Buraya kadar her şey güzel. Fakat bi sorun var.

Herkes işte ya da okulda iken, odada hareket olmadığı için oda sıcaklığını minimumda tutacak bu iyi ama eve geldiğimizde 22 derecelik değil daha serin bir ev bizi karşılayacak demek.

Elimizde bir Gerçek Zaman Modülü olursa, Saat kaç? diye sorup, eve geliş saatinden yarım saat önce kombinin çalışmasını sağlayabiliriz 😉


Saat modülümüzün kütüphanesini ekledikten sonra. Pinleri belirterek Zaman nesnesi oluşturalım.

#include
DS3231 zaman(SDA, SCL);

Ve saatin kaç olduğunu öğrenelim:

getTimeStr() kullanarak Zaman’a ait Saat bilgisini aldık ve bunu saat değişkenine atadık.

Şimdi saat bizim belirttiğimiz vakte gelmiş mi buna bakalım. // sonra röleyi tetikleyelim ki, eve geldiğimizde sıcak bi karşılama ile karşılaşalım