Gelişen mikrokontrol teknolojileri ve artan bilgi birikimi sayesinde geliştirici düzeyinde daha yaygın kullanımına olanak tanımıştır. Burada elimden geldiği kadar bazı örnekler sunmaya çalışacağım... Görüleceği gibi ilk örneklerimizde çoğunlukla ASM üzerinde iken daha sonraları C üzerinde örnekler yer almaktadır. Hatta ilerleyen zamanlarda Arduino örneklerinin yer alması kaçınılmaz olacaktır.

10 Kasım 2008 Pazartesi

24 Saat Modunda LED'li Dijital Saat

Devrenin genel tanımı


Devre 6 tane 7 parçalı LED ekran üzerinde 24 saat modunda saati göstermek üzere tasarlandı. Güç açıldığında sıfırlama için ek bir elemana ihtiyaç yok. Çünkü bu işlem işlemcinin yapısal özelliğinde var. R1-R7 dirençleri LED göstergenin akım sınırlama dirençleridir ve LED göstergeler doğrudan işlemciden sürülür. Sadece TARAMA işlemi için Q1-Q6 Transistörleri üzerinden LED göstergelerin ortak anot uçları sürülür. Bu şekilde tarama işlemi gerçekleştirilir. Ayrıca tarama işleminin dakikalar ucu üzerinden buton tarama uçları D11 ve D12 diyotları üzerinden saat ve dakika ayarı için S1 ve S2 butonları sürülür. Ve de en önemlisi D13 üzerinden 9V civarında DC alınan gerilim C5 ve C6 kondansatörleri üzerinden süzülerek IC2 regülatörüne alınarak 5V DC gerilim elde edilir ve bu gerilim C7 ve C8 üzerinden süzülerek devrelere ulaştırılır. D7 ve D8 LED'leri ve D9 ve D10 LED'leri seri bağlı R10 ve R13 dirençleri üzerinden sürekli ışık verir. Buradaki LED ekranlar kırmızı olduğundan D7-D10 LED'leride kırmızı.



Şekil-1 :Devre çalışırken görünümü. Devrenin çalışması hakkında bir fikir verecektir
.

Sistemin kalbi olan IC1 (AT90S2313) entegresi tüm saat sayma, ekranları gösterme ve buton algılama işlemlerini yerine getirir. Bu entegreye bağlı olan C2,C3 ve XTL1 işlemci için gereken saat sinyallerini oluşturur.

Temelleri


24 saatlik saat modunda
-Her 60 saniye 1 dakika,
-Her 60 dakika 1 saat,
-24 saatde 1 günü oluşturur.
buna göre burada 6 adet sayaç oluşturuyoruz. Yani ekranda gösterim kolaylığı açısından onluk gösterimi kullanıyoruz. (Tabii ki direkt olarak sayıcıyı hex kodunda kullanırsak ve bu sayıcıların sonucunu ekranlara yazmayı göz önüne alırsak 3 sayaç ile de halledebiliriz. Tabii ki bu hex-onluk çeviriciye ihtiyaç gösterir. Ve programı karıştırır.) yani
saniye birler basamağı
saniye onlar basamağı
dakika birler basamağı
dakika onlar basamağı
saat birler basamağı
saat onlar basamağı

işlem basit
İşlemcinin timer1 kesme kullanılarak sistem saatinden 1 saniye üretilir.

1 saniyelik bir süre ile saniye birler basamağı yazılır

-Saniye 1'ler basamağı 10'a ulaştığında saniye 1'ler basamağı sıfırlanır ve saniye10'lar basamağı 1 artılır.

-Saniye 10'lar basamağı 6'a ulaştığında saniye 10'lar basamağı sıfırlanır ve dakika 1'ler basamağı 1 artırılır

-Dakika 1'ler basamağı 10'a ulaştığında dakika 1'ler basamağı sıfırlanır ve dakika 10'lar basamağı 1 artırılır.

-Dakika 10'lar basamağı 6'a ulaşınca dakika 10'lar basamağı sıfırlanır ve saat 1'ler basamağı 1 artırılır.
-Buraya kadar işler kolay saat saymada iki durum dikkate alınır.

1. Saat toplam da 24 saate gelip gelmediğine bakılır. Bu durumda saat 1 ve 10'lar hanesi sıfırlanır.

2. Saat toplamada 24 saate gelmediyse
Saat 1'ler hanesi 10'a ulaştığında saat 1'ler hanesi sıfırlanır ve saat 10'lar hanesi 1 artılır.
Saat 10'lar hanesi sadece 1. durum oluşuna kadar sayacı artırılır.
Sonuçta saat sayma sistemi 23:59:59'a ulaştığında bir saniye sonra 00:00:00'a geçecektir. Yani bir günlük süreyi oluşturur.

