Geçtiğimiz haftasonu tekrar elden geçirdim, yazılıma baktım, donanıma baktım, bir problem yok. Boş yere bir köşede durmasın, finiş verelim artık buna.
Fonksiyondan ve genel tanımın üzerinden geçmek istiyorum kısaca:
Bu alet PGA23xx serisi dijital attenuatorların basitçe kontrolünü sağlar. Analog kısma dikkat edildiğinde çok paralık DACT'lara oldukça yakın sonuçlar almak mümkündür.
Peki bu alet ne yapar, nasıl çalışır?PGA23xx SPI denilen bir seri haberleşme metodu kullanarak ne yapacağını öğrenir. Bu kart, PGA ile kullanıcı arasında köprü kurmakta olup PGA'ya istediği bilgileri göndermektedir, tek faaliyeti budur, basit versiyon dememizin sebebi de odur. Salt olarak bir ses kontrol.
Çalışan bir ses kontrol sistemi elde etmek üç aşamadan oluşur: Digital kısım, analog kısım ve besleme kısmı. Bunlar 3 farklı PCB'ye ayrılabilir ama 2 PCB'de çözmek de mümkündür. Çizim ve yazılımını hazırladığım kısım digital kısımdır, sesi verecek olan kısım analog kısım olup, neredeyse iki sene önce Dr. Hardware'nin çizdiği analog PCB çizimi ekte bulunabilecektir. Şu an için analog kart çalışması yapmadım.
Digital kartın iki giriş, iki de çıkış birimi vardır. Giriş birimleri butonlar ve uzaktan kumanda; çıkış birimleri ise PGA'ya giden SPI ve kullanıcıya gözüken 4 adet 7-segmentli LED ekrandan ibarettir.
Digital kartın kurulumu:

