Arduino Uno Takvim ve Saat

Bu uygulamada saat modülü kullanılmamıştır. LCD 1602A ve I2C Seri Adaptör kullanılmıştır.
Dosyanın kaynak kodları Arduino Ide 1.8.8 kullanılarak yazılmıştır. Kaynak dosyasında bütün açıklamalar mevcuttur. Devre tarafımdan denenmiştir. Videoda da görüldüğü gibi düzgün çalışmaktadır. Ufak tefek aksamalar denk gelirse geliştirebilirsiniz ve  yorum olarak ekleyebilirsiniz. 



DEVRE ŞEMASI:


Devrenin ayarlanması:
Saat Ayarı:                    Saat tuşuna basılı tutarken + ve - tuşlarına basın
Dakika Ayarı:               Dakika tuşuna basılı tutarken + ve - tuşlarına basın
Gün Ayarı:                    Gün tuşuna basılı tutarken + ve - tuşlarına basın
Ay Ayarı:                       Ay tuşuna basılı tutarken + ve - tuşlarına basın
Yıl Ayarı:                      Yıl tuşuna basılı tutarken + ve - tuşlarına basın
Haftanın Günü Ayarı:Haftanın Günü  tuşunu basılı tutarken + ve - tuşlarına basın

VİDEO:


UYARI:

<LiquidCrystal_I2C> kütüphanesini araçlar/librarileri düzenle menüsünden aktif  etmeyi unutmayın.


ARDUINO IDE KODLARI:

//............ Kodla Gitsin .............
//............ Kodla Gitsin .............
//............ Kodla Gitsin ...............
// <LiquidCrystal_I2C> kütüphanesini araçlar/librarileri düzenle menüsünden aktif edin.
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,20,4);  // set the LCD address to 0x27 for a 16 chars and 2 line display

// hangi pinler hangi ayarlar için atanıyor--------------------------
int buton_ayar_arti=3;
int buton_ayar_eksi=4;
int buton_saat=10;
int buton_dakika=9;
int buton_gun=8;
int buton_ay=7;
int buton_hgun=6;
int buton_yil=5;

void setup()
{
  lcd.init();                      
  lcd.backlight();
  lcd.setCursor(1,0);
  
pinMode(buton_ayar_arti,INPUT);  
pinMode(buton_ayar_eksi,INPUT);  
pinMode(buton_saat,INPUT);  
pinMode(buton_dakika,INPUT);  
pinMode(buton_gun,INPUT);  
pinMode(buton_ay,INPUT);  
pinMode(buton_hgun,INPUT);  
pinMode(buton_yil,INPUT);  

}