Gösterme işlemi


Burada basitçe 1 saniyelik kesme sayacından bağımsız olarak çalışan 6 adımlık basit bir sayaç var. Her sayaç değişiminde 1 ekran çalışacaktır. Saat sayaçlarından bilgi alınır, bu bilgi LED ekranların gösterimine uygun hale getirilir. İşlemcinin LED ekran portuna yazılır ve hangi hanenin bilgisi ise o hane ile ilgili port lojik-0'a çekilerek transistör aktif hale getilir. Bir geçikme sağlanarak ekranda bilgi kalır. Sonra tekrar ilgili port lojik-1'e çekilerek transistör kapatılır. Örneğin saniye 1'ler basamağı için;
saniye 1'ler sayacı bilgisini okur, bu bilgiyi ekran için uygun hale getirir(yani sayaç ile ekran görüntüsünü oluşturur) bu bilgiyi PB portuna yazılır. Saniye 1'ler hanesi için PD0 portu lojik-1 seviyesine çekilir. Bu R15 üzerinden Q6 transistörünü iletime sokar. PB portunan yazılan lojik-0'lara göre D6 ekran şekli ortaya çıkar. Bu noktada bir zamanlayıcı devreye girer. Zamanlayı bitiminde PD0 portu lojik-1 seviyesine çekilerek Q6 kesime gider ve D6 söner. Hane gösterim sayacı bir atırılır ve bir sonraki hane için hazırlıklara geçer. İşin güzel tarafı tüm işlemler işlemci tarafından yapıldığından hane taraması birbirini takip etmesi gerekmiyor. Yani saniye 1, saniye 10, dakika 1, dakika 10, saat 1, saat 10 gibi veya tersi gitmesi gerekmiyor. Karma olabilir yeterki her biri bir kez tarama sürecine katılmış olsun.


Şekil-2:LED ekranı taramada 1. yöntem


Şekil-3:LED ekranı taramada 2. yöntem


Klasik tarama yöntemi şekil_2'de yer aldığı biçimdir. 1,2,3,4,5,6 şeklinde tarama.
İşlemi birinci dijit verisi PB'ye konur, sonra birinci dijitin ortak ucu aktifleştirilir. Bir süre beklenir. Birinci dijit kapatılır. Sonra diğer dijitler için işlem tekrarlanır. En sona gelindiğinde tekrar başa dönülerek tekrar edilir. Az sayıda dijit varsa kolay bir yöntemdir. Peki dijit sayısı artarsa ne olur. O zaman ekranda kırpışma olabilir.
Bunu önlemede diğer yöntem olarak şekil-3'de gösterilen sistem kullanılabilir. Temelde birinci dijit işlemleri aynen uygulanır. Sonraki dijite gelindiğinde atlanarak tek sayılı dijitlere devam edilir. Sonunda başa dönüşte birinci dijite değilde ikinci dijite dönüler ve çift sayılı dijitler taranır. Çift sayılı dijitlerin sonunda tek sayılı dijitlerin başına yani birinci dijite dönülür.
Basitçe tarama 1,3,5,2,4,6 şeklinde yapılır. (televizyondaki satırların taranması gibi)

Şema

Devre şeması aslında açık ve kendini anlatmaya yinede yeterli. IC1 sistemin kalbi olarak ATMEL firması tarafından üretilen AT90S2313 oluşturuyor. (Not:Bu tüm devre ATtiny2313 ile değiştirilmekte) Referans 1 saniye olsun butonlardan saatin ayalaması olsun, saat sayaçları ya da ekranda gösterme için LED'lerin sürülmesi olsun tümünü bu işlemci yüklenmiştir. IC2 zaten çok tanınan ve bilinen 7805 olarak 5 voltluk regülatördür. Fazla güç çekilmediği için soğutucuya ihtiyaç duyulmamıştır. Normalde işlemci XTL1 ile 250 ns'lik referans sinyalini üretir. (4000000 bölünür) Timer1 ve ek bir sayaç yardımıyla 1 saniyelik saat sinyali üretilir.


Blok şeması



Şekil-4:Devrenin şeması


Ayar Butonları

