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.

23 Haziran 2009 Salı

RS232 AVR ISP Programlayıcı


Devrenin Temeleri

AVR işlemciler ile uğraşmak güzel ve kolay. En azından ISP olarak tanımlanan iletişim sistemi ile işlemciyi devre üzerinde programlayabilmek oldukça işlemi hızlandırıyor. Programı yaz, derle ve işlemciyi programla. Hemde işlemciyi söküp programlayıcıya takmadan ve tekran işlemciye devreye takmadan. Hatta devre üzerinde değişiklik yapılmayacaksa işlemci karta lehimlenebilir bile. SMD türündeki işlemciler karta lehimlenir ve işlemci programı karta eklenen isp bağlantısı ile aktarılabilir. Bu işlemciler ile uğraşanlar zaten biliyor..

AVR Programlayıcı

AVR programlamak için çeşitle devreler zaten internet üzerinde var. Hatta bunlardan bazı programlayıcıları yapmak için bir işlemciye bile gerek yok. Ama illede bu konuya gireceksiniz mutlaka bir programlayıcıya ihtiyacınız var. Burada kullanılan devrenin temel devresi Atmel firmasının uygulama notları arasında yer alan AVR910 uygulaması üzerine kurulu. Uygulama notları arasında pdf biçiminde dosyası ve AVR assembler biçiminde (.asm ve .hex biçiminde dosyası) var. Ama burada anlatılan uygulama üzerine programcılara tarafından bazı eklemeler yapılmış.

Burada zaten yapılmış olan bir programcıyı biraz daha geliştirip ek bir devre ile özellikle bu sayfada sunulan "24 Saat Modunda LED'li Dijital Saat" ve "AVR ile LED Ekranlı Sayıcı" gibi devrelerde işlemciyi programlamak için (üzerinde isp bağlantısı olmayan) kullanıldı. Bu programlayıcının kullanıldığı devreler zaten belli. (10 bacaklı konnektör bulunan devreler)

Programlayıcıyı intenet araştırmalar esnasıda rastladım. İlk yapım çalışmaları ne yazık ki hayal kırılığı ile sonuçlandı. İnternet üzerindeki devrenin bilgisayar ile bağlantıyı sağlayan RS232 portu ayrık elemanlar ile oluşturulmuş bir devre idi. Ve bu bölüm üzerinden iletişimi sağlıyordu. Bu besleme gerilimi açısından esnek bir tasarımdı. Daha sonraki araştırmalarda MAX232 tümdevresi kullanan programlayıcılar ile de rastladım. Hatta USB-RS232 dönüştürücü kullanarak aynı devreyi USB bağlantısı ile yapanlarda

Aslında birazda rastlantı sonucu burada anlatılacak devre kullanabileceğim besleme gerilimi açısından esnek ve RS232 iletişimini sağlayabilecek bir tümdevreye buldum.

Sonuçta devre özellikleri olarak:
  1. Esnek besleme gerilimi (çünkü programlayıcı beslemesini programladığı devreden alıyor. Dolayısı ile diyelim ki 3.3V ile çalışan bir devre programlandığında programlayıcı beslemesi de 3.3V olacaktır).
  2. 10 bacak ISP üzerinden programlama. Gerektiğinde dönüştürücü ile 6 bacak isp konnektörü
  3. RS232 üzerinden bilgisayar ile bağlantı. Bilgisayar program olarak ATMEL "AVR Studio" programı kullanılıyor. Ben Assembler ile program oluşturduğum ve bu işe bulaştığımdan beri bu programı kullandığım için bu program ile çalışması benim için önemliydi.
  4. İşlemlerin 2 led üzerinde gösterilmesi.

Tabii ki şunu itiraf edeyim ki işlemcinin programı başkaları tarafından yazılmış ve bu tür devreler üzerinde internet üzerinde araştırma yaparak kendinizde bulabilirsiniz.

