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.

led etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
led etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

21 Nisan 2015 Salı

Atmega16 ve 74HC590 ile LED Ekranlı Frekansmetre


Ölçü aletleri, elektronik ile ilgilenen insanlar için önemlidir. Birbirini izleyen elektriksel darbelerin frekansların ölçmek gerektiği zaman uygulanan ölçüm tekniği birçok şekilde kolaylaştırılmıştır. En basit yöntem bilinen bir kaynak ile karşılaştırmaktır. Buradaki referans kaynak elbette, mikrokontroller tarafından üretilen saat darbeleridir.

Bu projede "Atmega16 ve 74HC590 ile LED ekranlı frekansmetre" uygulaması üzerinde çalışacağız.

Frekans ölçümü
Frekansın tanımı olarak bakılırsa 1 saniyedeki değişken işaret (darbe) sayısıdır. Buna göre eğer bir lojik VE kapısı ile 1 saniye boyunca geçen darbe treni sayılırsa, sonuç darbe treninin frekansını verir.
Şekil-1 :Frekansmetre prensibini gösteren blok şeması.

Projede bu lojik kapı yerine 74HC590 entegresinin (CE) giriş kontrol ucu işlemci tarafından denetlenerek sağlanmaktadır. Buradaki sihirli kelime 1 saniyedir. Çünkü referansın sağlam olursa sonucunda sağlıklı olacaktır. Bu durumda işlemcinin 8MHz saat kristalinden üretilen saat sinyali timer 1 yardımı ile 1 saniyelik referans sinyali üretilmektedir.

LED ekran
Projede 8 adet 7 parçalı ortak anot kırmızı LED ekran kullanılmaktadır. Bu ekranların segmanları işlemci tarafından kontrol edilirken, gereken bacak sayısından dolayı ortak uçları yine işlemci tarafından kontrol edilen 74HC138 üzerinden sürülen transistörler tarafından sürülmektedir.

Her ne kadar 8 tane LED ekran ver isede, sayıcı sistem 24 bit olduğundan 16777216'a kadar sayabilmektedir. Dolayısı ile sistemin sayabileceği frekans 16MHz olarak basite indirgeyebiliriz.
Şekil-2 :LED ekran sürme işleminde kullanılan 74HC138 bacak bağlantıları.
LED ekrana ek olarak LED ekranların segmanlarının sürme yolunu paylaşan 6 tane LED bulunmaktadır. Bunların sağ sıradaki 3 tanesi kademe olarak gösterirken, sol sıradaki kırmızı ölçüm yapılmakta olduğunu (VE kapısının açık olduğunu), sarı otomatik kademe/normal seçili olduğunu ve yeşil sürekli/tek ölçüm yapıldığını göstermek için kullanılır.

KontrolGirişÇıkış
E1E2E3A3A2A1Q7Q6Q5Q4Q4Q3Q2Q1
HXXXXXHHHHHHHH
XHXXXXHHHHHHHH
XXLXXXHHHHHHHH
LLHLLLHHHHHHHL
LLHLLHHHHHHHLH
LLHLHLHHHHHLHH
LLHLHHHHHHLHHH
LLHHLLHHHLHHHH
LLHHLHHHLHHHHH
LLHHHLHLHHHHHH
LLHHHHLHHHHHHH
74HC138 entegresinin giriş çıkış tablosu yukarıda verilmiştir. L=lojik 0, H =lojik 1 ve X= ne olursa olsun

74HC590
Buradaki asıl soru neden işlemcinin içindeki 16 bitlik Timer1(Sayıcı) kullanılmadığıdır. İşlemcinin içinde 16 bitlik Timer1 (Sayıcı) belirtildiği üzere 16 bit saymaktadır yani sonuç olarak 65536 değerine kadar sayabilir. Bu değerin üstünde bir değer için taşma kontrolu ile işlemci içinde ek sayıcı (yazılımsal olarak) oluşturma zorunluluğuna ek olarak burada Timer1 (sayıcı) harici girişinin belirli bir frekans cevabının olmasıdır.
74HC590 entegresinin HC serisi olmasından dolayı yaklaşık 40MHz maksimum frekansa cevap verebilmesi ve işlemciye bağlanabilmesi tercih edilmesine neden olmuştur.

Entegre 8 bitlik bir sayıcıdır. Çıkışları kontrol edilebilir ve mikrokontroller birimine bağlanabilir porta sahip bir yapıdadır. Dolayısı ile iki veya daha fazla 74HC590 işlemciye kolaylıkla bağlanabilir. 74HC590 iç registerlerinde (sayıcı) asıl sayma işleminin yapıldığı bölüm olup diğer sayıcının değerini porta yönlendirmek için kullanılan tutucu registeridir. Bu registeri tutma işlemi bir bacak üzerinden kontrol edilir.
Şekil-3 :Sayıcı olarak kullanılan 74HC590 bacak bağlantıları.

Çıkışları kontrol edilebildiğinden (çıkış izni yok iken z durumunda) 3 tane 74HC590 entegresi işlemcinin aynı bacakları üzerinden veri iletimi yapabilmektedir.