Bu noktada fazla birşey yok. Sadece S1 ve S2 bas bırak butonlar aynı anda basıldığında ekranlarda gösterim sorunu oluşturmaması için D11 ve D12 diyotları üzerinden sürülür. Bağlı olan ortak uç butonun basılıp basılmadığına bakar. Yani işlem basit; Nasıl olsa ekrandaki göstergeler için sürekli bir tarama sinyalimiz var, Tarama işlemi yapan alt programlarda port lojik-0 çekildiği (PD2 veya PD5) zaman PB7'nin lojik-0 seviyesinde olup olmadığına bakar. Eğer PD5 lojik-0'sa saat sayacı 1 artar (24 saat kontrolu dikkate alarak, sürekli basılı tutulursa hızlı sayar) PD2 lojik-0'sa dakika sayacı 1 artar. (60 dakika kontrolu ile,sürekli basılı tutulursa hızlı sayar). Bu sayaçlar (saat ve dakika) butonlar ile ayarlandığında birbirini etkilemez.

Saat Dakika

Şekil-5:Butonları kullanırken dikkat.


Devre Yapımı

Devre yapımında kritik bir eleman yok. Baskı devre kartı üzerinde geçekleştirildiğinde standart eleman yerleşimi göz önüne alınarak devre kurulabilir. Bu noktada diğer devre teknikleri kullanıldığında bacakların doğru bağlanması önemlidir. Tabii ki kristal topraklanmalıdır. Sistem 9V besleme ile yaklaşık 60mA civarında akım çekmekte. Bu nedenle 7805 üzerinde ek bir soğutucuya ihtiyaç duyulmamaktadır.
Tüm dirençler çeyrek wattır.
Besleme konusunda bir sorun oluşturmayacağınızı düşünüyorsanız girişteki köprüyü devre dışı bırakabilir veya tek bir diyotla değiştiribilirsiniz. (Kendi besleme kaynağınız varsa ve devreyi kendiniz kullanacaksanız) LED ekranlar ortak ucu ortada ortak anottur. Bacak bağlantıları uyan başka bir LED ekran kullanılabilir. Farklı renklerde kullanılacaksa R1-R7 direnç değerlerini değiştirmek gerekebilir.


Şekil-6:Devrenin yerleşim planı



Şekil-7:Devrenin baskı devresi şekli



Şekil-8:Kartın alttan görünümü (Kartın altı lehimleme kolaylığı ve korozyana karşı kaplanmış)



Şekil-9:Eleman ve yolların birlikte görünümü


Devre Elemanları



220RR10,R13
470RR1,R2,R3,R4,R5,R6,R7
1KR8,R9,R11,R12,R14,R15
27pFC2,C3
100nFC1,C5,C7
10µFC4,C6
1056AUR1D1,D2,D3,D4,D5,D6
3mm LEDD7,D8,D9,D10
1N4148D11,D12
BC327Q1,Q2,Q3,Q4,Q5,Q6
B125C1500D13
AT90S2313 (ATtiny2313)IC1
7805IC2
butonS1,S2
4Mhz kristalXTL1



Malzeme listesi. Burada işlemci için soket ve 9V adaptör verilmemiştir. Kaliteli 20 bacaklı bir soket oluşabilecek problemlerin önüne geçecektir.

EK:
İşlemci hakkında bilgi

Devre için dosyalar

24 Saat Modunda LED'li Dijital Saat için dosyalar-Birleşik

Not:1056AUR1 bacak bağlantıları ekranın üstten görünümüdür. Yani baskı devrenin eleman yüzü üzerinden göründüğü gibidir.

Elektronik üzerinde tecrübesi olan kişiler için zaten o eleman yerini bunu kullanmış veya yüzey montaj olmuş veya delikli kart üzerine yapılmış bu tür şeyler kişinin olanak ve tercihine kalmış şeyler.
Bu devrenin yapım sorumluluğu size aittir. Devre yapıldı ve çalışıyor

2 yorum:

Adsız dedi ki...

KARDEŞ BUNUN BASKI DEVRE ŞEMASI NASIL ÇIKTIDAN BIREBIR BOYUTUNU ALAMIYORUM YARDIMCI OLURSAN SEVINIRIM TAM SAYFA VERIO BIREBIR NASIL ALABILIRIM ... SIMDIDENN TESEKKUR EDERIM ...

Kabil ATICI dedi ki...

Her proje başlığının altında yer alan bağlantılarda projenin baskı devresi, şeması, sayfanın projenin PDF formatında dosyaları ve hatta gerekli ise proje ile birlikte dosyalar verilmektedir. Bu tek bir winrar dosyası şeklindedir. (bağlantı rapidshare sitesine indirme için yöndirecektir.)
PDF formatındaki sayfanın çıktısı işinizi görecektir

Translate

Sayfalar

Etiketler

İzleyiciler