RTC modüle Tarih Saat verilerini girmek
Program başında hangi pinlerin nereye bağlanması gerektiği yazılmıştır. Ancak DS1302 ve TIME kütüphane dosyalarını indirmeli ve daha önceki uygulamalarımızda yaptığımız gibi sıkıştırılmış dosyaları klasöre çıkartmalı ve klasör olarak library içine atmalısınız. Aşağıdaki programı kopyalayıp arduino derleyicisine yapıştırın ve yükleyin. Bu kadar basit.
İlk kullanımda RTC modül içinde saat ve tarih verileri yüklü değildir. Bu yüzden lcd ekranda 0/0/2000 gibi bir tarih görebilirsiniz. Bir sonraki uygulamamız saat ve tarih verilerini RTC modüle yüklemek olacak. Bu işlem bir kere yapılır ve üzerindeki pil çıkartılmadığı sürece yada pil bitmediği sürece veriler kaybolmaz.
2×16 LCD kullanılmıştır ve 4 pinlidir. (SDA, SCL, VCC, GND)
//***************** Program Başlangıcı*************************
// DS1302: CE pin (RST) -> Arduino Digital 13
// I/O pin(DAT) -> Arduino Digital 12
// SCLK pin -> Arduino Digital 11
// VCC pin -> Arduino Digital 9
// GND pin -> Arduino Digital 10
// LCD 4 pinli 2×16 = SDA : A4
// SCL : A5
// VCC pini arduinodaki 5V yazan yere ve GND pini GND yazan yere takılacak
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// addr, en,rw,rs,d4,d5,d6,d7,bl,blpol
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
#include <DS1302RTC.h>
#include <Time.h>
// Init the DS1302
// Set pins: CE, IO,CLK
DS1302RTC RTC(13, 12, 11);
#define DS1302_GND_PIN 10
#define DS1302_VCC_PIN 9
void setup()
{
// Setup LCD to 16×2 characters
lcd.begin(16, 2);
digitalWrite(DS1302_GND_PIN, LOW);
pinMode(DS1302_GND_PIN, OUTPUT);
digitalWrite(DS1302_VCC_PIN, HIGH);
pinMode(DS1302_VCC_PIN, OUTPUT);
lcd.print(“RTC aftif”);
delay(500);
lcd.clear();
if (RTC.haltRTC())
lcd.print(“Clock stopped!”);
else
lcd.print(“Clock working.”);
lcd.setCursor(0,1);
if (RTC.writeEN())
lcd.print(“Write allowed.”);
else
lcd.print(“Write protected.”);
delay ( 2000 );
lcd.clear();
lcd.print(“RTC Sync”);
setSyncProvider(RTC.get); // the function to get the time from the RTC
if(timeStatus() == timeSet)
lcd.print(” Ok!”);
else
lcd.print(” FAIL!”);
delay ( 2000 );
lcd.clear();
}
void loop()
{
lcd.setCursor(3, 0);
print2digits(hour());
lcd.print(” “);
print2digits(minute());
lcd.print(” “);
print2digits(second());
lcd.setCursor(0, 1);
lcd.print(dayShortStr(weekday()));
lcd.setCursor(5, 1);
lcd.print(” “);
print2digits(day());
lcd.print(“/”);
print2digits(month());
lcd.print(“/”);
lcd.print(year());
if(timeStatus() != timeSet) {
lcd.setCursor(0, 1);
lcd.print(F(“RTC ERROR: SYNC!”));
}
delay ( 1000 ); // Wait approx 1 sec
}
void print2digits(int number) {
if (number >= 0 && number < 10) {
lcd.write(‘0’);
}
lcd.print(number);
}
//**************** program sonu *********************************
İnternette de yer alan bir uygulamadır. Timur Maksimov tarafından yazılmıştır.
Related Posts
Bluetooth kontrollü akıllı ev uygulaması
Bu çalışmamızda öğrencilerimiz bluetooth kontrol uygulaması ile evde bulunan lambaları kontrol edebiliyor. Evin sıcaklığını okuyarakRead More
Arduino Motor Sürücü Modül
Tüm robot uygulamalarınızda kullanabileceğiniz bir modüldür. Mini sumo, labirent çözen, engelden kaçan, yangın söndüren, çöpRead More
Robot kontrol APK sı
Cep telefonu ya da tablet ile robotunuzu kontrol etmek isterseniz örnek program, açıklama veRead More
Comments are Closed