Ayrıca tutma registerine bağlı bir taşma çıkışı yer aldığından kolaylıkla 24 bit sayıcı olarak düzenlenebilmektedir.

GirişTanımı
OECPRMRCCECPC
HXXXXQ Çıkışları yasaklı
LXXXXQ Çıkışları izinli
XL-HXXXSayıcı verisi registere kaydedilir
XH-LXXXRegister durumu değişmez
XXLXXSayıcıyı sil
XXHLL-Hgelişmiş bir sayma
XXHLH-Lsayma yok
XXHHXsayma yok
74HC590 bacak bağlantıları ve tanımları. H=lojik 1 , L=lojik 0, X=ne olursa olsun, L-H = yükselen kenar, H-L= inen kenar.

Bacak SimgesiTanımı
Q0...Q7paralel veri çıkışı
GND0 V
RCOelde çıkışı (aktif Lojik 0)
MRCAna sayıcı sıfırlama (aktif Lojik 0)
CPCSayıcı saat girişi (aktif lojik 1)
CESayıcı izin girişi (aktif lojik 0)
CPRRegister saat girişi (aktif lojik 1)
OEÇıkış izin girişi (aktif lojik 0)
VccBesleme (+5 V)
74HC590 bacak simgesi ve tanımı yukarıda verilmiştir.

Devrenin Çalışması
Şekil-4 :Proje ilk çalıştırıldığında.

Kaçınılmaz olarak devre elemanları arasındaki bağlantıyı kontrol eden Atmega16'dır. 8MHz saat kristali ile işlemcinin ihtiyacı olan saat sinyalleri üretilir.

Devreye beslendiği zaman işlemci ilk olarak LED ekranlara 00000000 değerini yazacaktır. Ama soldaki sıfırların hiçbir anlamı olmadığından ekranda sadece 0 gösterilecektir. LED ekran mux olarak düzenlendiğinden sürekli olarak taranması gerekir. Buradaki tarama işlemi kontrolu 74HC138 üzerinden yapılmaktadır. Yani işlemci tarafından kontrol edilen 3 bacak kod çözme ile PNP transistörler üzerinden 8 LED ekran ortak bacağı sürülmektedir.

74HC590 entegreleri arda arda bağlanarak 24 bitlik bir sayıcı haline getirilmiştir. Görüleceği üzeri sayma işlemi donanımsal olarak yapılmaktadır. İşlemci kontrollu 1 saniyelik referans sinyalini Timer1 tarafından üretilir ve bu işlemci üzerinden 74HC590'ların CE bacağına uygular. (LED1 ölçüm yapıldığını göstermek üzere yanması sağlanır) 1 saniyelik zaman süresince 74HC590 CPC bacağına gelen sinyalleri sayar (gelen sinyal tersleyerek aynı zamanda CPR bacağına uygulanır) . 1 saniye sonunda sayma durdurulur ve LED1 söndürülür. İşlemci sayma durumuna göre (verinin önem sırasına göre) sıra ile 74HC590 OE bacaklarına lojik 0 uygulayarak 74HC590'lardan sayılmış olan değeri okur. Bu değerler hexadesimel sayı formatında olduğu için bu değerler onluk sayı sistemine (BCD) çevrilir. Ekranda gösterilecek şekilde uygun registerelere yerleştirilir. Ekranda mux olarak çalıştığı için belirli aralıklara yenilenmesi sağlanırken yeni alınmış değerde ekran üzerinde görüntülenir.

Değerleri 74HC590'dan okunmasından sonra yeni değer ölçümü için hazırlanması amacı ile MCR bacağına kısa bir süre lojik 0 uygulanarak sayıcılar sıfırlanır. Sistem yeni sayma işlemi için hazırdır
Tek/Sürekli (S3) butonu sayma işleminin tek veya sürekli (otomatik) ölçüm yapma arasında seçimi sağlanır. Tek ölçüm seçildiğini göstermek için LED2 yanar. Tek ölçüm seçeneğinde ölçüm yapabilmek için Tek ölçüm butonu (S1) basmak yeterlidir. Bu durumda LED1 ölçüm yapıldığı süre boyunca yanıp işlem sonunda sönecektir.

Kademe (S2) butonu ekranda gösterilen değere göre binler ve milyonlar hanesini nokta eklerken uygun bir şekilde LED4 (Hz), LED5 (KHz)ve LED6 (MHz) yanmasını sağlar. Kademe işleminin aktif olduğunu göstermek için LED3 ışık verecektir.
Şekil-5 :Otomatik kademe aktif değilken.

Şekil-6 :Otomatik kademe aktif (KHz)

Şekil-7 :Otomatik kademe aktif (MHz)

LEDRengiTanımı
LED1KırmızıÖlçüm yapıldığını gösterir
LED2YeşilTek ölçüm yapılacağını veya yapıldığını gösterir
LED3SarıOtomatik kademe ile gösterildiğini
LED4KırmızıEkran değerinin 0...999 aralığında olduğunu gösterir (Hz)
LED5KırmızıEkran değerinin 1000...999999 aralığında olduğunu gösterir (KHz)
LED6KırmızıEkran değerinin 999999'dan büyük olduğunu gösterir (MHz)
LED'ler ve işlevleri