Devredeki işlemci AT90S2313, ama bu işlemci üretimden kaldırılmış. Onun yerine bazı program değişiklikleri yapılarak ATtiny2313 kullanılabilir. İnternet üzerinde Attiny2313 kullanılan uygulamalar var.

Şekil-1 :AVR ISP Programlayıcı devresi.


Şekil-2 :Yardımcı programlayıcı devresi.


Bu programlayıcı devresinde yardımcı devre aslında gerekli değildir. Bu devreyi AT89Cxxxx içeren devrelerde AT90S2313 kullanmak için tasarlandı. Örneğin 24 Saat Modunda LED'li Dijital Saat ve AVR ile LED Ekranlı Sayıcı projeler öncelikle AT89C2051 ile kullanmak üzere tasarlanmıştı AT90S2313 ile kullanmak gerektiğinde isp portu olmadığında işlemciyi programlamak için yardımcı devre geliştirmek gerekti ve ek yardımcı devre geliştirildi.

Şekil-3 :AT90S2313 resmi.


Programlayıcı AT90S2313 işlemcisi üzerine kurulu. Ek devre de bu işlemciyi üzerinde isp portu bulunmayan devreler için programlamak üzere geliştirildi. Aslında istenirse diğer işlemciler için harici bir programlama yardıcısı oluşturacaklara bir örnek oluşturacaktır.

Şema

