ATmega8 ve DS1307 çipi ile RS485 iletişimli LCD Saat
"ATMega8 ve DS1307 çipi ile RS485 saat kaynağı" projesi ile RS485 üzerinden
7 parçalı LED ekran üzerinde saat ve dakika gösterimi sağlandı. Ama görüldüğü
üzere elde edilebilir bilgi çok sınırlı idi. DS1307 çipini inceleyen kişiler elbette
çok daha fazla bilgi barındırdığını görecektir. Bunu 7 parçalı LED ekranlar üzerinde göstermek biraz yetersiz kalabilir.
Bu noktada kullanılabilecek bilgi gösterme
araçlarından biri olan LCD modül kullanımı olanağı ile yine RS485 üzerinden
saniye, dakika ve saat gibi zaman bilgileri ve haftanın günü (pazartesi, salı...),
gün, ay ve yıl gibi tarihsel bilgileri (4x20 mavi arkadan aydınlatmalı)
LCD modül arayüzü üzerinde sunacağız.
DS1307
Birçok benzerleri gibi gerçek zaman saati olarak geliştirilmiş Dallas
Semiconductor veya Maxim firması tarafından geliştirilmiş olan
çip sadece birkaç eleman yardımı (pil ve 32.768Khz kristal) ile artık
yıl hesabı dahil saniye, dakika, saat (12 veya 24), haftanın günü,
ayın günü, ay, yıl gibi değişkenlerin sayılabildiği gibi ek olarak bazı
parametrelerin saklanabileceği 56 baytlık pil desteği tarafından
korunan ram bölgeside yer almaktadır.
Şekil-1 :DS1307 çipi zaman registerinin adres ve tanımları (Not:RAM bölgesi gösterilmemiştir. Sadece 24 saat modu ile ilgili bölümlere yer verilmiştir.).
Zaman ve tarih bilgileri 0x00 ile 0x06 ve kontrol registeri olarak kullanılan
0x07 adreslerinde saklanmaktadır.
Saat ve tarih bilgileri BCD biçiminde saklanmaktadır. (onluk -ikilik sistem)
DS1307 çipi üzerinde i2c bağlantıları yanında, bir çıkışı programlanabilir
saat çıkış bacağı (referans saat çıkışı), 32.768Khz için saat kristal bacakları,
yedekleme pili için besleme bacağı yanında tabii ki normal besleme
için +5V ve GND bacaklarıda var.
DS1307 çipi içinde otomatik besleme takip sistemi yer alıyor. +5V bacağındaki
besleme gerilimi 1.25x Vpil (yaklaşık olarak 3.75V) gerilimine ulaştığında
besleme işlemini otomatik olarak pil beslemesine aktarmaktadır.
Vcc (+5V) gerilimi 1.25x Vpil gerilimi üzerine ulaştığı zaman
i2c hatları DS1307 tarafından aktif hale getirilmektedir.
Sadece burada belirtilmesi gereken nokta DS1307 çipi ilk defa çalıştırıldığında
zamanlama sayıcıları çalışmaya başlamaz. Bunun için saniye registerinin
(0x00 adresi) 7.biti üzerinde bulunan (CH) çip tutma bitinin "0" yapılarak
sayıcıların aktif hale getirilmesi gerekiyor. Yani yapılması gereken
tek şey ayar gir ve ayardan çık. Bu işlem sonunda saniye kendiliğinden
okunup ve okuma esnasında CH biti sıfırlandığından sadece tekrar
yazılarak bu CH biti (0x00 adresindeki 7. bit) sıfırlanmış olur.
(okuma esnasında 0x00 adresinde 7. bit sıfırlanarak maskelenmektedir).
İkinci olarak seçilmesi gereken 12/24 saat modudur. Bunun için 0x02 adresindeki
saat baytında yer alan 6.bit "0" yapılarak 24 saat modunda çalıştırılması sağlanır.
Bu işlemde aynen ayar giriş çıkışı ile yerine getirilir.
(okuma enasında 0x02 adresindeki 6. ve 7. bitler sıfırlanarak maskelenmektedir.
Kontrol registeri bu projede kullanımadığından girilmeyecektir.
Bu bölüm ancak referans saat sinyali olarak DS1307 kullanılmak
istendiğinde DS1037'nin out çıkışının ayarlanması için gereken
paremetrelerin ayarlanması için kullanılacağı zaman ayarlanır.
(örneğin işlemcinin sürekli DS1307 okuması yerine program
olarak oluşturulacak saat programında zamana göre saat ile
DS1307'nin eşleşmesinde kullanılmak üzere gerekir).
DS1307 üzerine ayarlar yazılırken (CH) biti "0" ve (12/24) "0" olacak
şekilde yazılmasına dikkat etmek gerekir. Devre ilk kez çalıştırıldığında
DS1307 saymaya başlamayacaktır. DS1307 veri kağıtlarında (CH) biti "1"
konumda olduğu belirtilmektedir. Bu problemi çözmek için yapılması
gereken sadece "AYAR GİR" ve "AYAR TAMAM" işlemini yap.
Yani AYAR butonuna iki kez bas bırak. Zaten saat ve tarih ayarını yapmak gerekecek!!
Proje normalde 2 modülden oluşuyor. Birinci modül LCD ekran bölümüdür ki
"RS485 (Seri) LCD Çevirici" projesi ile gerçekleştirildi. Ama baskı devrede bazı değişiklikler yapıldığı halde program aynen kullanıldı. (isp konnektörü 2x3 şeklinde).
Anlaşılacağı üzere de ikinci modül
"ATMega8 ve DS1307 çipi ile RS485 saat kaynağı"
projesidir ve aynı isim altında gerçekleştirilmiştir.
Şekil-2 :Kartın üstten görünümü. DS1307 destek pili takılı halde.
Şekil-3 :Tamam saati en azından ayarlamak için gereken tuş takımı. İşlemci kartı ile bağlantı için gereken P3 konnektörü ile birlikte.
Şekil-4 :LCD sürücü kartı.
Şekil-5 :RS485-seri(uart) dönüştürücü (alma modu ayarlı-kart üzerindeki köprü).
Şekil-6 :4x20 LCD ekran, bağlantı kablosu ile birlikte.
Şema
Saat modülü kabini IC1 atmega8 işlemcisi oluşturuyor. Bu işlemci için gereken
saat kaynağı için XTL1 (3,6864MHZ) kristal, C6 ve C7 (27pF) kondansatör birlikte kullanılmakta. Devrenin çalışmasını göstermek üzere D2 ve R2 (1k) direnci kullanılır.
IC1 üzerine bağlı S1 butonu (ayar butonu)üzerindeki R5 (10K) direnci butonun
pull-up direnci görevini görürken, C11 (100nF) kondansatörü tuş için giriş
parazitlerini bastırır. Aynı şekilde S2 (saat) ve S3 (dakika) saat ayarlama butonlarını oluşturur ve butonlara bağlı C12 ve C13 parazitik etkileri bastırmak için işlev görürler.
İşlemcinin seri haberleşme (UART) üzerinden IC2 ST485 arayüz çipine bağlanmakta.
Bu çipin girişine bağlı bulunan R1 (120OHm) ile hat empadansının uygunlaştırılması sağlamakta. İşlemci programı ile bu çip sadece sinyal gönderece biçimde şekillendirilmiştir.
IC1 işlemcinin TWI bacaklarına bağlanmış olan IC3 (DS1307)
(projenin asıl konusudur) i2c bağlantısı üzerinden iletişimi sağlar.
i2c bağlantısı üzerindeki R3 ve R4 (10k) dirençleri i2c hattının pull up
ihtiyacını karşılar.IC3 üzerine bağlı XTL2 (32,768KHz) kristal bu çip için
gereken saat referans sinyallerin üretir. Ayrıca IC3'ün Vbat bacağına
bağlı PIL1 (3V) pili ile IC3'ün ihtiyacı olan destek gerilimini sağlar.
D1 girişdeki besleme kutbu sorunun ortadan kaldırarak doğrultma sağlar.
IC4 ve buna bağlı olan C2,C3,C4 ve C8 devre için gereken 5V besleme gerilimini üretir.
IC1'e bağlı olan ISP konnektörüde artık bilindiği gibi işlemcinin programlanmasında kullanılır.
--LCD Modülü:(şekil-9'a bak)
LCD modül kalbini ATtiny2313 oluşturuyor. İşlemci XTL1 (3,6864MHz)
kristal ile birlikte C3 ve C4 (27pF) kondansatörler saat kaynağı olarak kullanır.
P1 LCD için (14P) bağlantı konnektörüdür. R1 LCD parlaklık ayarı içindir.
C1 (10µF) kondansatör LCD Vo ( parlaklı ayarı) ucu için filtre görevini görür.
D1 (LED) ve R2 (1K) LCD kartı için monitörolarak kullanılır.
P3 besleme giriş konnektörüdür. D2 köprü diyot besleme gerilimi için kutuplama
sorununu ortadan kaldırır ve IC2(7805) LCD modül için 5V besleme gerilimini üretir.
P2 ve P2_2 konnektörleri ATtiny2313 ve ST485 arasındaki seri bağlantıyı (UART) sağlar.
R4 (1K) ve D3 (LED) RS485 kartına besleme geldiğini gösterir. IC3 (ST485) seri-RS485 dönüştürücü arabirimidir. P4 RS485 için giriş konnektörüdür(6p2c veya 6p4c) ve
buna bağlı olan R3 (120R) empedans uygunlaştırıcıdır.
R5 ve P5 RS485 için çalışma modu seçicidir.(köprü yardımı ile )
Geri kalan kondansatörler besleme hatları üzerinde filtre görevini yerine getirirler
Şekil-7 :Devrenin blok şeması
Şekil-8 :Saat Modülü Devrenin şeması
Şekil-9 :LCD Modülü Devrenin şeması (LCD arkaplan aydınlatması gösterilmemiştir). Kullanılmakta olan LCD üzerinde arkaplan aydınlatması için sadece 2 tane beyaz LED var.
Devre Yapımı
"RS485 (Seri) LCD Çevirici" ve "ATMega8 ve DS1307 çipi ile
RS485 saat kaynağı" projeleri bu proje için kaynaktır.
Devre yapılırken buton kartı en kolay yapılan olacaktır.
Butonlar karta lehimlendikten sonra, buton bacaklarına C11,C12 ve C13
kondansatörlerini lehimlemek yeterli olacaktır. Ve karta şerit kablo ile
küçük bir konnektörü takmak yeterlidir.
Devre yapımı için fazla bir şey söylemeye gerek yok. Çipler için soket
kullanılması yerinde olacaktır. Kristallerin topraklanması çalışma
esnasında oluşabilecek sorunları ortadan kaldıracaktır.
LCD kablosu için ekran konnektör bağlantıları küçük bir kart üzerinden
gerçekleştirldi. Ama bu kart o kadar gerekli değildir. Serit kablo doğrudan
LCD ekran bağlantı noktalarına lehimlenebilir
Şekil-10:Saat Modül-baskı devresi şekli(üstten görünüm)
Şekil-11:Saat Modül-yerleşim planı
Şekil-12:Saat Modül-eleman ve yollarla birlikte yerleşim planı.
Şekil-13:LCD Modül-baskı devresi şekli(üstten görünüm)
Şekil-14:LCD Modül-yerleşim planı
Şekil-15:LCD Modül-eleman ve yollarla birlikte yerleşim planı.
Devre Elemanları
--Saat Modülü Malzeme Listesi:
--LCD Modülü Malzeme Listesi:
Malzeme listesi. Burada işlemci için soket ve 9V adaptörler verilmemiştir.
Entegre soketi listede verilmemiş kullanımı kişinin tercihine kalmış bir durum.
Ayrıca buton kartı ile işlemci kartı arasındaki bağlantı ve RS485 için
gereken bağlantı kişinin kendi tercihine bırakılmıştır.
Sistemin Çalışması
Şekil-16:Projedeki elemanlar bir arada.
Sistemin çalışması konusunda;
İşlemci saniyede 2 kez DS1307 üzerinden saniye, dakika, saat ,tarih verilerini alıyor. Saniye değiştiği zaman saat bilgisini ekrana gönderiyor.
Verileri her virgül arası bayt biçiminde olarak;
Saat bilgisi:Satır kodu,saat 10 hanesi, saat 1 hanesi, ayıraç,dakika 10 hanesi, dakika 1 hanesi, ayıraç,saniye 10 hanesi, saniye 1 hanesi, gerektiği kadar boşluk, satır sonu kodu (gönder kodu).
Tarih bilgisi:Satır kodu, gün 10 hanesi, ayıraç, gün 1 hanesi, ay (isim olarak),ayıraç, yıl(sadece 20xx için),satır sonu kodu (gönder kodu).
Haftanın günü bilgisi: Satır kodu, haftanın günü (isim olarak),satır sonu kodu (gönder kodu)
Bu bilgiler her saniye ve ayar yapılırken tuşun her bırakılışında yenilenmektedir.
Ayarlar
Şekil-17:Tuş atamaları
Minimum buton ile işlemin yapılması sağlandığından "Ayar Yap" işleminde sayma işlemi sadece ileri doğru yapılmaktadır.
Şekil-18:Ekranda "ayar seç" sıralaması
Şekil-19:"Ayar Gir" butonuna basıldığında ekran.
Saat ve tarih ayarı için;
"Ayar Gir" butonuna bas. Ekranda saat hanesinin olduğu bölge
Büyük ve küçük karakteri ile şekil-19'da görüldüğü gibi işaretlenir.
Ayarlamak istenilen birim ne ise (saat,dakika,saniye, gün, ay, yıl ve haftanın günü)
o birime gelmek için "Ayar seç" butonu kullan. Bu birimlerin sıralaması şekil 18'de gösterilmiştir. Şekil-19,Şekil-20 ve şekil-22 "Ayar gir" butonu kullanılarak seçilmiş ayar görüntüleridir.
Şekil-20:"Ayar Seç" butonu ile seçilmiş ay.
Şekil-21:"Ayar Gir" butonu ile seçilmiş haftanın günü.
Not:Ayar işlemi esnasında saat gösteriminin durduğunu ve ekran üzerindeki
ayar ne ise o noktadan itibaren saatin sayacağını unutmayın.
"Ayar Yap" butonuna:
Bu butona basıldığında hangi birim ayarlanıyorsa ("Ayar Seç" butonu ile seçilmiş) o
birim 1 artırarak sayar. Ama diğer birimler bundan etkilenmez. Yani dakika ayarlanırsa sadece dakika üzerinde işlem yapılır.
Saat: Butona her bas/bırakta 1 artırarak sayar. Eğer saat "23" olursa sayma "00"'dan
devam eder.
Dakika:Butona her bas/bırakta 1 artırarak sayar. Dakika "59" ulaştığı zaman, sayma "00"'dan devam eder.
Saniye:Butona her bas/bırakta 1 artırarak sayar. Dakika "59" ulaştığı zaman, sayma "00"'dan devam eder.
Gün:Butona her bas/bırakta 1 artırarak sayar. Burası biraz değişik. Aslında yıl ve
aya göre değişmesi gerekiyor. Ama günün ayarı aydan önce olduğu için ne yazık ki
bu ay ayarını siz yapmanız gerekebilir. Takvimi doğruluğu açısından bulunduğunuz
günü doğru girmeniz gerekiyor. Örneğin 31 kasım girmemeye çalışın. Burada gün "31" olduğu zaman "01" tarihine devam eder.
Ay:Ay isimleri kullanıldığından, butona her bas/bırakta sonraki ay ismi ile ekran yenilenir. Ocak, şubat, mart, nisan, mayıs, haziran, temmuz, ağustos, eylül, ekim, kasım, aralık ay isimleri birbirini izler. "Aralık" ayından sonra ayar "Ocak"
ayından deva eder.
Yıl: Yıl olarak sadece son iki rakamı göz önüne alınmıştır. Bu nedenle sadece son iki rakam ayarlanıyor. Butona her bas/bırakta 1 artırarak sayar. Yıl olarak "2099" tarihine ulaştığında "2000" tarihinden devam eder.
Haftanın günü:Haftanın günleri isim olarak kullanıldığından birbirini takip eden bir düzünde olarak pazar, pazartesi, salı, çarşamba, perşembe, cuma ve cumartesi şeklindedir. Bu nedenle ayarıda bu şekilde bir tekerleğin etrafına yazılmış gibi gün isimleri birbirini takip eder.
Gerekli ayarlamalardan sonra ayarları kaydedip saati çalıştırmak sadece "Ayar Gir" butonuna bas(bırak). Saat çalışmaya başlayacaktır.
araçlarından biri olan LCD modül kullanımı olanağı ile yine RS485 üzerinden
saniye, dakika ve saat gibi zaman bilgileri ve haftanın günü (pazartesi, salı...),
gün, ay ve yıl gibi tarihsel bilgileri (4x20 mavi arkadan aydınlatmalı)
LCD modül arayüzü üzerinde sunacağız.
Birçok benzerleri gibi gerçek zaman saati olarak geliştirilmiş Dallas
Semiconductor veya Maxim firması tarafından geliştirilmiş olan
çip sadece birkaç eleman yardımı (pil ve 32.768Khz kristal) ile artık
yıl hesabı dahil saniye, dakika, saat (12 veya 24), haftanın günü,
ayın günü, ay, yıl gibi değişkenlerin sayılabildiği gibi ek olarak bazı
parametrelerin saklanabileceği 56 baytlık pil desteği tarafından
korunan ram bölgeside yer almaktadır.
Zaman ve tarih bilgileri 0x00 ile 0x06 ve kontrol registeri olarak kullanılan
0x07 adreslerinde saklanmaktadır.
Saat ve tarih bilgileri BCD biçiminde saklanmaktadır. (onluk -ikilik sistem)
DS1307 çipi üzerinde i2c bağlantıları yanında, bir çıkışı programlanabilir
saat çıkış bacağı (referans saat çıkışı), 32.768Khz için saat kristal bacakları,
yedekleme pili için besleme bacağı yanında tabii ki normal besleme
için +5V ve GND bacaklarıda var.
DS1307 çipi içinde otomatik besleme takip sistemi yer alıyor. +5V bacağındaki
besleme gerilimi 1.25x Vpil (yaklaşık olarak 3.75V) gerilimine ulaştığında
besleme işlemini otomatik olarak pil beslemesine aktarmaktadır.
Vcc (+5V) gerilimi 1.25x Vpil gerilimi üzerine ulaştığı zaman
i2c hatları DS1307 tarafından aktif hale getirilmektedir.
Sadece burada belirtilmesi gereken nokta DS1307 çipi ilk defa çalıştırıldığında
zamanlama sayıcıları çalışmaya başlamaz. Bunun için saniye registerinin
(0x00 adresi) 7.biti üzerinde bulunan (CH) çip tutma bitinin "0" yapılarak
sayıcıların aktif hale getirilmesi gerekiyor. Yani yapılması gereken
tek şey ayar gir ve ayardan çık. Bu işlem sonunda saniye kendiliğinden
okunup ve okuma esnasında CH biti sıfırlandığından sadece tekrar
yazılarak bu CH biti (0x00 adresindeki 7. bit) sıfırlanmış olur.
(okuma esnasında 0x00 adresinde 7. bit sıfırlanarak maskelenmektedir).
İkinci olarak seçilmesi gereken 12/24 saat modudur. Bunun için 0x02 adresindeki
saat baytında yer alan 6.bit "0" yapılarak 24 saat modunda çalıştırılması sağlanır.
Bu işlemde aynen ayar giriş çıkışı ile yerine getirilir.
(okuma enasında 0x02 adresindeki 6. ve 7. bitler sıfırlanarak maskelenmektedir.
Kontrol registeri bu projede kullanımadığından girilmeyecektir.
Bu bölüm ancak referans saat sinyali olarak DS1307 kullanılmak
istendiğinde DS1037'nin out çıkışının ayarlanması için gereken
paremetrelerin ayarlanması için kullanılacağı zaman ayarlanır.
(örneğin işlemcinin sürekli DS1307 okuması yerine program
olarak oluşturulacak saat programında zamana göre saat ile
DS1307'nin eşleşmesinde kullanılmak üzere gerekir).
DS1307 üzerine ayarlar yazılırken (CH) biti "0" ve (12/24) "0" olacak
şekilde yazılmasına dikkat etmek gerekir. Devre ilk kez çalıştırıldığında
DS1307 saymaya başlamayacaktır. DS1307 veri kağıtlarında (CH) biti "1"
konumda olduğu belirtilmektedir. Bu problemi çözmek için yapılması
gereken sadece "AYAR GİR" ve "AYAR TAMAM" işlemini yap.
Yani AYAR butonuna iki kez bas bırak. Zaten saat ve tarih ayarını yapmak gerekecek!!
Proje normalde 2 modülden oluşuyor. Birinci modül LCD ekran bölümüdür ki
"RS485 (Seri) LCD Çevirici" projesi ile gerçekleştirildi. Ama baskı devrede bazı değişiklikler yapıldığı halde program aynen kullanıldı. (isp konnektörü 2x3 şeklinde).
Anlaşılacağı üzere de ikinci modül
"ATMega8 ve DS1307 çipi ile RS485 saat kaynağı"
projesidir ve aynı isim altında gerçekleştirilmiştir.
Saat modülü kabini IC1 atmega8 işlemcisi oluşturuyor. Bu işlemci için gereken
saat kaynağı için XTL1 (3,6864MHZ) kristal, C6 ve C7 (27pF) kondansatör birlikte kullanılmakta. Devrenin çalışmasını göstermek üzere D2 ve R2 (1k) direnci kullanılır.
IC1 üzerine bağlı S1 butonu (ayar butonu)üzerindeki R5 (10K) direnci butonun
pull-up direnci görevini görürken, C11 (100nF) kondansatörü tuş için giriş
parazitlerini bastırır. Aynı şekilde S2 (saat) ve S3 (dakika) saat ayarlama butonlarını oluşturur ve butonlara bağlı C12 ve C13 parazitik etkileri bastırmak için işlev görürler.
İşlemcinin seri haberleşme (UART) üzerinden IC2 ST485 arayüz çipine bağlanmakta.
Bu çipin girişine bağlı bulunan R1 (120OHm) ile hat empadansının uygunlaştırılması sağlamakta. İşlemci programı ile bu çip sadece sinyal gönderece biçimde şekillendirilmiştir.
IC1 işlemcinin TWI bacaklarına bağlanmış olan IC3 (DS1307)
(projenin asıl konusudur) i2c bağlantısı üzerinden iletişimi sağlar.
i2c bağlantısı üzerindeki R3 ve R4 (10k) dirençleri i2c hattının pull up
ihtiyacını karşılar.IC3 üzerine bağlı XTL2 (32,768KHz) kristal bu çip için
gereken saat referans sinyallerin üretir. Ayrıca IC3'ün Vbat bacağına
bağlı PIL1 (3V) pili ile IC3'ün ihtiyacı olan destek gerilimini sağlar.
D1 girişdeki besleme kutbu sorunun ortadan kaldırarak doğrultma sağlar.
IC4 ve buna bağlı olan C2,C3,C4 ve C8 devre için gereken 5V besleme gerilimini üretir.
IC1'e bağlı olan ISP konnektörüde artık bilindiği gibi işlemcinin programlanmasında kullanılır.
--LCD Modülü:(şekil-9'a bak)
LCD modül kalbini ATtiny2313 oluşturuyor. İşlemci XTL1 (3,6864MHz)
kristal ile birlikte C3 ve C4 (27pF) kondansatörler saat kaynağı olarak kullanır.
P1 LCD için (14P) bağlantı konnektörüdür. R1 LCD parlaklık ayarı içindir.
C1 (10µF) kondansatör LCD Vo ( parlaklı ayarı) ucu için filtre görevini görür.
D1 (LED) ve R2 (1K) LCD kartı için monitörolarak kullanılır.
P3 besleme giriş konnektörüdür. D2 köprü diyot besleme gerilimi için kutuplama
sorununu ortadan kaldırır ve IC2(7805) LCD modül için 5V besleme gerilimini üretir.
P2 ve P2_2 konnektörleri ATtiny2313 ve ST485 arasındaki seri bağlantıyı (UART) sağlar.
R4 (1K) ve D3 (LED) RS485 kartına besleme geldiğini gösterir. IC3 (ST485) seri-RS485 dönüştürücü arabirimidir. P4 RS485 için giriş konnektörüdür(6p2c veya 6p4c) ve
buna bağlı olan R3 (120R) empedans uygunlaştırıcıdır.
R5 ve P5 RS485 için çalışma modu seçicidir.(köprü yardımı ile )
Geri kalan kondansatörler besleme hatları üzerinde filtre görevini yerine getirirler
"RS485 (Seri) LCD Çevirici" ve "ATMega8 ve DS1307 çipi ile
RS485 saat kaynağı" projeleri bu proje için kaynaktır.
Devre yapılırken buton kartı en kolay yapılan olacaktır.
Butonlar karta lehimlendikten sonra, buton bacaklarına C11,C12 ve C13
kondansatörlerini lehimlemek yeterli olacaktır. Ve karta şerit kablo ile
küçük bir konnektörü takmak yeterlidir.
Devre yapımı için fazla bir şey söylemeye gerek yok. Çipler için soket
kullanılması yerinde olacaktır. Kristallerin topraklanması çalışma
esnasında oluşabilecek sorunları ortadan kaldıracaktır.
LCD kablosu için ekran konnektör bağlantıları küçük bir kart üzerinden
gerçekleştirldi. Ama bu kart o kadar gerekli değildir. Serit kablo doğrudan
LCD ekran bağlantı noktalarına lehimlenebilir
--Saat Modülü Malzeme Listesi:
120R | R1 |
1K | R2 |
10K %1 | R3,R4,R5 |
10µF/25V | C2,C3 |
100nF | C1,C4,C5,C7,C9,C10,C11,C12,C13 |
27pF | C6,C7 |
Atmega8 | IC1 |
ST485 | IC2 |
DS1307 | IC3 |
7805 | IC4 |
2W10M köprü | D1 |
3mm kırmızı LED | D2 |
3,6864MHz kristal | XTL1 |
32,768Khz kristal | XTL2 |
6'li header | isp |
4'lü sıra pin | P3 |
Bas-bırak buton | S1,S2,S3 |
tip 0 klemens | P2 |
RJ12 konnektör 6p2c veya 6p4c gibi | P1 |
3V Lityum düğme pil | PIL1 |
düğme pil soketi | - |
--LCD Modülü Malzeme Listesi:
120R | R3 |
1K | R2,R4 |
10K | R5 |
10K yatık Trimpot | R1 |
10µF/25V | C1,C5,C7,C10 |
27pF | C3,C4 |
100nF | C2,C6,C8,C9 |
2W10M veya benzeri köprü diyot | D2 |
ST485 | IC3 |
7805 | IC2 |
ATtiny2313 | IC1 |
3,6864Mhz kristal | XTL1 |
3mm LED | D1,D3 |
6p6c veya 6p2c RJ12 konnektör | P4 |
tip 0 klemens | P3 |
14P konnektör (erkek) | P1 |
10P konnektör(erkek) | P2,P2_2 |
2x3 sıra pin(erkek) | P5,isp |
4x20 LCD modül (kablosu ile) | - |
P5 için köprü | - |
P2 ve P2_2 için kablosu(konnektör ile) | - |
Malzeme listesi. Burada işlemci için soket ve 9V adaptörler verilmemiştir.
Entegre soketi listede verilmemiş kullanımı kişinin tercihine kalmış bir durum.
Ayrıca buton kartı ile işlemci kartı arasındaki bağlantı ve RS485 için
gereken bağlantı kişinin kendi tercihine bırakılmıştır.
Sistemin çalışması konusunda;
İşlemci saniyede 2 kez DS1307 üzerinden saniye, dakika, saat ,tarih verilerini alıyor. Saniye değiştiği zaman saat bilgisini ekrana gönderiyor.
Verileri her virgül arası bayt biçiminde olarak;
Saat bilgisi:Satır kodu,saat 10 hanesi, saat 1 hanesi, ayıraç,dakika 10 hanesi, dakika 1 hanesi, ayıraç,saniye 10 hanesi, saniye 1 hanesi, gerektiği kadar boşluk, satır sonu kodu (gönder kodu).
Tarih bilgisi:Satır kodu, gün 10 hanesi, ayıraç, gün 1 hanesi, ay (isim olarak),ayıraç, yıl(sadece 20xx için),satır sonu kodu (gönder kodu).
Haftanın günü bilgisi: Satır kodu, haftanın günü (isim olarak),satır sonu kodu (gönder kodu)
Bu bilgiler her saniye ve ayar yapılırken tuşun her bırakılışında yenilenmektedir.
Ayar Gir/Tamam | Basıldığında Ayar moduna girer (ekran yenilemeyi durdurur) ve tekrar basıldığında ayar modundan çıkıp zaman gösterim moduna girer (ayarlar DS1307'e kaydedilir ve saat çalışmaya başlar) |
Ayar Seç | Ekran üzerinde ayarlanaca öğeyi seçer (saat, dakika, saniye...) |
Ayar Yap | Ekran üzerinde seçili öğeyi ayarlar. |
Minimum buton ile işlemin yapılması sağlandığından "Ayar Yap" işleminde sayma işlemi sadece ileri doğru yapılmaktadır.
Saat ve tarih ayarı için;
"Ayar Gir" butonuna bas. Ekranda saat hanesinin olduğu bölge
Büyük ve küçük karakteri ile şekil-19'da görüldüğü gibi işaretlenir.
Ayarlamak istenilen birim ne ise (saat,dakika,saniye, gün, ay, yıl ve haftanın günü)
o birime gelmek için "Ayar seç" butonu kullan. Bu birimlerin sıralaması şekil 18'de gösterilmiştir. Şekil-19,Şekil-20 ve şekil-22 "Ayar gir" butonu kullanılarak seçilmiş ayar görüntüleridir.
Not:Ayar işlemi esnasında saat gösteriminin durduğunu ve ekran üzerindeki
ayar ne ise o noktadan itibaren saatin sayacağını unutmayın.
"Ayar Yap" butonuna:
Bu butona basıldığında hangi birim ayarlanıyorsa ("Ayar Seç" butonu ile seçilmiş) o
birim 1 artırarak sayar. Ama diğer birimler bundan etkilenmez. Yani dakika ayarlanırsa sadece dakika üzerinde işlem yapılır.
Saat: Butona her bas/bırakta 1 artırarak sayar. Eğer saat "23" olursa sayma "00"'dan
devam eder.
Dakika:Butona her bas/bırakta 1 artırarak sayar. Dakika "59" ulaştığı zaman, sayma "00"'dan devam eder.
Saniye:Butona her bas/bırakta 1 artırarak sayar. Dakika "59" ulaştığı zaman, sayma "00"'dan devam eder.
Gün:Butona her bas/bırakta 1 artırarak sayar. Burası biraz değişik. Aslında yıl ve
aya göre değişmesi gerekiyor. Ama günün ayarı aydan önce olduğu için ne yazık ki
bu ay ayarını siz yapmanız gerekebilir. Takvimi doğruluğu açısından bulunduğunuz
günü doğru girmeniz gerekiyor. Örneğin 31 kasım girmemeye çalışın. Burada gün "31" olduğu zaman "01" tarihine devam eder.
Ay:Ay isimleri kullanıldığından, butona her bas/bırakta sonraki ay ismi ile ekran yenilenir. Ocak, şubat, mart, nisan, mayıs, haziran, temmuz, ağustos, eylül, ekim, kasım, aralık ay isimleri birbirini izler. "Aralık" ayından sonra ayar "Ocak"
ayından deva eder.
Yıl: Yıl olarak sadece son iki rakamı göz önüne alınmıştır. Bu nedenle sadece son iki rakam ayarlanıyor. Butona her bas/bırakta 1 artırarak sayar. Yıl olarak "2099" tarihine ulaştığında "2000" tarihinden devam eder.
Haftanın günü:Haftanın günleri isim olarak kullanıldığından birbirini takip eden bir düzünde olarak pazar, pazartesi, salı, çarşamba, perşembe, cuma ve cumartesi şeklindedir. Bu nedenle ayarıda bu şekilde bir tekerleğin etrafına yazılmış gibi gün isimleri birbirini takip eder.
Gerekli ayarlamalardan sonra ayarları kaydedip saati çalıştırmak sadece "Ayar Gir" butonuna bas(bırak). Saat çalışmaya başlayacaktır.
Arduino Yazılım Kod.. İNDİR
No comments:
Post a Comment