Devre
Devre iki kart üzerinde toplanmıştır.
Şekil-8 :İşlemci kartı üstten görünümü

Ekran kartı üzerinde LED ekranlar (8 adet), LED'ler (6 adet) ve butonlar (4 adet) bulunmaktadır.
Şekil-9 :İşlemci kartı üstten ve ekran kartı arkadan görünümü

İşlemci kartı üzerinde LED ekranları sürmek için 74HC138, transistörler ve akım sınırlama dirençleri bulunur. LED'leri sürmek için akım sınırlama dirençleri ve transistör yer almaktadır. Butonları sürmek için 74HC138'in bazı bacaklarını paylaşan bağlantı ile birlikte algılama ucu işlemci üzerindedir.
Şekil-10 :İşlemci kartı arkadan görünümü

İşlemci kartı üzerinde sayıcı girişlerini korumak üzere kullanılan direnç ve zener diyot bağlantısı üzerinden schmitt tetikleyici olan 74HC14 üzerinden giriş sinyali şekillendirme yapılır. Şekillendirilen giriş sinyali 3 adet 74HC590 üzerinde sayılarak işlemci üzerinde gerekli işlemleri yerine getirilir.
Şekil-11 :Kartların monte edilmiş haldeki görünümü

Son olarak P1 üzerinden alınan gerilim köprü diyot üzerinden geçirilerek 7805 üzerinden devre için gereken +5V besleme gerilimi oluşturulur.

Şema
Sistemin kalbini IC1 ile ATMEGA16 oluşturuyor. Kesin zamanlama ihtiyacını karşılamak için XT1(8MHz) kristal ile C8 ve C9 (27pF) kondansatörler ile birlikte işlemci için gereken zamanlama frekansını üretirler. R18..R22, R24,R25, R26...R34 (1206-smd) (10k) dirençleri pull-up için kullanılmıştır.

P2 klemensi üzerinden gelen frekansı ölçülecek sinyal, R23 (100R) üzerinden D5,D6 (5.1V zener) girişindeki giriş geriliminin 5V'un üzerinde olması durumuna göre IC5 (74HC14) girişini korumak için sinyali 5V'a sınırlar.

IC2 , IC3 ve IC4(74HC590) 8 bitlik sayıcı entegreleridir ve çıkışları paralel olarak alınabilir. 74HC590 entegrelerinin bağlantısı sayesinde 24 bitlik sayıcı sistemini oluşturur. IC5 (74HC14) giriş sinyalini schmit tetikleyici olarak çalışan (evirici) girişleri sayıcı kontrol edilen girişleri oluşturur.

DIS1..DIS8 (1056AUR1) 8 adet ortak katot LED ekran üzerinde ölçülen değer görüntülenir. Led ekran ile işlemci arasına akım sınırlama için R10...R17 (220R) dirençleri Led ekran segman sürücü olarak kullanılır. LED ekranların ortak uçları Q1...Q8 (BC327) transistörleri üzerinden sürülür. Transistörlerin baz uçları ile IC6 (74HC138) arasına R2...R9 (1k) sürücü dirençleri bağlanmıştır. IC6 (74HC138) 3-8 hat kod çözücü/ demultiplexer, eviren çıkışlı yapıdaki entegre işlemcinin yetersiz bacak bağlantısını artırıp LED ekran taramasını 4 işlemci hattı karşılığında 8 hatta dönüştürülmesinde kullanılmıştır.

LED1..LED6 ledlerin devrenin çalışmasını ve yaptığımız seçimleri göstermek için kullanılmaktadır. LED ekranları segman bağlantılarını paylaşan LED'ler diğer uçları birbirine bağlanıp Q1 (BC327) transistörü üzerinden sürülür. Q1 Baz ucu R1 (1k) üzerinden IC1 (Atmega16) (PB4) bağlanmıştır. LED1..LED6 IC6 aktif olmadığı zaman diliminde aktifleştirilerek DIS1..DIS8 mux zamanını paylaşır.

S1..S4 (buton) devrenin çalışmasındaki kullanıcı seçeneklerini erişim için kullanılır. D1..D4 (1N4148) diyotları üzerinden IC6 74HC138 (Y0..Y3) bacaklarını LED ekran sürücüleri üzerinden paylaşır. S1..S4 butonlarının ortak uçları IC1 (Atmega16) (PB7) üzerinden basılan butonu işlemci tarafından algılamasına imkan tanıyarak gerek işlevi yerine getirir.


Devrenin beslemesi P1 konnnektörü üzerinden D7 (W10M) köprü diyodu üzerinden IC7 (7805) regüle edilerek devrelinin ihtiyacı olan beslemeyi oluşturur.

Programlama için bir kablo üzerinden bağlantı sağlamak üzere ISP konnektörü bulunmaktadır.
Belirtilmeyen geri kalan kondansatörler filtre amaçlıdır.

