Arduino ile Dijital Saat Yapımı
Arduino, açık kaynaklı bir elektronik platformdur. Arduino kartları, çeşitli sensörler ve aktüatörlerle birlikte kullanılabilir. Bu sayede, Arduino kartları ile birçok farklı proje yapılabilir. Bu projelerden biri de dijital saat yapımınadır.
Gerekli Malzemeler
- Arduino Uno kartı
- 7 segmentli LED ekran
- Dirençler (100 ohm, 220 ohm, 330 ohm)
- Transistörler (BC547)
- Kondansatörler (100 uF, 10 uF)
- Kristal osilatör (16 MHz)
- Pil veya güç kaynağı
- Bağlantı kabloları
Devre Şeması
Arduino ile dijital saat yapımı için gerekli olan devre şeması aşağıdaki gibidir.
[Devre şeması resmi]
Çalışma Prensibi
Arduino ile dijital saat yapımı için kullanılan devre, bir zamanlayıcı devresi ve bir sayıcı devresinden oluşmaktadır. Zamanlayıcı devresi, kristal osilatör tarafından üretilen 16 MHz’lik sinyali kullanarak 1 saniyelik aralıklarla kesme üretmektedir. Sayıcı devresi ise, kesme sinyallerini sayarak saat, dakika ve saniyeyi hesaplamaktadır. Hesaplanan saat, dakika ve saniye bilgileri, 7 segmentli LED ekranlara gönderilerek görüntülenmektedir.
Kod
Arduino ile dijital saat yapımı için kullanılan kod aşağıdaki gibidir.
“`
include
// 7 segmentli LED ekranların pinleri
const int saat_birler_pin = 2;
const int saat_onlar_pin = 3;
const int dakika_birler_pin = 4;
const int dakika_onlar_pin = 5;
const int saniye_birler_pin = 6;
const int saniye_onlar_pin = 7;
// Zamanlayıcı kesme işlevi
ISR(TIMER1_COMPA_vect) {
// Zamanı güncelle
time_t now = time(NULL);
// Saati, dakikayı ve saniyeyi hesapla
int saat = hour(now);
int dakika = minute(now);
int saniye = second(now);
// Saati, dakikayı ve saniyeyi 7 segmentli LED ekranlara gönder
display_time(saat, dakika, saniye);
}
// 7 segmentli LED ekranlara zamanı gönderme işlevi
void display_time(int saat, int dakika, int saniye) {
// Saati, dakikayı ve saniyeyi sayılara dönüştür
int saat_birler = saat % 10;
int saat_onlar = saat / 10;
int dakika_birler = dakika % 10;
int dakika_onlar = dakika / 10;
int saniye_birler = saniye % 10;
int saniye_onlar = saniye / 10;
// Sayıları 7 segmentli LED ekranlara gönder
digitalWrite(saat_birler_pin, saat_birler);
digitalWrite(saat_onlar_pin, saat_onlar);
digitalWrite(dakika_birler_pin, dakika_birler);
digitalWrite(dakika_onlar_pin, dakika_onlar);
digitalWrite(saniye_birler_pin, saniye_birler);
digitalWrite(saniye_onlar_pin, saniye_onlar);
}
void setup() {
// Zamanlayıcıyı başlat
TCCR1A = 0;
TCCR1B = 0;
TCNT1 = 0;
OCR1A = 15624;
TCCR1B |= (1 << WGM12);
TCCR1B |= (1 << CS12) | (1 << CS10);
TIMSK1 |= (1 << OCIE1A);
// 7 segmentli LED ekranların pinlerini çıkış olarak ayarla
pinMode(saat_birler_pin, OUTPUT);
pinMode(saat_onlar_pin, OUTPUT);
pinMode(dakika_birler_pin, OUTPUT);
pinMode(dakika_onlar_pin, OUTPUT);
pinMode(saniye_birler_pin, OUTPUT);
pinMode(saniye_onlar_pin, OUTPUT);
}
void loop() {
// Boş döngü
}
“`
Montaj
Arduino ile dijital saat yapımı için gerekli olan devre, bir breadboard üzerinde monte edilebilir. Devre montajı yapılırken, devre şemasına dikkat edilmelidir.
Test Etme
Arduino ile dijital saat yapımı için gerekli olan devre monte edildikten sonra, test edilebilir. Test etmek için, Arduino kartına güç verilmelidir. Arduino kartına güç verildiğinde, dijital saat çalışmaya başlayacaktır.
Sonuç
Arduino ile dijital saat yapımı, kolay ve eğlenceli bir projedir. Bu proje, Arduino kartlarının nasıl kullanılacağını öğrenmek için iyi bir başlangıç noktasıdır.