- Digital PCB
Şöyle bir PCB'si var kartın. Üzerinde 1 adet PIC16F877 mikrokontrolcü, 9 direnç, 4 MOSFET, 2 kapasitör, 1 kristal ve 1 diyot bulunuyor. Ayrıca diğer katlara bağlantı için bol miktarda pin header emrinize amade.
Bu kart 5V ile besleniyor ve PGA'nın digital tarafı ile beslemesini paylaşıyor. Devrenin güç ihtiyacı (PGA dahil) 150mA'dır.
Çalışması için analog katı hariç gereken 2 birim daha vardır; LED displayler ve butonlar. Burada yine bir esneklik var, minimalist yaklaşarak butonları ve/veya LED displayı kullanmamak isteyebilirsiniz. Böyle bir durumda basitçe ilgili fişleri takmıyorsunuz. Sadece kumanda için IR alıcı bağlamanız yeterli.
LED displayler için piyasada hazır satılan 4'lü ortak katot displayları öneririm. Eğer 4 adet tekli display kullanmak isterseniz, o zaman 4 displayin de ortak katot uçları hariç tüm uçlarını birbirlerine paralel bağlar, her displayın ortak katot ucuyla beraber konnektöre takarsınız.
Butonların bağlantısı çok daha basittir, bağlantı şemasında anlatılacaktır.
Devredeki PIC16F877A için "fazla değil mi" yorumları yapılmıştı, buna da cevap vereyim. Bu proje 20 adet I/O pini kullanmaktadır, dolayısıyla kullanılabilecek en ufak PIC 28 pinli olmalıdır. 28 pinli birçok PIC mevcut ve bu proje için oldukça uygunlar. Lakin memleketimizde temin etme fiyatı, bu 40 pinli arkadaşından daha fazlaya gelmektedir.877 7 liraya alınabilirken 28 pinli alternatifler 8-9 liradır. Bunun tek sebebi kimsenin o modelleri talep etmemesinden ibaret. Ayrıca egzotik bir PIC kullansam herkesin temin edememe olasılığı oluşacaktı; 877 oldukça rahat bulunabiliyor.
PIC bir mikrokontrolcü olduğundan, programlanan yazılımı çalıştırmakla yükümlüdür. Dolayısıyla satın aldığınızda içi boştur. Ekte makina kodunu (HEX) bulabilirsiniz; devre üzerinde ICSP portu da bulunmaktadır; programlayıcınızla rahatça programlayabilirsiniz.
PIC programlayıcısı olmayanlara ya da uğraşmak istemeyenlere yardım edeceğim. Malzeme Listesi:
8 adet 0805 270ohm direnç
1 adet 0805 10k direnç
1 adet 0805 1k direnç
4 adet SOT23 N kanal MOSFET (herhangi)
2 adet 0805 22pf kondansatör
1 adet 4MHz kristal osilatör
Kumanda kullanılacaksa 1 adet TSOPxxxx serisi 38kHz IR receiver
ICSP kullanılacaksa 1 adet diyot (1N414x olabilir, standart)
Kart üzerindeki pin headerlerin görevi ve bağlantıları:
BUTON:Butonların ve IR alıcısının bulunduğu karta gider.
1: +5V
2: Güç indikatörü; sistem açıkken 0V gelir. Direkt bir LED'in katoduna bağlanabilir, anodu da birinci pine bağlanır.
3: IR Receiver'ın out ucu. Besleme uçları 1 ve 7'ye bağlanır, araya 100nF kondansatör konulur, bu konulmazsa uzaktan kumanda alış mesafesi ciddi manada kısalır.
4: Ses artırma tuşu; tuşun bir ucu buraya, diğer ucu 1. pine bağlanır.
5: Ses azaltma tuşu; tuşun bir ucu buraya, diğer ucu 1. pine bağlanır.
6: Açma kapama tuşu; tuşun bir ucu buraya, diğer ucu 1. pine bağlanır.
7: GND
PGA:PGA23xx kartına gider.
1: +5V
2: GND
3: SDI (PGA'da 3. pin)
4: CLK (PGA'da 6. pin)
5: CS (PGA'da 2. pin)
6: GND
LCD:7 segment LED'lere gider.
1-4: A-D
5-8: Ortak katot çıkışları(1-4)
9-12: E-DP(nokta)
ICSP:Yalnızca kart üzerinde PIC programlama yapılacaksa kullanılacaktır, ICSP kullanılacaksa diyot kesinlikle unutulmamalıdır, yoksa ~13V civarı Vpp'den dolayı bağlı olan herşey bozulur.
1: Vpp
2: +5V
3: GND
4: PGC
5: PGD
Sistemin kullanımı:Gerekli konfigürasyonlar kodda yapılmış olup, PIC programlandığında hazır gelecektir. Sisteme güç verildiği zaman açılış değeri ekranda gözükecek ve sistem çalışmaya başlayacaktır. Ses açma ve kapama tuşlarıyla sesi değiştirebilir (uzun bastığınızda hızlıca değişir); açma kapama tuşu ile sistemi açıp kapatabilirsiniz, bu aynı zamanda mute işlevi görür. Sistemi açıp kapamak için 0.3 saniyeden uzun basmalısınız.
Sistem her açılış kapanışta ses değerini hafızasında tutar. Bu hafıza, güç kesintilerinden etkilenmez.
Kumanda kullanımı:Kuşkusuz bu devreyi yapmanız, oturduğunuz yerden kontrol içindir

Bunun için kumanda kullanmalıyız. Kullanılacak kumanda Sony protokolü kullanmalıdır; eski sony TV kumandaları bu iş için uygundur. Yeni Plasma TV ve LCD kumandaları uyumsuz olabilir. Tavsiyem, sonyler için ufak TV kumandalarından almanızdır; işportada satılmakta ve daha iyisi işporta malı gibi durmuyorlar.
IR alıcı ve kumandanız hazırsa, bir seferlik kumanda tanıtım işlemini yapmalısınız. Bu işlem, kumandayla devrenin anlaşması için gereklidir ve 10 saniyenizi alacaktır.
Kumanda tanıtım moduna girmek için ses açma ve ses kısma butonlarına aynı anda basın. Ekranda "P P1" gözükecektir. En baştaki P, programlama modunu gösterirken, 3. displayda yazan o an programlanan düğmeyi, 4. displayda yazan ise kontrol numarasını belirtir.
P P1 yazdığında, kumandadan "sistemi açma kapama düğmesi" olarak kullanmak istediğiniz butona basın. Kumandanız ile devre haberleşiyorsa, P1, P2 olarak değişecektir. Aynı butona basın ve basılı tutun, P2 P3 olarak değiştiğinde, butonu bırakın. Açma kapama tuşu tanımlanmıştır.
Bu sefer son iki hanede +1 göreceksiniz. Bu aşamada da, "ses açma düğmesi" olarak kullanmak istediğiniz butona basın. +2 yazdığında tekrar basın, ses açma tuşu tanımlanmıştır.
Son olarak son iki hanede -1 göreceksiniz, "ses kısma düğmesi" olarak kullanmak istediğiniz butona basın. -2 yazdığında tekrar basın, ses kısma tuşu tanımlanmıştır.
Başarıyla tamamladığınızda sistem 1 saniyeliğine kapanacak ve tekrar açılacaktır. Kumandanız artık devrededir, bastığınız tuşlar sistemde ilgili davranışı gerçekleştirir.
Eksik kalan bir nokta varsa tamamlamam için buraya yazınız. Uzun bir hikayeyi sona erdirme mutluluğu ile, esen kalın.
Dosyalar ektedir.