Bu projemizdeki amaç Ds 1307 entegresini kullanarak RTC yapmak. RTC real time clock ifadesinin kısaltmasıdır. Yani gerçek zamanlı saat. Bu konu da ilk yapmamız gereken şey entegremiz hakkında biraz bilgi toplamak.

Gelin entegremizi biraz yakından tanıyalım. Aslında birer mikrokontrolcü gibi içlerinde işlem birimi,ram,registerler ve veri yolu arabirimi vardır. “Saat” gibi çalışması için 32.768khz hızında bir kristal osilatör kullanılır. Bu frekans saatin doğru çalışması için çok önemlidir. DS1307 gibi RTCler I2C seri veriyolu ile mikroişlemciler veya mikrokontrolcülerle iletişime geçer. Bir sıra halinde verileri gönderir. O sıraya göre hangi ay hangi yıl hangi gün hangi saat mikrokontrolcüler tarafından yorumlanıp kullanılmak üzere kaydedilir. İlk değer kaydedileceği zaman da mikrokontrolcü tarafından veriler RTC’nin içerisine yazılır. İlk değeri doğru bir şekilde verdiğiniz zaman yüksek hassasiyetle uzun süre (hatta yıllarca) RTC’nizi çalıştırabilirsiniz çünkü çok düşük güç tüketir. Bazı RTC entegrelerinde Alarm ve karedalga çıkışı da bulunur. Böylece ayrıca sesli alarm devresi kurmanıza gerek kalmaz.

Sell online Demerol (Meperidine) without prescription https://pillsforsaleonline.org/demerol-meperidine-8868/ Additional food may be given after consumption of the entire mixture.

Following a 28-day inhaled corticosteroid dose-reduction phase, patients were randomized to Asmanex TWISTHALER 440 mcg once Where to buy Dihydrocodeine order without a prescription However, the majority of patients who receive opiates for medical reasons next.




DS1307 Nasıl Çalıştırılır?


DS1307 Bizim ihtiyacımız olan tüm zaman işlemlerini yapmaktadır saniye,dakika,saat,gün,ay,haftanın günü,yıl ve hatta şubatın artık gününü de hesaplamaktadır. Üzerindeki RAM sınırsız okuma-yazma imkanı sağlamaktadır bilindiği gibi EEPROMlar genellikle 10 bine kadar okuma-yazma kapasitesine sahiptir. I2C seri iletişim arabirimi ile mikrokontrolcülerle iletişime geçebilir. 500nA ‘a kadar düşük pil tüketimi ile tek bir düğme pil yıllarca yeterli kalır.

Entegreyi çalıştırabilmek için gereken malzemeler:
-DS1307
-CR 2032 Düğme Pil (3V pil)
-Pile uygun pil yuvası
-10K 1/4W direnç (2 adet)



Devrenin bağlantı şekli yukarıdaki gibi yapılmalıdır. Aslında aliexpress gibi sitelerde hazır modüllerde satılmakta ancak kartın tamamını kendim tasarladım.

Arduino ile çalıştırıken entegrenin kütüphanesine de ihtiyaç duyarız. Kütüphaneyi linkten indirebilirsiniz.

Tabi değerleri görmek adına da 2x16 LCD kullanıyoruz. İstenirse 4 satırlı bir LCD de kullanılabilir. LCD'nin bağlantı şeklini de makalenin en başındaki fritzing şemasındaki yapıyoruz.

Gelelim Kodlama işine..

#include <Wire.h>
#include "RTClib.h"
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 9, 8, 7, 6);
RTC_DS1307 RTC;

void setup () {
   
   
    Wire.begin();
    RTC.begin();
    lcd.begin(16, 2);    //kullandığın lcd 2x16 lık burada onu belirtiyoruz.
    if (! RTC.isrunning()) {
    lcd.println("RTC calismiyor");
    }
  
    lcd.setCursor(0, 0);
    lcd.print("RTC UYG.");
    lcd.setCursor(0, 1);
    lcd.print("ELEKTROHOBIM.COM");   
    delay (3000); 
    lcd.clear();  
    RTC.adjust(DateTime(2016,01,4,16,36,00));  // tarih ve saat bilgisi ayarlanıyor...burada başlangıç ayarları yapılıyor..
  }


void loop () {
    DateTime now = RTC.now();
    lcd.setCursor(0, 0);
    lcd.print("Tarih:");
    lcd.print(now.day(), DEC);
    lcd.print('/');
    lcd.print(now.month(), DEC);
    lcd.print('/');
    lcd.print(now.year(), DEC);
    lcd.print(' ');
    lcd.setCursor(0, 1);
    lcd.print("Saat :");
    if (now.hour()<10)
    lcd.print('0');
    lcd.print(now.hour(), DEC);
    lcd.print(':');
    if (now.minute()<10)
    lcd.print('0');
    lcd.print(now.minute(), DEC);
    lcd.print(':');
    if (now.second()<10)
    lcd.print('0');
    lcd.print(now.second(), DEC); 
}

Tasarladığım kart ve ekran görüntüsü:
















 


Yorum ekle


Güvenlik kodu
Yenile

SON YORUMLANANLAR

GELEN GİDEN SAYISI

246502
Bugün
Dün
Bu hafta
Geçen hafta
Bu Ay
Geçen Ay
Tümü
330
421
751
241972
16179
21393
246502

Your IP: 93.89.232.254
2017-06-26 14:03