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.

22 Kasım 2008 Cumartesi

AVR Seri LCD Çevirici


Devrenin Temeleri

Devremizi basitçe inceleyecek olursak
Besleme; devrenin çalışması için olmazsa olmazı..
RS232; bilgisayar ile işlemci haberleşmesi için seviye uygunlaştırıcı
İşlemci; bilgisayar ile LCD modül arasındaki köprü AT90S2313
LCD; bilgisayardan gelen bilgilerin görüntülendiği yer
Devre ilk açılışında işlemci LCD modülü sıfırlar ve veri yazmak için hazırlar. Bilgisayardan gelen veri durumuna göre bu ilk gönderildiğinde satır seçimi ve sonrakiler ekrana yazılaması gereken veridir. Ve son olarak satır sonu verisini alır ve işlemci bunlara uygun olarak LCD modülü kontrol eder. Seri port için söylenecek fazla bir şey yok. Bu bölüm sadece bilgisayar seri portu ile ve işlemcinin seri portu arasında bir lojik seviye çevirmesinden başka bir şey yapmaz. LCD modüller hakkında daha ayrıntılı bilgi için internet sayfaları ve LCD modül üretici sayfalara oldukça bilgi sunacaktır.

LCD ler

LCD temelde sıvı kristalleri üzerine kurulu yapıdır. Yani basitçe iki elektrot yüzeyi arasına bir sıvı doldurulur. Bu sıvıyı oluşturan bileşenler normalde düzensiz bir yapıda yerleşir. Ama bu elektrotlar üzerine bir gerilim uygulandığında bu sıvıyı oluşturan bileşenleri belli bir düzende yerleşime zorlar. Bu tek başına görüntü oluşumuna yeterli değildir. Önemli bir yapı olarak özel ışık filtreleri bu noktada devreye girer. Işığı kutuplama olarak tanımlanan işlemi gerçekleştiren bu elemanlar ışığın belli bir düzende geçmesini sağlar. Eğer ele edebilirseniz bu iki elemanın belirli açılarda birbiri üzerine yerleştirildiği zaman ışığı geçirdiği başka açılarda geçermediğini görebilirsiniz. Hatta bunu LCD kullanan hesap makinelerinde de görebilirsiniz.

Aslında bu elemanlar oldukça kullanışlı ve düşük güç harcayan yapıları vardır. İmalatı göreceli olarak daha basit ve hızlıdır. Şu anda günümüzdü kol saatleri, hesap makineleri, masa saatleri gibi bir çok kullanım alanı bulanbilen bu ürün düşük güç harcaması sayesinde küçücük bir pil sayesinden uzunca zaman çalışabilmektedir.

Bu noktaya kadar her şey güzelde bu elemanların sürülmesi yani çalıştırılabilmesi biraz karmaşık yöntemleri gerektirir. Bu da gelişen elektronik sayesinde kendiliğinden ortadan kalktı. Hatta artık LCD devrelerini kendiniz sürmeniz bile gerekmeyen modüller mevcut. Burada bu modüllerin bir mikrokontroller (AT90S2313)üzerinden kontrol ve bir seri port ile birlikte bilgisayardan veri aktarılması, yani bilgisayardan LCD üzerine yazı yazıdıracak bir devre oluşturacağız. Kullanacağımız LCD karakter tipi bir yapıdır. Yani sadece karakter göstermek üzere tasarlanmış ve yapılmış. Karakterler önceden belirlenmiş ve LCD rom'una kaydedilmiş. Bizim yapacağımız sadece yazdırmak istediğimiz karakteri ve yerini berlirleyip, bununla ilgili bilgiyi LCD modüle göndermektir.


Şekil-1 :2x20 LCD modülün önden ve arkadan görünümü.


Şekil-2 :4x20 LCD modülün önden ve arkadan görünümü.