ISP programlayıcı
Programlayıcı ana işlemci IC1 üzerine kurulu. Seri port kontrolları, LED ışıkların kontrolları, ISP kontrolleri gibi tüm işlemleri yerine getirilir. XTL1,C6 ve C7 sistem için gereken saat sinyallerini üretir.LED1 ve LED2 sistem için işlem monitörüdür. IC2, C1,C3,C4 ve C5 bilgisayar ile işlemci arasında RS232 seviye dönüştürücüdür. Bağlantısı esnek besleme gerilimi kullanımına izin verir.(Bu tümdevre ile ilgili veri kağıtlarını araştırabilirsiniz. ISP konnektörü zaten programlayıcı için bağlantıyı içerir. Geri kalan kondansatörler zaten filtre için.

Ek devre
Bu bölüm aslında tüm devre olarak sadece IC1 var. Bu tüm devrede zaten 5V gerilim regülatörü. ZIF soketi zaten işlemci için bu belli. XTL1, C5 ve C6 işlemci için sinyal üreteci. ISP konnektörü programlayıcı girişidir. Bu kondansatörle birlikte geri kalan kondansatörler süzme elemanları olarak çalışıyor. D1 doğrultma için köprüdür.

Şekil-4:ISP programlayıcı ve ek devresinin blok şeması


Şekil-5:ISP Programlayıcı (üstteki) ve Ek devre (altta) şeması


Devre Yapımı

Devre yapımı açışısından söylenecek bir şey yok. Zaten devre yapacak bilgi ve beceriye sahipseniz zaten sizin için söylenecek bir söz yok. Ek devre üzerindeki ZIF soketi bulamazsanız normal entegre soketide kullanabilirsiniz.

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

Şekil-6:Devrenin yerleşim planı(üstte)Programlayıcı,(altta) Ek devre


Şekil-7:Devrenin baskı devresi şekli(üstte)Programlayıcı,(altta) Ek devre


Şekil-8:Kartın eleman ve yollarla birlikte yerleşim planı(üstte)Programlayıcı,(altta) Ek devre


Devre Elemanları

ISP Programlayıcı
820RR1,R2
10µF/25VC8
27pFC6,C7
100nFC2,C3,C9
470nFC1,C4,C5
MAX3232IC2
AT90S2313IC1
7,37280MHz kristalXTL1
3mm Yeşil LEDLED1
3mm Kırmızı LEDLED2
AT90S2313IC1
DB9 konnektörP1
10P konnektörISP

ISP Ek Devre

1KR1
10µF/25VC4
1000µF/25VC1
27pFC5,C6
100nFC2,C3,C7
4MHz kristalXTL1
3mm Kırmızı LED LED1
ZIF soket ZIF
7805 IC1
B150C2500 D1
Adaptör girişiDC1
10P konnektörISP


Malzeme listesi. Burada işlemci için soket ve 9V adaptör verilmemiştir. Entegreler için soket isteğe bağlıdır. Köprü olarak bacak bağlantıları uyan herhangi bir eleman kullanılabilir.

Şekil-9:Programlayıcıya besleme geldiğinde Yeşil sönük ve turuncu yanık


Şekil-10:Programlayıcı programlama esnasında Yeşil yanık ve turuncu sönük


Programlayıcı için gereken tek şey iki ucuna konnektör takılmış 10 şerit kablo. Aslında bu kablo programlayıcıyı tamamlayan parçadır. Çünkü programlayıcı ve programlanan devreler arasındaki isp bağlantısını bu kablo sağlayacaktır. Resimlerde gördüğünüz bu kablonun konnektörüdür.

Bilgisayar programı olarak birçok program ile kullanılabilmekte. ATMEL AVR Studio ile denediğim için diğer programlar konusunda bir şey söyleyemeyeceğim. AT90S2313, ATmega8 ve ATmega16 ATMEL AVR Studio ile programlayıcı kullanılarak programlandı. Diğerleri konusunda internet üzerinde kendinizin araştırmanız yerinde olur.

ATMEL AVR Studio için ATMEL internet sitesinde bulabilirsiniz.

Ekler:

RS232 AVR ISP Programlayıcı 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...

13 Haziran 2009 Cumartesi

Panasonik UF-150 LCD Ekranını Kullanma


Kullanılmış olan elektronik ürünlerin çoğunlukla geri dönüşümü sınırlıdır. Çünkü çoğunlukla cihazı üreten firmalar ticari kaygılardan dolayı iç bağlantıları açıklamazlar. Peki kullanım ömrünü tamamlayan cihazlar ne olur? Bunun için sıradan kullanıcılar için en yakın çöp bidonu, işi biraz daha iyi bilenler ve geri dönüşümü olan ürünler için eskiciler ve hurdaclar birer çözümdür. Peki öyle mi?

Burada Panasonic firmasının üretmiş olduğu Panafax UF-150 faks makinesinin üzerinde bulunan LCD ekranın mevcut cihazlarda kullanmak için ne yapılacağı anlatılacaktır. Bu arada bu ürün çok eski olduğunu belirtmete fayda var. O kadar eski ki üzerindeki lehimler kurşun içerikli.

Not: Günümüzde ticari elektronik ürünlerde özellikle uluslararası ticareti yapılan ürünlerde kurşun içermeyen lehim kullanılmaktadır. Hatta cihazlar bu standartı
belirten işaretler taşımaktadırlar.

Şekil-1 :Fakstan sökülmüş kartın önden ve arkadan görünümü.

Bu modül panasonik bir faksın ekran ve buton kontrol modülü idi. Kart üzerindeki kod: 56AAA1164 şekilde yer almaktadır. Bu karta ek olarak oldukça yüksek sayıda bir butonun kontrol edildiği ek bir kart vardı. O bölüm kullanım için gerekli olmadığı için kesip atıldı.

Şekil-2 :HD44780 LCD kontroller işlemcisi.

LCD kartı bir ana kart tarafıdan gerekli komutlar ve yönlendirmeleri kablo üzerinden sağlıyordu. Yapılan inceleme sonucu LCD ekran bölümü bilinen bir sürücü olan HD44780 kontroler tarafından yönetilmektedir.

Şekil-3 :LCD Ekran kartının kesileceği yer ve sökülenler.

Aslında kartı kesme planlanmadı. Ama DIL kılıflı HD6301 enteresinin takılı olduğu soket kart üzerinden sökülürken, kart zarar gördüğü için şekil 3'deki kesikli çizgi ile gösterildiği yerden kesildi. Tabii kart üzerindeki bütün butonların söküldüğünü belirtelim.

Ek olarak kırmızı daire içinde gösterilen konnektör ve kart üzerinde R4 ve R5 kodlu dirençlerde söküldü. Sökülen konnektör kullanılmayacak. R4 ve R5 dirençler aslında Kontrast için kullanılıyor. Sistemize uyarlamak için bu dirençler iptal edilmesi gerekiyor.

Şekil-4 :HD44780 işlemcisinin bacakları.

Devre üzerinde yapılan incelemede kontrol işlemcisinin tanıdık olduğu anlaşıldı. (Aslında işlemci belirlendikten sonra projeye geçildi) Şekil-4 bu kontroller işlemcisinin en azından bizi doğrudan ilgilendiren bacak bağlantılarını gösteriyor.Kırmızı ile gösterilenler veri bacakları ve açık mavi ile gösterilen bacaklar kontrol bacaklarıdır.

Şekil-5 :Kontrast ayarı bölümü.

Vo kontrast ayarı içinde bir bacak gerekiyor. Bu önceklikle Şekil-5'de gösterilen şema üzerinden gidildi.R4 ve R5 dirençleri söküldü ve R5'in kontroller tarafından gelen bacak Vo olduğuna karar verildi. Besleme hatları için Şekil 3'deki sağ kenardaki elektrolitik kondansatör referans alındı.

Şekil-6 :Şerit kablo bağlantısı.(Şekilde Ro = Vo)

Zaten bunlar belirlendikten sonra yapılması gereken sadece şerit kablo bağlantısını uygun bir şekilde gerçekleştirmek oldu. Doğrudan LCD sürücü kartı üzerinden bacaklar karşılaştırmalı olarak kart üzerine lehimlendi

Şekil-7 :Kabloyu sabitlemek önemlidir. Hele ince kablolarla uğraşılıyorsa.

Eğer şerit kablo tek tek lehimlenirse, lehimlendiği yerden ne kadar kolay kopabileceğini bu işlemi yapanlar bilir. Bunun için kabloyu Şekil-7'de gösterildiği gibi biraz sıcak silikonla sabitlemekte fayda var.

Şekil_8:LCD modül sürücüsünün açılış ekranı.

RS485 (Seri) LCD Çevirici projesi ile birlikte denendiğinde açılış ekranını şekil-8 gösteriyor. En azından besleme geldiğinde kartın sol üst köşesindeki LED ışık veriyor.


Şekil-9 :Bilgisayar ile iletişimden. Aynı zamanda arka plandaki kareli kağıt LCD modül boyutu hakkında fikir verir.


Şekil-10 :Termometre oda sıcaklığı değeri gösterirken.

Şekil-9 ve şekil-10 bu LCD modülün iki uygulama üzerinde kullanımına örnek verir.

Ekler:

Devre için gereken dosya yoktur! Kart ve kontroller işlemciler için bilgiyi internet üzerinde kendiniz de bulabilirsiniz.

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

1 Haziran 2009 Pazartesi

LCD Ekran ve Atmega8 RS485 İletişimi Termometre


Gerçekleştirdiğimiz uygulamalar arasında RS485 iletişimli termometre ve RS485 iletişimli LCD ekran vardı. Şu anki projeyi LED ekran ilede gerçekleştirdik. Ama LED ekranların doğrudan güneş ışığı altında verimli çalıştıkları söylenemez. Proje özellikle gün ışğı altında çalışacaksa bu uygulamanın mutlaka farklı yöntemle sonucu gösteren bir yapıda olması gerekiyor. Örneğin LCD yöntemle çalışan sistemlerde. Bu tür uygulamalar ışığı kendi üretmez (her ne kadar yardımcı ışık kaynakları olsada), sadece gelen sinyale göre bir kaynaktan gelen ışığını geçip geçmemesini denetler. Bu denetleme sistemlerine girmeden doğrudan bu denetleme işleminin yapıldığı uygulamayı kullanarak, daha önce gerçekleştirilen termometre uygulaması ile birleştirilecek.

Bu projede termometre bölümünün ana kontroller olarak düzenlenip ekranda gösterilecek verilerin LCD ekrana uygun bir şekilde biçimlendirimesi olacağı düşünülerek bu yönde harekete geçildi. İlk adı olarak RS485 sadece veri gönderecek biçimde veri akış yönü atandı.

Şekil-1 :LCD Ekran kartı ile oda sıcaklığı ölçümü(2x20 ve 4x20).


Şekil-2 :Termometre kartı.

Burada LCD ekran olarak RS485 (Seri) LCD Çevirici projesi ve Termometre olarak ATMEGA8 ve bilgisayar ile RS485 iletişimli Termometre projesini kullanılacak. Yani her iki projedeki bilgisayar bağlantısını çıkartıp sadece bu iki modül kullanılacak.Bu modüllerin yapımları ile ilgili bilgiler kendi modül başlıkları altında bulunabilir. İstenirse çalıştıklarından emin olmak için önce o projeler gerçekleştirilip, daha sonra bu projeye geçilebilir.

Şekil-3 :Sistemin blok şeması.

Aslında sözler yerine şekil-1'deki blok şeması herşeyi anlatmaya yeterlidir. Sistemin çalışması basitçe:

Şekil-4 :Termometre kartı ölçüm yapar ve sonucu LCD ekrana gönderir.

Termometre: Öncelikle sistem ilk açıldığında LCD ekrana silmesi için bir komut gönderiyor. Algılayıcı sıcaklık ile orantılı bir gerilim oluşturmakta. Bu İşlemci tarafından alınıp, işlenerek LCD ekran üzerinde gösterilecek bilgiye dönüşüyor.(Yani satır kodu,"Sıcaklık:" yüzler hanesi, onlar hanesi, birler hanesi,ondalık nokta, ondalık sayı ve "°C" işaretleri ile birlikte) Oluşturulan bilgi RS485 üzerinden gönderiliyor. Burada bu bölümün programı değiştirilecek.

Şekil-5 :LCD Gösterge kartı, resimdeki değer gece dış ortam sıcaklığını gösteriyor(en azından resmi çektiğim saatte öyle idi).

LCD Ekran: RS485 portundan alınan veri işlemci tarafından işlenerek ekran üzerinde gösterilmek üzere hazırlanır ve sürekli olarak gelen veri ekran üzerinde gösterilir. (Bu bölümün programında ekran silme daha öncemki projelerde yeterli iken bu projede tüm ekranın silmesini basitleştirmek için değişiklik yapılması gerekti.)

RS485 (Seri) LCD Çevirici ve ATMEGA8 ve bilgisayar ile RS485 iletişimli Termometre projelerinde konu etraflıca anlatıldığı için ilgili projelere bakılarak bu projenin nasıl çalıştığı rahatlıkla anlaşılabilir. Daha doğrusu sadece modüller ile ilgili bölümlerin incelenmesi yeterlidir.

Termometre programında ölçülen ADC değerini bizim anlayabileceğimiz ondalık sisteme dönüştürmek için matematik işlemlerini Atmaga8'in sınırlı kaynaklarında uğraşmak yerine basitçe bir dönüşüm tablo oluşturuldu.

Şimdi ADC'nin 10 bit olduğunu biliyoruz. Ama referans olarak iç referans kaynağı ve 2.5V ile atandı. Bu da demektir ki ADC 10 bit yerine 9 bit olacak. Çünkü LM35 entegresi maksimum ölçüm sıcaklığı olarak 125°C ve maksimum oluşturabileceği gerilim 1.25V olacak demektir. Buda 125°C ölçmek için 512 kademe olacaktır. Böylece Excel tablosunda 512 aralığın hangi sıcaklığa karşılık geldiğin belirleyip, her bir hane için hangi rakamın karşılık geldiğini belirlendi. Basitce maksimum 125°C ölçüldüğü için 3 hane buna ayrıldı ve son hane ondalık değer olarak atandı. Noktada sağdan itibaren 1. ve 2. hane arasına konuldu. Tüm bunlara göre 3 tane tablo oluşturuldu.Soldan birinci hane için sadece 2 değer bulunduğundan (0 ve 1) sadece hangi ADC değerinden itibaren değiştiği belirlenerek atanmasını sağlayacak bir karşılaştırma betiği oluşturuldu.

Değer çevirme için tablo örneği. Soldaki sıfır değeri gösterilmemesi için (a ile gösterilen) boş olarak atanmış.


Hesaplama için: Sıcaklık(onluk sistem)=ADC değeri X 1.25/512

Sonuçta bunlar 3 tane tablo ve karşılaştırma betiği kullanılarak ölçülen ADC değeri onluk sayı sistemene dönüştürülüyor. Sonra LCD ekran satır kodu, "Sıcaklık:" yazısı, yüzler, onlar, birler hanesi, nokta, ondalık değer hanesi, "°C" yazısı ve son olarak gönderilen verinin bittiğini belirten kod gönderiliyor.

Termometre devresinde uygulama için metal kılıflı LM35 kullanılması ve kablo ile biraz uzatılması bazı uygulamalar için kolaylık ve hassasiyet sağlayacaktır.(Aslında zorunluluk bile olacaktır)

Şekil-6 :Soğuk ve sıcak su için kullandığım test ortamı. Ne yazık ki elimde termos yoktu.

LED ekran ve termometreyi birleştiren projede aklıma gelmediği için bu şekilde test işlemini iptal etmek zorunda kalmıştım. Ama her zaman basit sorunların basit çözümleri var ama bir noktaya kadar.

Soğuk testi için bir kap içine su buzdolabının buzluğunu konuldu ve soğutuldu. Termometre devresi bir buzdolabı poşeti içine konup içinde buz bulunan su dolu kaba daldırıldı. Sonuç ne yazık ki tam sıfıra ulaşamadı ama cesaret verici bir düzeye ulaştı. Sanırım içinde buz bulunan kap ve devre ısı yalıtımı yeterli olmadığı için ısı algılayıcısını (LM35) yeterince soğutulamadı. En azından devrenin çalıştığı gözlenmiş oldu. Bu yöntemin pek iyi olduğunu söylenemez. Sanırım LM35 ile buzdolabı poşeti arasında biraz hava kalıyor ve yeterince soğuk su ile temas sağlıyamıyor.Poşet içinde kalan havadaki nem soğuk ortamda devre üzerinde yoğunlaştığını belirtmekte fayda var. Not: Devreler nemden hoşlanmaz.

Şekil-7 :Buzlu su için test sistemi çizimi.


Şekil-8 :Buzlu su ile elde edilebilen sıcaklık değerleri.

Sıcak testi aynı şekilde bir kap içine kaynamış su kondu ve devre buzdolabı poşeti içinde sıcak su içine daldırıldı. Şu meşhur 100°C hayaline ne yazık ki erişemedim. Neden ise binaların kışın yaşadığı sorun: Isı kaybı. (Termos kesinlikle gerekiyor) Çünkü kullanılan kap metal hatta sapları bile. Deneyde sapların bile ısındığını belirtmekte fayda var. Ama devrenin ısınma ile ilgili deneyinden en azından devrenin çalıştığı gözlendi.

Şekil-9 :Sıcak su için test sistemi çizimi.


Şekil-10 :Sıcak ile elde edilebilmiş sıcaklık değerleri.

Devre yapım ve malzeme listeleri ilgili projelerde anlatılmıştır. Burada termometre ve LCD ekran programı verilmiştir.

Ekler:


LCD Ekran ve Atmega8 RS485 İletişimi Termometre için dosyalar-birleşik

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

Translate

Sayfalar

Etiketler

İzleyiciler