//ilk ayarlar-------------------------------------------------------------------------------
int san;
int dak=0;  // dakika
int saa=0;  // saat
int gun=1;   // ayın günü
int ay=1;   // kaçıncı ay
int haf=02;  // haftanın kaçıncı günü
String gunler[]={"x","Pts", "Sal", "Car", "Per","Cum","Cts","Paz"};
String aylar[]={
"x","Oca","Sub","Mar","Nis","May","Haz","Tem","Agu",
"Eyl","Eki","Kas","Ara"};
int yil=2019; //yıl
//-------------------------------------------------------------------------------------------
void loop(){    
lcd.setCursor(2,0);    //1;.satır
lcd.print("Kodla Gitsin");  // açılıştaki logo ekranı 1.satır
delay(1000);      
lcd.setCursor(1,1);    //2;.satır
lcd.print("Saat ve Takvim");  // açılıştaki logo ekranı 2.satır
delay(4000);
lcd.clear();

for (san>-1;san<60;san++) {  //saniye odaklı kod kurulum

//-----------LCD ekrandaki saat & tarih görüntüsü----------------------------------------------
lcd.setCursor(4,0); //2.satır
lcd.print(saa), lcd.print(":"),
lcd.print(dak), lcd.print(":"), lcd.print(san), lcd.print(" "),
lcd.setCursor(10,1); //2.satır
lcd.print(gun);
lcd.setCursor(0,1);    //1.satır
lcd.print(gun),lcd.print(" ");
lcd.setCursor(3,1);    //1.satır
lcd.print(aylar[ay]),lcd.print(" "),lcd.print(gunler[haf]),lcd.print(" "),lcd.print(yil); //gün
delay(983);

///------buton SAAT kontrol---------------------------------------------
//lcd.clear();
  if(digitalRead(buton_saat) == HIGH && digitalRead(buton_ayar_arti) == HIGH) 
{
saa=saa+1; 
lcd.clear();
}
else if(digitalRead(buton_saat) == HIGH && digitalRead(buton_ayar_eksi) == HIGH) 
{
saa=saa-1;
lcd.clear();
}  
//-------------------------------------------------------------------------------- 

///------buton DAKİKA kontrol---------------------------------------------
//lcd.clear();
  if(digitalRead(buton_dakika) == HIGH && digitalRead(buton_ayar_arti) == HIGH) 
{
dak=dak+1; 
lcd.clear();
}
else if(digitalRead(buton_dakika) == HIGH && digitalRead(buton_ayar_eksi) == HIGH) 
{
dak=dak-1;
lcd.clear();
}  
//--------------------------------------------------------------------------- 

///------buton GÜN kontrol---------------------------------------------
//lcd.clear();
  if(digitalRead(buton_gun) == HIGH && digitalRead(buton_ayar_arti) == HIGH) 
{
gun=gun+1; 
if (gun==32) gun=1;
lcd.clear();
}
else if(digitalRead(buton_gun) == HIGH && digitalRead(buton_ayar_eksi) == HIGH) 
{
gun=gun-1;
if (gun==0) gun=31;
lcd.clear();
}  
//--------------------------------------------------------------------------------------------- 

///------buton HAFTANIN GÜNÜ kontrol---------------------------------------------
//lcd.clear();
  if(digitalRead(buton_hgun) == HIGH && digitalRead(buton_ayar_arti) == HIGH) 
{
haf=haf+1; 
lcd.clear();
}
else if(digitalRead(buton_hgun) == HIGH && digitalRead(buton_ayar_eksi) == HIGH) 
{
haf=haf-1;
lcd.clear();
}  
//--------------------------------------------------------------------------------- 

///------buton AY kontrol-----------------------------------------------------
//lcd.clear();
  if(digitalRead(buton_ay) == HIGH && digitalRead(buton_ayar_arti) == HIGH) 
{
ay=ay+1; 

lcd.clear();
}
else if(digitalRead(buton_ay) == HIGH && digitalRead(buton_ayar_eksi) == HIGH) 
{
ay=ay-1;

lcd.clear();
}  
//------------------------------------------------------------------------- 

///------buton YIL kontrol---------------------------------------------
//lcd.clear();
  if(digitalRead(buton_yil) == HIGH && digitalRead(buton_ayar_arti) == HIGH) 
{
yil=yil+1; 
lcd.clear();
}
else if(digitalRead(buton_yil) == HIGH && digitalRead(buton_ayar_eksi) == HIGH) 
{
yil=yil-1;
lcd.clear();
}  

//------------------KONTROLLER--------------------------- 
if (san==59) san=-1, dak=dak+1;
if (dak==60) dak=0, saa=saa+1;
if (saa==24) saa=0, gun=gun+1, haf=haf+1;if (haf==8)haf=1;if (haf==0)haf=7;if (gun==0)gun=31;
if(ay==2) { if(yil%4==0) {if(gun==30) gun=1, ay=ay+1;} else {if(gun==29) gun=1, ay=ay+1;};};
if(ay==4) { if(gun==31) gun=1, ay=ay+1;}; if(ay==6)  { if(gun==31) gun=1, ay=ay+1;};
if(ay==9) { if(gun==31) gun=1, ay=ay+1;}; if(ay==11) {if(gun==31)  gun=1, ay=ay+1;};
if(ay==1) { if(gun==31) gun=1, ay=ay+1;}; if(ay==3)  {if(gun==31)  gun=1, ay=ay+1;};
if(ay==5) { if(gun==32) gun=1, ay=ay+1;}; if(ay==7)  {if(gun==32)  gun=1, ay=ay+1;};
if(ay==8) { if(gun==32) gun=1, ay=ay+1;}; if(ay==10) {if(gun==32)  gun=1, ay=ay+1;};
if(ay==12){ if(gun==32) gun=1, ay=ay+1;};
if (ay==12) ay=1, yil=yil+1;
if (ay==0) ay=12, yil=yil-1;
if (saa==-1) saa=23;
if (dak==-1) dak=59;
//----------------------------------------------------------------

}}




Kullanılan Programlar    : Arduino Ide 1.8.8, Proteus 8
Kullanılan Programlayıcı: Arduino Uno (Klon)

Yorumlar