LCD modüllerde değişik haberleşme yöntemleri mevcuttur. Burada paralel bağlantıyı kullanacağız. Yani 8 bit veri hattı, 1 seçme hattı, 1 yaz/oku hattı ve 1 yazıcı seçme hattını kullanacağız. Buna ek olarak kullandığımız LCD modülde 1 tanede kontras ayarlama hattı mevcuttur. Bu modüller üzerinde arka aydınlatma için besleme hatları var ama kullanmadık. Çünkü çok fazla akım çekiyor. Daha fazla ayrıntı için internet üzerinde ayrıntılı bilgi bulabilirsiniz.


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

Sistemin kalbi olan IC1 (AT90S2313) entegresi tüm saat seri haberleşme ve LCD kontrol işlemlerini yürütür. Bu entegreye bağlı olan C2,C3 ve XTL1 işlemci için gereken saat sinyallerini oluşturur.

Şema

Devre şeması aslında açık ve kendini anlatmaya yinede yeterli. U2 devrenin kalbini AT90S2313 oluşturuyor. U1 bilgisayar ve işlemci arasındaki RS232 arabirimdir. R1 LCD ekranın kontrast ayarı içindir. İstenilen kontrast için ayarlanabilir. U3 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. Aslında seri port bölümünü bir yana bırakacak olursak işlemci ve LCD ekran birlikte pille beslenebilecek kadar küçük akım çekmekte.


Seri LCD dönüştürücü blok şeması



Şekil-4:Devrenin şeması


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 çok az akım çeker (LCD üzerindeki aydınlatma kullanmadığında) 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) Devre üzerinde P3 konnektörü bu devre üzerine monte edilmesi gerekmez. Çünkü P3 aynı devre kartı AVR işlemciler ile kullanıldığında AVR programlama girişi olarak kullanılmak üzere devreye eklendi.


Şekil-6:Devrenin yerleşim planı



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



Şekil-8:Kartın eleman ve yollarla birlikte yerleşim planı

Devre Elemanları

10K TrimpotR1
10µF/25VC1,C3,C4,C5,C10,C12
27pFC8,C9
100nFC2,C7,C11,C13
1000µF/25VC6
B125C1500D1
Max232U1
AT90S2313 (Attiny2313)U2
7805U3
4Mhz kristalXTL1
DB9 dişi konnektörP1
14P konnektörP2
10P konnektörP3
adaptör priziDC1


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.
Not: Atmel firması AT90S2313 yerine artık Attiny2313 üretmektedir.


Devrenin toplanmış ve çalışmaya hazır.



Devrenin yandan görünümü.



Devre ilk çalıştığında bilgisayara bağlı olmasa bile LCD ekranda görülen metin(test sayfası diyelim).



(4x20)Devrenin çalıştığını göstermek için oluşturulmuş bir örnek:

Peki 2x20 veya 4x20'den başka LCD ekranları kullanırsak ne olur. İşte 2x16 olarak bir örnek:


2x16 LCD ekran



Bunu yazmasaydım içim rahat etmeyecekti.


Bu LCD ekran 2x16 olmasına doğruda, karekter rom olarak diğer gösterilen örneklerden biraz farklı. Nadir olarak karakter romu kiril alfabesini içerecek şekilde düzenlenmiş. Bu sayede bu alfabeyi kullanan dil yapısında ek bir işleme gerek duyulmadan kullanılabiliyor. Darısı Türkçe'nin başına... Çünkü burada yer alan Türkçe karakterler için LCD'nin RAM bölümüne bu karakterler ile ilgili verileri yüklemek gerekti. Yani her açılışta bu karakterler RAM bölümüne yüklenmesi gerekiyor.

Buraya kadar anlatılanlar devrenin donanım bölümünü içermekte. Ama devrenin bir de yazılım bölümü var, daha doğrusu bir bilgisayardaki programı. O olmazsa olmaz.

Bilgisayar Programı

