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.

16 Kasım 2008 Pazar

AVR ile LED Ekranlı Sayıcı


Devrenin genel tanımı

Devre 6 tane 7 parçalı LED ekran üzerinde girişindeki darbeleri sayarak göstermek üzere tasarlandı. 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. Ve de en önemlisi D7 üzerinden 9V civarında DC alınan gerilim C7 ve C8 kondansatörleri üzerinden süzülerek IC2 regülatörüne alınarak 5V DC gerilim elde edilir ve bu gerilim C5 ve C6 üzerinden süzülerek devrelere ulaştırılır. .



Şekil-1 :Devre çalışırken görünümü. Devrenin çalışması hakkında bir fikir verecektir. Kart üzerindeki probların üstteki grubu sayma sinyali, alttaki prob grubu besleme içindir.


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

İşlemcinin sayma giriş bacağı PD2(INT0) gelen sinyalleri bakar. Sinyal değişimlerini izler. Düşen kenarda INT0 kesmesi aktif hale gelir ve dallanır. Birler hanesini artırmayı sağlayacak sayıcı bayrağını aktifleştirir. Her bir birler hanesi 1 artırıldığında bayrak sıfırlanır. Sayıcı sistem basit bir şekilde çalışır. Basit bir şekilde 6 tane bellek gözesi ayrılır. Sayma işlemi bu bellek gözelerinde yerine getirilir. Yani her bir bellek birler, onlar,... yüzbinler gibi işlev görür.
Buna göre burada 6 adet sayaç oluşturuyoruz. Yani ekranda gösterim kolaylığı açısından onluk gösterimi kullanıyoruz(sayma ve gösterim onluk sisteme göre düzenlenmiştir). (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
birler basamağı
onlar basamağı
yüzler basamağı
binler basamağı
on binler basamağı
yüz binler basamağı
işlem basit
İşlemcinin int0 kesme kullanılarak gelen her darbede bir üretilir ve bu sayılır.


Birler hanesi 1 artılır.

-Birler hanesi 10'a ulaştığında, birler hanesi sıfırlanır ve onlar hanesi 1 artırılır.

-Onlar hanesi 10'a ulaştığında, onlar hanesi sıfırlanır ve yüzler hanesi 1 artırılır.

-Yüzler hanesi 10'a ulaştığında, yüzler hanesi sıfırlanır ve binler hanesine 1 eklenir.

-Binler hanesi 10'a ulaştığında, binler hanesi sıfırlanır ve onbinler hanesine 1 eklenir.

-Onbinler hanesi 10'a ulaştığında, onbinler hanesi sıfırlanır ve yüzbinler hanesine 1 eklenir.

-Yüzbinler hanesi 10'a ulaştığında sadece bu hane sıfırlanır.
Sonuçta sayma sistemi 999999'a ulaştığında, sonra 000000'a geçecektir..

Şema

Devre şeması yeterince açık. IC1 (AT90S2313) devrenin kalbini oluşturuyor. Giriş sinyalini sayma, göstergelerin göstermesi ve sıfırlama anahtarına basıldığında sayıcıların sıfırlanmasını sağlar. 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. Sistem şu anda 4Mhz XTL1 ile işlemci için gereken saat sinyalini üretir Bu sinyalide tüm işlevlerde kullanılır. Devreden görüleceği üzere birşey yok, asıl işi gören yazılım. Kesme servis alt programı, ana işlem programı, sayıcı alt programları, gösterge alt programı olarak tüm işi görür.(Tabii donanımla uyumlu olarak). Ama bu bölümü anlatmayacağım, isteyen kendisi yapabilir.


Sayıcının blok şeması



Şekil-2:Devrenin şeması


Buton

Sistem sıfırlaması S1 butonu üzerinden sağlanır. Yani sayıcı istenilen bir anda sayıcıların dolayısı ile ekranın sıfırlanmasını sağlar. PB7 işlemci bacağı sıfırlama sinyali için işlemci bekler. Ve işlemci butona basıldığında sıfırlama işlemini devreye sokar.

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-3:Devrenin yerleşim planı



Şekil-4:Devrenin baskı devresi şekli (Üstten görünüm)



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


Devre Elemanları

470RR1,R2,R3,R4,R5,R6,R7
1KR8,R9,R10,R11,R12,R13
27pFC2,C3
100nFC1,C4,C5,C8,C9
10µFC6,C7
1056AUR1D1,D2,D3,D4,D5,D6
BC327Q1,Q2,Q3,Q4,Q5,Q6
B125C1500D7
AT90S2313 (ATtiny2313)IC1
7805IC2
butonS1
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.




Besleme ister doğrudan adaptör bağla, istersen fiş-priz bağlantısını kullan. Ama devre kutu içine konulacaksa bu fiş-priz bağlantısı bağlantısı kullanışlı olacaktır.
Ekler:


AVR ile LED Ekranlı Sayıcı için dosyalar-birleşik

AT90S2313 hakkında ayrıntılı bilgi için


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.

Bu devrenin yapım sorumluluğu size aittir. Devre yapıldı ve çalışıyor. K.A....

Hiç yorum yok:

Translate

Sayfalar

Etiketler

İzleyiciler