Devre üzerinde anlatılmayıp, kutulama için kullanılan ek elemanlar, (SPST) aç/kapa anahtarı, adaptör için giriş ve P2 klemensi yerine bir BNC (kutu tipi) priz ve devreyi oluşturmak için gereken kartlara uygun bir kutu kullanmak yerinde olacaktır. İsteyen tabii kutusu uygun ise beslemesini kutu içine alabilir ve kartın üzerinde gerekli değişiklikleri yapabilir.
Şekil-12:Blok şeması

Şekil-13:Devre şeması

Devre Yapımı
Devre montajı açısından kritik bir durum yoktur. Elemanları karta lehimlerken kısa devre olmamaları için dikkatli olmak yerinde olacaktır.

Devre kartı tek yüzlü olacak şekilde oluşturuldu. Görüldüğü üzere bir miktar tel köprü mevcuttur. İstenildiği takdirde çift yüzlü oluşturulup eleman tarafındaki kalan yüzeyler GND ile kaplanabilir. Bu durumda elektriksel parazitik etkilerden daha fazla yalıtılacaktır.
Şekil-14:İşlemci ve ekran kartı yollar

Şekil-15:İşlemci ve ekran kartı eleman yerleşimi

Şekil-16:İşlemci kartı üzerindeki bakırlı taraftaki eleman yerleşimi(SMD). Ekran kartı üzerinde bakırlı tarafa lehimlenmesi gereken eleman olmadığı için gösterilmemiştir.

Şekil-17:İşlemci ve ekran kartı yolları birlikte eleman yerleşimi

Şekil-18:İşlemci yolları birlikte SMD eleman yerleşimi

Şekil-19:Ekran işlemci kartı ve ekran kartı birlikte monte edilmiş halde.

İşlemci kartı ve ekran kartını birbirine montaj için delikler hizalanmıştır. Küçük bakır tellerin bu deliklere lehimlenerek bağlantının sağlanması yeterlidir. Kullanılan bakır tellerin yeteri kadar sağlam olması gerekir. Çünkü butonlara basıldığı zaman kart geriye doğru eğilmemesi gerekir, aksi halde ekran kartında sabitlenmesi gerekir.
Devre Elemanları

İşlemci kartı ve ekran kartı için malzeme listesi

220RR10..R17
1KR1..R9
10KR18..R22, R24,R25
10K (SMD-1206)R26..R34
27pFC8,C9
100nFC3,C4,C6,C7,C10,C13,C15,C16
10µF/25VC5, C11,C12,C14
100nF (SMD-1206)C1,C2,C17
3mm LED (kırmızı)LED1,LED4,LED5,LED6
3mm LED (yeşil)LED2
3mm LED (sarı)LED3
1056AUR1 veya benzeriDIS1...DIS8
ATMEGA16 (DIL)IC1
74HC590IC2,IC3,IC4
74HC14IC5
74HC138IC6
7805IC7
BC327Q1..Q9
W10M veya benzeriD7
1N4148D1..D4
5.1V zenerD5,D6
8 Mhz kristalXT1
2x3Header (ISP6)isp
2'li klemensP1,P2
20 bacaklı entegre soketi (DIL)1 adet
16 bacaklı entegre soketi (DIL)4 adet
14 bacaklı entegre soketi (DIL)1 adet
10 yollu şerit kablo-
2x5 header pin erkekP3(kullanılmıyor)
butonS1...S4

Besleme için 9V'luk adaptör unutulmamalıdır. Kutulama yapılacaksa, aç/kapa anahtarı, BNC giriş, adaptör girişi ve uygun büyüklükte bir kutu , kablolar listeye eklenmelidir.

Kutulama
Şekil-20:İşlemci programlanırken.

Kutu olarak stoklarımda yer alan plastik bir kutu kullanıldı. Kutu üzerindeki delikler ekran kartı üzerindeki elemanların yerleşimine göre açıldı. Kutunun altında bulunan çıkıntılar işlemci kartının montajı için bir miktarı kesildi. Ayrıca işlemci kartı biraz uzun bırakıldığı için kutunun alt parçasına vidalama için 2 delik açıldı.
Şekil-21:Kutunun alt (sol) ve üst (sağ) parçaları.

Şekil-22:Kutunun ön (üst)ve arka (alt) panel parçaları.

BNC priz kutu paneline monte edilebilecek bir yapıda olduğu için, bir ekranlı kablo ile BNC girişindeki bağlantılar kartın üzerindeki P2 bağlantısına taşındı. Ekranlı kablo bağlanması, elektriksel parazitlere bağlı sinyal bozulmasına karşı bir önlemdir.

Şekil-23:Şase bağlantısı yapılmış BNC konnektör.

Şekil-24:Şase bağlantısı yapılmış BNC konnektör.

Şekil-25:BNC konnektörü kablosunun işlemci kartı üzerindeki bağlantısı.

Aç/kapa anahtarı ve adaptör prizini nasıl bağlandığını bildiğinizi varsayıyoruz. Bilmiyorsanız internet üzerinde arayabilirsiniz. Çünkü model ve markalarına göre değişiklik gösterebilir.

Şekil-26:Adaptör girişi ve aç/kapa anahtarı.