Bu devredeki işlemcide bir yazılım mevcut ama bu sadece işin yarısı. Diğer yarısını ise bilgisayardaki yazılım oluşturuyor. Yani bilgisayardaki yazılım ekranda ne gösterileceğini denetliyor. Bilgisayardaki program Borland Delphi 7 ile yazıldı. (Neyse ki ücretsiz sürümü vardı)

Program birkaç ana bölümden oluşuyor.
  • Girdi-Yazı alanlarına girilen metni LCD ekrana yazar.
  • Metin-Metin bölümüne girilen veya kayıtlı bir metni LCD ekrana yazar.
  • Seçenekler-Program ve LCD ekranla ilgili ayarların yapıldığı bölüm.
  • Yardım-Temel düzeyde bilgilerin verildiği bölüm.

Girdi


Girdi penceresinin görünümü


Resimde görülen alanların basitce tanımlarını açıklayacak olursak;
  1. Ekrandaki satırları temsil eden yazı alanları. Buraya girilen metin LCD ekranda gösterilir.
  2. Açılır menü şeklinde tanımlanan metin giriş türü vardır: Metin, saat, tarih, gün(haftanın günü) ve boş
  3. İşaretlendiğinde yazı alanlarına girilen metin LCD ekranda ortalanır.
  4. LCD ekrana yazı alanlarındaki bilgiyi tek seferlik gönderir.
  5. LCD ekrana yazı alanlarındaki bilgiyi sürekli gönderir. (saat ve tarih sürekli güncellenir)
  6. LCD ekranı siler
  7. Seçenekler bölümünü açar

Metin


Metin penceresinin görünümü


Resimde görülen alanların basitce tanımlarını açıklayacak olursak;
  1. Bu alandaki metin seçenekler bölümündeki ayarlara uygun olarak LCD ekrana gönderilir. Bu alana metin girişiyapılmaz ama değişiklik için satın seçilebilir.
  2. Seçilen satırda değişiklik veya yeni metin giriş alanı. Metin girişini onaylamak için enter'a bas.
  3. Kaydedilmiş metinler 1 nolu alana yükler.
  4. Metnin bulunduğu 1 nolu alanı kaydeder.
  5. Metin alanındaki bilgiler seçeneklere uygun olarak LCD ekrana gönderir ve durdurur.
  6. Metin alanını(1 nolu) siler.
  7. Girilmiş olan metni(2 nolu) metin alanındaki (1 nolu) metnin sonuna ekler.
  8. Metin giriş alanındaki karakter sayısını gösterir.
  9. LCD ekranı siler.
  10. Seçenekler bölümünü açar
Not: Bu bölüm tam bir metin düzenleme programı değildir. Sadece kısıtlı düzeyde metin girdi ve düzenleme işlevlerine izin verir.

Seçenekler


Seçenekler penceresinin görünümü


Resimde görülen alanların basitce tanımlarını açıklayacak olursak;
  1. LCD ekran satır sayısı. Burada 2 ve 4 vardır.
  2. LCD ekran seri port bölümünün bağlı olduğu portu seçilir. (bağladığınız porta dikkat.)
  3. Metnin ekrana gönderim şeklini belirler. Satır satır kaydırarak veya Satırları grup olarak.
  4. LCD ekrana gönderilecek bilgi kaynağı. Girdi veya metin
  5. Metin halinde LCD ekrana gönderildiğinde LCD ekran bilgisinin yenilenme süresi
  6. Seçenekleri onaylar ve pencereyi kapatır

Ekler:



AVR Seri LCD Çevirici için dosyalar-birleşik

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

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

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....

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

9 Kasım 2008 Pazar

AVR işlemciler

AVR işlemciler ATMEL firması tarafından üretilen risc grubu işlemcilerdir. AVRler hızlı aynı zamanda bir çok komutu çok daha kısa sürede yerine getirerek xx51 ailesi işlemcilere göre oldukça verimli işlemcilerdir.

Translate

Sayfalar

Etiketler

İzleyiciler