Şekil-27:Adaptör girişinin monte şekli.

Şekil-28:Kutu içinin kartlar olmadan görünümü.

Son olarak kartlar kutu içine monte edilir ve kablo bağlantıları(BNC için P2 ve Besleme için P1) yapılır. Kutu kapatılmadan son bir kez test edilmesi yerinde olur.
Şekil-29:Kutu kapatılmadan için.

Şekil-30:Cihazın bitmiş hali. Sadece kutunun süsü olan ön panele ihtiyacı var.

Şekil-31:Ön panel örneği.

Kullanımı
Şekil-32:Açılış LED durumu.

Devre ilk açıldığında tek ölçüm led'i (kırmızı) ile Hz Led'i yanar ve ekranda 0 değeri görüntülenir. (Şekil-4'e bak) Devre ölçüm yaptıkça tek ölçüm Led'i yanıp söner.(ölçüm süresince yanar)
Şekil-33:Tek/Sürekli ölçüm işlemi.

Tek ölçüm yapmak için; (1) Tek/Sürekli butonuna basılır ve Tek/Sürekli led'i (yeşil) yanar. Bu konumda iken tek ölçüm LED'i bir kez yanar ve 1 saniye sonunda söner sonuç ekranda görüntülenir. (Hz led'i yanmaktadır) Tekrar ölçüm için (2) Tek Ölçüm butonuna basılır. Aynı şekilde tek ölçüm LED'i 1 saniye sonunda söner ve sonuç ekranda görüntülenir.
Şekil-34:Tek/Sürekli ölçüm işlemi.

Sürekli ölçüm yapmak için; (1) Tek/sürekli butonu kullanılarak Tek/sürekli led'i söndürülmesi yeterlidir. Ölçüm sürekli tekrarlanarak ekrandaki sonuç güncellenir.
Şekil-35:Kademe seçimi ve gösterimi. Örneksel olarak..

Otomatik kademe seçeneğinde (1) Kademe butonuna basarak Kademe Led'inin yanmasını sağlamak yeterlidir. Bu durumda ekrandaki değer büyüklüğüne göre ondalık nokta konumlanırken, uygun Hz, KHz, MHz LED'lerinden biri yanar. Normal gösterim durumuna dönmek için (1) Kademe butonuna basarak Kademe LED'inin sönmesini sağlamak yeterlidir.
Şekil-36:Sıfırlama işlemi

Ekrandaki ölçüm sonucunu silmek (1) Sıfırla butonuna basmak yeterlidir. Basılması ile birlikte ekrandaki değer 0 olarak gösterilir

Ekler:
ATMEGA16 hakkında bilgi için

"Atmega16 ve 74HC590 ile LED Ekranlı Frekansmetre" projesi için gereken dosyalar

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

--DEVAM EDECEK!--


1 Haziran 2014 Pazar

Atmega328P ve DS1307 ile LED Matris Ekranlı Saat

Blog üzerinde çeşitli saat örnekleri gerçekleştirdik. Bu saat örneklerinde LED matris ekran kullanılanları da var.Hatta DS1307 ile birkaç proje oluşturduk ki kullanımının daha kolay anlaşılabilsin. Bu projede farklı bir işlemci ve DS1307'yi birleştirerek bir saat uygulaması daha oluşturmaya çalışacağız.

Bu projede Atmega328P ve DS1307 ile LED matris ekranlı saat uygulamaya çalışacağız.

Çoğullama
LED'lerin işlemci ile doğrudan sürülmesini zaten başlı başına bir sorun. O kadar LED'i sürecek bacağı sahip işlemci bir yana bağlantıların yapılması bile ciddi bir konu.

Aynı sistem seri giriş paralel çıkış entegreleri ile de oluşturulabiliyorsa da, entegrelerden ve LED'lere bağlanması gereken bacak sayısı bir yana her bir led'ini aynı anda yanmasından dolayı ciddi bir güç kaynağı gereksinimi de söz konusudur. (Piyasada bu yöntemi kullanan sistemler var). Sanırım programlanmasındaki kolaylıklardan dolayı tercih ediliyor.

Çoğullama konusu zaten bu işin temelini oluşturuyor. Yani bir anda tüm satır veya sütunların çalıştırılmayıp, zamanın bir anında sadece bir (uygulamamızda)sütunun aktiflenmesi esasına dayanır.

                                                        Şekil-1 :Led'lerin tarama prensibi.


Şekil-2 :7x5 matrisin çalışırken insan tarafından algılanan görünümü. Soldaki çizim,sağdaki gerçek görünümü


NotÇoğullamanın sıkıntısı LED sütun sayısı belli bir değeri aştığı zaman LED parlaklığının düşmemesi için besleme gerilimi artırılması gerekir veya sistemin bloklar halinde kullanılması gerekir. (tarama hızının ona göre ayarlanması gerekir).
Şekil-3 :Led'lerin resmi.

Bu projede çoğullama yöntemi tercih edilmiştir. Bu yöntemde basitçe önce satırlar rakamı oluşturacak şekilde sürülür, sütun transistörü aktif edilir, bir süre beklenir ve sütun transistörü kapatılır. İkinci, üçüncü...ve otuzuncu sütun için işlem tekrarlanır ve tekrar baştan başlanır.
Şekil-4 :Led'lerin 7x5 için matris bağlantı şeması.

Yukarıdaki işlem için 30 baytlık RAM üzerinde ayrılmıştır (başlangıç adresi işlemcinin RAM başlangıç adresi olan 0x100 adresidir) ve ekran üzerinde oluşturulmak istenen görüntü bu RAM üzerine yazılır. Her RAM hücresi bir sütunluk veriyi tutar. Dolayısı ile işlemci hangi sütun aktiflenecek ise işlemci uygun RAM hücresinden veriyi okur ve satır sürücüsüne verir. (işlemcinin bacaklarından)


Saat devresi açısından anlatıldığı şekilde bir devre oluşturmaktır.

DS1307
Şekil-5 :DS1307 çipi bacak bağlantıları.

Projede uygulanan diğer LED matris saatleride saat işlemci tarafından sayılarak sağlanıyordu. Bu projide saat kaynağı olarak DS1307entegresi kullanımıştır. Her ne kadar DS1307'nin tarih tutma kapasite ve ek RAM alanı bulunsada sadece saat tutma (sayma) özelliği kullanılmıştır. DS1307'nin diğer bir özelliği ise destek besleme bacağının bulunmasıdır. Destek besleme bacağı kullanılarak 3V'luk saat pili ile elektrik kesintilerinde (saat için alternatif besleme düşünülmemiştir) DS1307 saat saymaya devam edecektir. Elektrik tekrar geldiğinde saat sayma devam ettiği görülecektir.

DS1307 iletişim olarak i2c haberleşme tekniğiin kullanmaktadır, haliyle işlemci üzerinde donanımsal olarak i2c hattı bulunduğu için bacak bağlantılarına eklenecek olan 2 pull-up direnci i2c bağlantısını tamamlayacaktır.

DS1307 kristal bacaklarına bağlanan 32KHz saat kristali ile kararlı bir şekilde saat referans sinyali sağlayacaktır. Veri kağıtlarında saat kristali konusunda bazı sınırlama olduğu belirtilmiştir. Kristal konusu önemlidir, çünkü DS1307'nin çalışıp çalışmaması dahil saatin ileri veya geri gitmesi gibi konuları etkileyecekitr.
Şekil-6 :Kart üzerindeki DS1307, pil ve kristal.

NotKristalden emin değilseniz eski bilgisayar kartlarından sökeceğiniz bir saat kristali işinizi görecektir.
PCB
Şekil-7 :Kartın her iki yüzünün resmi. Bazı deliklerin köprüleri lehimlenmiş halde.

Devrede LED'ler ayrık eleman olarak tasarlandığı için tek yüzle gerçekleştirilmek istendiğinde çok fazla köprüleme gerektirecekti. (gerçi kartta delik içi kaplama olmadığı için yine de köprüleme vardır. Delik içi kaplama tekniği ile üretilen kartlarda köprüleme ihtiyacı olmayacaktır.) LED'lerin bağlantılara ve diğer elemanların bağlantıları nedeni ile çift yüzlü kart ile gerçekleştirilmektedir. Devre birkaç eleman dışında da SMD (yüzey montaj tekniği) kullanılacak şekilde tasarlanmıştır. Aynı zamanda devrenin daha küçük yapılmasına olanak tanımıştır. PCB elde üretileceği öngörülerek yollar arası geniş tutulmuştur. PCB basım esnasında bazı lehim adaları (çift taraf üzerinde) kaymış ise de kullanılabilir durumdadır. (Çizimde bir sıkıntı yoktur)

LED olarak 1206 kılıfa sahip kırmızı LED kullanıldı (toplamda 214 tane gereken LED'lerden elimde 170 tanesi vardı), istenirse 1210 kılıfa sahip LED'de kullanılabilir.

Şekil-8 :Çift yüzlü kart üretiminde iki yöntem. Soldaki delik içi kaplama olmadan sağdaki delik içi kaplama ile.

Şekil-9 :Çift yüzlü kart montajında deliklere eleman ve köprü lehimi. Delik içi kaplama olmadığında yollar arasındaki iletimi sağlamak için kartın her iki yüzünden de lehimlenme gerekmektedir.

Lehimleme konusunda en sıkıntılı eleman Atmega328p'dir, çünkü işlemci 4 kenarında 8 bacak bulunan 32 bacaklı bir elemandır. Yani entegre 4 taraftan da hizalanması gerekir.
Şekil-10 :Kart üzerine lehimlenmiş işlemci.

Devre
Şekil-10 :Yapılmış haldeki devrenin ön yüzü. Görüldüğü gibi tüm elemanlar bu yüzde bulunmaktadır

Şekil-11 :Yapılmış haldeki devrenin arka yüzü.

Saat çipi DS1307 saat tutucu (sayıcı) kendi destek beslemesi ile elektrik kesintilerinde işlevine devam edecek yapıdadır.

Satır sürücüleri direnç üzerinden işlemci bacaklarına bağlı bir yapıdır. 7 adettir.

Sütun sürücüler 74HC154 ile dirençler üzerinden sürülen BC857 (PNP) transistörler oluşturur. 2 tane 74HC154 üzerinden 30 tane BC857'den oluşur.
Şekil-12 :Kart üzerinde lehimli 74HC154 ve bacak bağlantıları.

Besleme içinde 7805 gelen besleme gerilimini işlemci ve diğer entegreler için 5V sabitleyerek regülasyonu sağlar.
Şekil-13 :Kart üzerindeki 78M05.

Tabii ki burada Atmega328p sistemin tümünün kontrolunu sağlar.

İki tane buton da saat ve dakika ayarı için kullanılmaktadır. Ayrıca devre ilk çalıştırıldığında DS1307'nin ilk değerlerinin yüklenmesi için besleme verilmeden önce bu butonlara basıp ve basılı tutularak besleme verilmesi ve sonra butonların bırakılması gerekmektedir.

210 tane LED her biri 7x5 matris oluşturacak şekilde 6 hane olarak gruplanmıştır. Saat, dakika ve saniye değerleri bu LED matrisler üzerinde görüntülenmektedir.

Şema
Not: LED matrisi oluşturan D1..D210 LED'lere 210 tane oldukları için tanımlama kodu verilmemiştir.
IC1 (Atmega328p) saatin tüm kontrolunu yapan mikrokontrollerdir. İşlemcinin iç saat kaynağı RC kullanıldığı için harici kristal kullanılmamıştır. İşlemciye bağlı S1 (saat ayar butonu) ve R38 (10k) pull-up direnci saat ayar kontrolu için kullanılan butonudur. Aynı şekilde işlemciye bağlı S2(dakika ayar butonu) ve R39 (10k) pull-up direnci dakika ayarını sağlamak için kullanılan devreyi oluşturur.

IC1'e (Atmega328p) IC2 ve IC3 (74HC154) decoder entegreleri sütun sürücüleri olarak çalışır. IC2 ve IC3 (74HC154) çıkışlarına bağlı R8...R37 (1k) dirençleri üzerinden bağlı olan Q1...Q30 (BC857) PNP transistörleri baz üzerinden (emetörleri +5V ve kollektörleri LED sütunlarına bağlı olmak üzere) LED sütunları kontrol edilir.

IC1'in (Atmega328p) bacaklarına bağlı R1...R7 (100 Ohm) dirençleri LED matrisin satır sürücüleri olarak çalışır.

IC1'in (Atmega328p) bacaklarına IC4 (DS1307) saat kaynağı olarak çalışır. Aynı zamanda i2c bacaklarına bağlı R40 ve R41 (10K) pull-up dirençleri i2c bağlantısının pull-up ihtiyacını karşılar. IC4 (DS1307) bacaklarına bağlı XTL1 (32KHz) kristal saat sayma için referans saat sinyalini üretir. IC4'ün(DS1307) 3. bacağına bağlı PIL1 (3V pil) destek beslemesi olarak güç kesintilerinde saat sayma işlemine devam edebilmesi için takılmaktadır.

IC5,D245 ve P1'den oluşan devre elemanları devrenin beslemesi için gereken gücü sağlayarak +5V regüleli gerilimi oluşturur.

D211,D212 (LED) ve R42(1k2) direnç ve D213,R214 (LED) ve R43 (1k2) direnç matris ekran üzerinde saat, dakika ve saniye arasında ayırıcı olarak işlev görür.

Kondansatörler ise devre üzerinde filtre amacı ile kullanılmıştır. .
Şekil-14:Blok şeması
Şekil-15:Devre şeması (Led matris içinde yer alan ledler blok halinde gösterilmiştir)

Devre Yapımı
Devre yapımında kartı delik içi kaplamalı yaptırıyorsanız, yapacağınız sadece elemanları monte etmek iken, eğer kendiniz basıyorsanız, bacaklı elemanların bulunduğu delikler haricindeki tüm deliklere birer tel geçirip her iki taraftan lehimlemeniz gerekir. Zorluğu işlemin zaman almasıdır.

Entegreler biraz zorlar (IC1-Atmega328p) özellikle işlemci 4 tarafında bacaklar bulunduğu için lehimlemeden önce tüm bacakların hizalandığından emin olun.

LED'leri lehimlerden doğru yönde konumlandıklarından emin olun. Hatta lehim işlemi tamamlandıktan sonra Ohm kademesinde LED'lerin kontrol edilmesinde fayda var.

ISP konnektörünün bazı bacaklarının (kart delik içi kaplama değilse) elemanların bulunduğu taraftan lehimlenmesi gerektiğini dikkat ediniz.
Şekil-16:PCB şeması, (top) üst yollar

Şekil-17:PCB şeması, (bot) alt yollar

Şekil-18:Kartların üst yüzdeki eleman yerleşimi.

Şekil-19:Kartların yolları birlikte üstteki eleman yerleşimi (Alt yüzde eleman bulunmamaktadır.)

Şekil-20:Kart çalışırken bir görünümü. Monte edilmiş ve saat ayarı yapılmış.

Devre Elemanları
100R (1206)R1...R7
1K (1206)R8...R37
10K (1206)R38...R41
1K2 (1206)R42,R43
100nF (1206)C1,..C6,C8...C10
10µF (1206)C7
10µF/16V tantal (A-Case)C4
BC857 (SOT23)Q1...Q30
LED (1206)D1...D214
2W10M vye benzeriD215
Atmega328P (TQFP32)IC1
74HC154 (SO24)IC2,IC3
DS1307 (SO8)IC4
78M05 (D-PAK)IC5
32.768KHz KristalXTL1
2x3 Header (ISP6)ISP
ButonS1,S2
3V pilPIL1
2'li klemensP1
Eğer kullanılan pil kendinden bacaklı değilse eleman listesine bir tane de pil için soket eklenmelidir. Besleme için 9V'luk adaptör unutulmamalıdır.

Devrenin Çalıştırılması
Şekil-21:Matris ekran için bir deneme. Ayraç noktalarını söndürsem iyi olurmuş.(Saat üzerinde çıkmıyor, bu sadece bir deneme).

Devreye ilk besleme verildiğinde öncelikle besleme geriliminin entegrelerin besleme bacaklarında +5V olmadığı incelenmelidir. İşlemcinin (sigorta ayarları ile birlikte) programlama işleminden sonra devrenin beslemesi kesiliyor. (DS1307 destek pili kalabilir) Çünkü ilk açılışta DS1307 saniye registerindeki CH biti yüzünden çalışmaya başlamaz. CH bitin sıfırlanması gerekir.
Şekil-22:Programlama için ISP konnektörü bağlantısı.

S1 ve S2 butonları (saat ayar ve dakika ayar butonları) basılı halde iken devreye besleme verilir. Besleme verildikten sonra butonlar bırakılır. Bu işlem DS1307 destek pili bitip de değiştirildiği zaman uygulanması gerekir. Normalde bu pilin (veri kağıtlarında yazılanlara göre) ömrü 10 yıla varabilmektedir.

Pilin bittiği elektrik kesintilerinden sonra saat değerinde kayma veya saatin tamamen durması ile anlaşılır.
Şekil-23:Butonlar. Saat tarafındaki saati, dakika tarafındaki dakikayı ayarlar.

Saat saymaya başladıktan sonra, S1 ve S2 ayar butonları kullanılarak saat ve dakika ayarlanarak saat kullanıma hazırdır.

Saat 50mA civarında (ekranda yanan LED sayısına göre değişir) bir akım çekmektedir. Bu değer R1... R7 direnç değerlerine bağlıdır. R1...R7 değeri azaltılarak ekran parlaklığı artırılabilir ama bu değerin fazla küçültülmemesi gerekir. Ne de olsa sürme işlemi doğrudan işlemci üzerinden yapılmaktadır.
Şekil-24:Duvara asılmış saat. (Aydınlatmada kullanılan lamba renkleri biraz kaydırdı.)

Devre pil ile beslemeye uygun değildir, onun için 9V bir adaptör ile kullanılabilir.

Güncelleme
Şekil-25:Saatin güncellenmiş görünüm.Karanlıkta daha güzel görünüyor

Şekil-26:Saatin güncellenmiş görünüm.

Donanım üzerinde küçük değişiklikler yaptığımız cihazların hem daha güzel, hem de daha verimli kullanımını olanak sağlanır. Saat üzerinde de özellikle LED'lerin değiştirilmesi ile daha güzel bir görünüm sağlanmıştır.
Şekil-27:Kartın LED'leri değiştirildikten sonraki güncellenmiş görünüm.

İşlem olarak 214 tane 1206 kılıfındaki LED 1210 kılıfındaki kırmızı LED ile değiştirilmiştir. Bunun yanında LED'leri sürmek için işlemci ile seri bağlı olan R1...R7 dirençleri (120 Ohm) ile değiştirilmiştir. Ayrıca ayraç LED'leri seri bağlı olan R42 ve R42 dirençleri (2k2) ile değiştirilmiştir.
Şekil-28:1210 kılıflı LED'lerin yakından görünümü.

LED parlaklığında azalma olsa bile sonuçta devrenin harcadığı akımda azalma olduğu kesin. Özellikle gece karanlıkta gözü daha az rahatsız edici bir duruma indirgenmiştir.
Şekil-29:1210 kılıflı LED'lerin yakından görünümü. Görüldüğü üzere LED'in ışık verdiği bölüm daire şeklindedir. Led'lerin yanında satır sürücülerine seri bağlı 120 Ohm'luk direnç görülmektedir.

214 tane LED'i değiştirmek gerçekten zor bir işlem, o yüzde daha üretim aşamasında hangi malzemenin kullanılacağını belirlemek yerinde bir karar olacaktır.




Ekler:
Atmega328P hakkında bilgi için

"Atmega328P ve DS1307 ile LED Matris Ekranlı Saat" projesi için gereken dosyalar

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


Translate

Sayfalar

Etiketler

İzleyiciler