Labels

Flash Labels by Blog Okulu


Ders 1 - Mikrodeneleyici Nedir ?

Bir OR kapısının ne iş yaptığını hepimizin biliyor olması gerekir. OR kapısı lojik bir kapıdır ve iki adet girişi ile bir adet çıkışı kontrol edebilir. Siz de DIP kılıfa sahip 4 adet OR kapısını içeren bir entegre(74LS32) ile bu kapıların nasıl çalıştığını breadboard üzerinde gözlemleyebilirsiniz. DIP kılıfa sahip entegrelerde bir Vcc pini bir de GND pini olması gerekir. Elektrik sinyalleri Vcc ve GND arasında akarak entegrenin çalışması sağlanmış olur. Burada kullandığınız entegrenin nasıl yapıldığını, tasarlandığını bilmek zorunda değilsiniz. Şimdilik sadece girişlerin çıkışı nasıl etkilediğini bilmeniz yeterlidir. Bunun için lojik 1 vermek istediğiniz girişi Vcc ucuna, lojik 0 vermek istediğiniz girişi ise GND ucuna bağlayabilirsiniz. Eğer bu işlemler denemek için biraz zor gibi görünüyorsa merak etmeyin. Bu sistemin nasıl çalıştığını denemenin daha basit bir yolu var.
Bir mikrodenetleyici, OR kapısına benzemektedir. Aynı OR kapısındaki gibi mikrodenetleyicilerde de girişler ve çıkışlar vardır. Burada asıl mükemmel olan şey ise mikrodenetleyiclerde bu işlemlerin kod yazılarak yapılmasıdır. Örneğin A ve B girişlerinin C çıkışını nasıl etkilediğini aşağıdaki kod ile gözlemleyebilirsiniz.

if (A == 1 || B == 1)
C=1;
else
C=0;

Burada verilen kod bir C kodudur. Bu kodu derledikten sonra mikrodenetleyiciye yüklerseniz kodun nasıl çalıştığını gözlemleyebilirsiniz.
Mikrodenetleyiciler elektroniğin her alanında kullanılmaktadır. Mesela ; Mikrodalga fırınlar, TV Uzaktan kumandaları, cep telefonları, mouse, yazıcı gibi cihazların hepsinde mikrodenetleyiciler kullanılmaktadır.
Önceleri, mikrodenetleyiciler sadece bir kez programlanabilir ROM yapısındaydı. Bu da demek oluyor ki mikrodenetleyiciyi bir kez programladıktan sonra eğer kodunuz yanlış çalışıyorsa yeni kodunuz için yeni bir miktrodenetleyiciye ihtiyacınız vardı. Fakat yeni teknoloji ile yeni mikrodenetleyiciler ROM hafıza yerine 'flash' hafıza içerdiği için binlerce kez programlanabilmekte.
Flash hafızalı mikrodeneyleyiciler bilgisayarlardan ve RAM'lerden biraz farklıdır. Bilgisayarlar çalışabilmek için çok fazla güce ihtiyaç duymaktadırlar. Ve çok da fazla ısınırlar. Bilgisayarlar, açılırken boot edilmek zorundadırlar fakat mikroedenetleyiciler sadece birkaç mili saniyede içerisinde flash hafızasındaki kodu çalıştırabilmektedirler.
Tekrar OR kapısına dönecek olursak; bu entegrenin giriş ve çıkışlar için kullanılabilen pinleri bulunmaktadır. Bir entegrenin içerisinde 4 adet OR kapısı olduğunu düşünürsek toplam 8 giriş ve 4 çıkış etmektedir. 2 pini de Vcc ve GND için eklersek toplam 14 pinli bir entegre ile 4 adet OR kapısını içeren bir yapıya sahip olabiliriz.
Bu işlemi bir mikrodenetleyici ile yapmayı düşünürsek bunun için GPIO pinlerini kullanmamız kaçınılmaz olacaktır. Bunun için aşağıdaki gibi bir kod yazılabilir.

if (PORTC.2 == 1)
kod bloğu...
Çıkış pinleri basit bir gecikme ile yanıp söndürülebilir. Örneğin ;

while (1)
{
RB3 = 1;
delay_ms(1000);
RB3 = 0;
delay_ms(1000);
}

Bu uygulama mikrodenetleyiciler dünyasının "Merhaba Dünya" uygulamasıdır. Küçük bir uygulama gibi görünse de mikrodenetleyicilerle program geliştirmeye ilk adımı atma niteliğini taşıdığından aslında önemli bir uygulamadır.

Piyasada yaygın olarak kullanılan mikrodenetleyicilerin genel özellikleri aşağıda verilmiştir.
  • PIC - Microchip firmasının klasik mikrodenetleyicisidir. Piyasada en yaygın bulunan, kullanımı kolay bir mikrodenetleyicidir.
  • AVR - PIC mikrodenetleyicilerin yaptığı tüm işleri yapabilmesine ek olarak PIC'ten daha hızlı, daha iyi ve daha ucuzdur.
  • MSP430 - Texas Instruments firmasının ürettiği başarılı bir mikrodenetleyicidir. AVR'ler kadar güçlü değildir fakat düşük güç tüketme konusunda oldukça iddialıdır. Bir adet AA pil ile 5 yıla kadar dayanabilmektedir.
  • ARM - PIC veya AVR gibi basit, 8 bit mikrodenetleyicilerin aksine ARM'lar 32 bit ve daha kompleks bir yapıya sahiptirler. Endüstrinin her alanında sıklıkla kullanılan bu mikrodenetleyiciler aslında 8 bit mikrodenetleyicilerden çok da fazla pahalı değillerdir. Fakat diğer mikrodenetleyicilere nazaran daha kompleks bir yapıya sahip olduğu için başlangıç için tercih edilmekte genellikle profesyonel uygulamalarda tercih edilmektedir.
  • 8051 - 8051 mimarisi 1980'lerde Intel tarafından geliştirilmiştir. Intel'in o yıllarda sadece kontrol amaçlı olmak üzere bit bit işlem yapabilen bir sistemi geliştirmesinin ardından fazla popüler olan 8051 mimarisini birçok ünlü marka da satın alıp üretmişlerdir. Ve şu anda hala kullanılmaktadır. Ayrıca bu mimari ARM mimarisinin de temelini oluşturmaktadır.
  • 68HC08/11 - Bu mikrodenetleyici ise Motorola'nın üretmiş olduğu önceden oldukça popüler olmuş, şimdi ise üniversitelerde temel mikroişlemci mimarisinin üzerinden işlendiği bir mikrodenetleyicidir.

Ben uygulamalarımda Atmega168 mikrodenetleyicisini kullanacağım. Neden mi ?
  • 20 MIPS(Mega Insturction Per Second)
  • Ucuz
  • Gerekebilecek tüm çevre birimleri içerisinde barındırıyor.
  • 16 KB program hafızası başlangıç projeleri için fazlasıyla yetiyor.
  • Ücretsiz C derleyicisi.
  • 20$ gibi bir maliyetle programlayıcı ve debugger edinilebiliyor.
Herhangi bir entegre devre mutlaka üzerinden enerji alabileceği bir kaynağa ihtiyaç duymaktadır. Bu kaynak entegreyi Vcc ve GND uçlarından beslemek için kullanılmadır. Vcc, TTL( 5 volt) seviyesinde çalışan entegreler için +5voltu ifade eder. GND ise gorund kelimesinin kısaltılmışıdır. Mikrodenetleyiciler genellikle TTL seviyesinde çalışan entegrelerdir. Dolayısıyla bu entegreleri beslemek için mutlaka bir 5v'luk kaynağımız olmalıdır.

5 Voltluk Gerilim Elde Etmek

Bu ders için gerekli olan tüm parçaları burdan temin edebilirsiniz.
Mikrodenetleyiciler DC (Direct Current) gerilimle çalışan elemanlar olduğu için şehir şebekesi(AC) ile çalışmaya uygun değildir. Bunun için 220v AC şehir şebekesini 5v DC kaynağa dönüştürücü bir kaynağa ihtiyaç duymaktayız.
Not : Eğer mikrodenetleyiciniz Vcc ve GND pinlerine ters gerilim verirseniz yani Vcc pinine GND, GND pinine ise +5v verirseniz mikrodenetleyiciniz yanacak ve bir daha kullanılmaz hale gelecektir. Aynı şekilde +5v tan fazla bir gerilim verdiğiniz zaman da aynı sonuçla karşılaşırsınız. Bunun için denemelerinizi yaparken dikkatli olmalısınız.
8-9v'luk bir gerilimi 5v a indirmek için farklı regülatörler kullanılmaktadır. Fakat en yaygını LM7805'dir. Bu regülatörün girişine yaklaşık olarak 6v ve üzeri bir gerilim uyguladığınız takdirde çıkışınız sabit 5v olmaktadır. Fakat eğer çıkıştan çok fazla akım çekilecekse bu regülatör çok fazla ısındığı için uygun değildir. Tipik mikrodenetleyici uygulamaları için idealdir. Aşağıda LM7805 Voltaj Regülatörünün TO-220 kılıfı görülmektedir.


Breadboard üzerine bu regülatörü takıp aşağıdaki gibi bağlamalısınız.


Not : Şemada GND'ler ayrı ayrı bağlanmış gibi görünse de breadboard bağlantısında tüm GND'ler ortak olmalıdır.
Bu devreyi bradboarda kurup AVO metre ile çıkış gerilimini ölçtüğümüz zaman tam olarak 5.00v gibi bir değer göremeyiz. Çünkü elektronikte herşey teorikteki gibi değildir. Her parçanın mutlaka toleranslar olacaktır. Bu regülatör için tolerans değeri +-%5 tir. Yani ölçtüğümüz değer ya 5.25v ya da 4.75v çıkacaktır. Pratikte biz bunu 5.1v veya 4.9v olarak görebiliriz.
Tipik olarak yukarıdaki gibi bir devre kurduğumuz zaman eğer sadece çıkış gerilimine bakıyorsak 5v a yakın bir değer alabiliriz. Fakat girişten gelen gürültü faktörünü ve dalgacıkları(ripple) da muhakkak düşünmeliyiz. Bunu AVO metre ile görmeyiz fakat çıkışımızı bir osilaskop ile incelersek bu dalgacıkların ve gürültünün çıkış gerilimine etkisini görebiliriz. Bu faktörler, 100uF ya da 10uF kutuplu kondansatörlerle büyük ölçüde yok edilebilir.
Kutuplu kondansatörler, üzerlerindeki gerilimi depo edebilen devre elemanlarıdır. Ve üzerlerinde sadece DC gerilim depo ettiklerinden dolayı giriş geriliminde olan dalgacıklar bu kondansatör üzerinde oluşmayacaktır. Ve dolayısıyla da çıkışımız olabildiği kadar saf düz bir sinyal(DC) olacaktır. Burada bu saflığı giriş için kullanılan kondansatörün büyüklüğü belirlemektedir. Örneğin 330uF...
Filtre devremiz LM7805 regülatörüne ek olarak aşağıdaki gibi kurulabilir.

Not : Burada kullanılacak kondansatörlerin maksimum geriliminin 100uF için >9v, 10uF için >5v olmasına dikkat edilmelidir. Bunu iki katı olarak da hesaplayabiliriz. Mesela 9v için en az 18v'luk bir kondansatör, 5v için ise en az 10v'luk bir kondansatör kullanılabilir. Aksi halde kondansatörler arasındaki köprü delineceğinden kondansatörler bir daha kullanılmaz hale gelecektir.
Kondansatörleri biraz daha yakından inceleyecek olursak ;
  • Elektrolitik Kondansatörler (Kutuplu Kondansatörler) : Çok büyük kapasite değerlerine ulaşabilen (10uF ... 1,000,000 F) kondansatörlerdir. Bir + ayağı bir de - ayağı olması sebebiyle "Kutuplu Kondasatör" olarak isimlendirilmiştir.

  • 100UF - 16v Elektrolitik Kondansatör
  • Seramik Kondansatörler : En çok kullanılan fakat fazla ucuz olmayan kondansatör çeşididir. Elektrolitik kondansatörler gibi + ve - ayakları yoktur. Yani yönlü değillerdir. Ve elektrolitik kondansatörler kadar yüksek kapasitelere sahip değillerdir.
  • Birçok farklı kondansatör çeşidi bulunduğu için hepsine burada değinilmeyecektir. Farklı çeşitleri internetten araştırabilirisiniz
Tekrar breadboarddaki devremize dönecek olursak; Bu kondansatörleri bağlarken dikkatli olmalıyız. Yani pozitif gerilim yönüne +, negatif gerilim yönüne - ayaklarını bağlamalıyız. Eğer tersini yaparsak kondansatörümüz delinecektir.

Yukarıdaki resimde en sağdaki kondansatör, üzerine uygulanan gerilimden dolayı delinmiş bir kondansatördür. Yani ya + - ayakları ters bağlandı veya kondansatörün taşıyabileceği maksimum gerilimden daha fazla gerilim uygulandı ise bu durum gerçekleşir. Böyle bir durum sonucunda ise kondansatör artık filtre görevi yapamayacaktır. Doğrudan toprak ile kısa devre olacaktır.
Herhangi bir terslik anında devrenin elektrikle ilişkisini kesmek için bir anahtar devresi şemamıza eklenebilir.

Bu şekilde girişle hiçbir bağlantımız olmadan devremizi açıp kapatabilmekteyiz. Bu, bize pratik olarak büyük ölçüde kolaylık sağlamaktadır. Anahtarlama elemanının 3 adet ayağı bulunmaktadır. Bunlardan 2. ayak ortak olarak kullanılmakta, diğer ikisi ise amacımıza göre bağlanabilmektedir. Biz bir ayağı devrenin elektrikle ilişkisini kesmek için boş bırakacağız. 2 ve 3. ayaklar sırası ile 9v ve GND olacaktır.
Güvenliği tam sağlamak amacıyla 9v'luk girişin + ve - uçlarını karıştırabileceğimizi de düşünerek devremize bir de koruma diyotu eklememiz gerekmektedir. Bu diyot sayesinde Vcc yerine GND, GND yerine ise Vcc geldiği zaman devremiz yanmayacaktır. Çünkü D1 diyotu sayesinde sadece tek yönlü iletim olmaktadır.
Burada diyot, üzerinden sadece pozitif yönlü gerilimin geçmesine izin vermektedir. Nasıl olduğunu incelersek ;
Bir diyotun Anot ve Katot uçları olmak üzere iki adet ucu vardır. Eğer biz Anot(A) ucuna +, Katot(K) ucuna ise - verirsek diyot iletime geçer ve kısa devre görevi görür. Bu işleme doğru polarma denilmektedir. Eğer tam tersi bir gerilim uygularsak diyot bu gerilime karşı koyacaktır. Diyotun bu tepkisine ise ters polarma denir. Burada doğru polarma durumunda diyotun iletime geçmesi için minimum 0.7v'luk bir gerilim uygulanmalıdır(silisyum diyotlarda).
Ters polarmada ise, diyotun kırılma gerilimi denilen bir durum vardır. Bu değer, her diyot için farklı olabilir. Eğer bu değerin üzerinde bir gerilim diyota uygulanırsa diyot jonksiyonunda(birleşim yüzeyinde) oluşan ısı nedeniyle delinecek ve bulunduğu yeri tamamen kısa devre durumuna çevirecektir.
Bizim breadboarda kurduğumuz devrede 1 Amperlik 1N4001 silisyum diyodunu seçtik. Notmalde dijital bir devrede 1 Amperlik bir yüke ihtiyaç duyulmaz fakat her açıdan garanti olması için bu koruma diyotunu yüksek güçte seçtik.
Devremize bir de çıkışımızı görmek amacıyla LED ekleyebiliriz. LED'ler, genel olarak 20mA gibi bir akıma ihtiyaç duymaktadır.

Eğer bir LED üzerinden 20mA den daha fazla akım geçerse bu akım LED için tehlikeli olabilir. Bu sebeple devremize eklediğimiz LED için bir akım sınırlama devresi tasarlamamız gerekmektedir. Bu çok kolaydır. Devrede kullandığımız LED'e seri bir direnç eklememiz bu iş için yeterli olacaktır. Bu direncin ne değerinin ne olması gerektiğini hesaplarsak ;

V = I x R( Ohm Kanunu)
V = 5v (Çıkış Gerilimi)
I = 20mA (0.02 A)
R = ı

5 = 0.02 x R
R= 250 Ohm

Bu hesap sonucunda kullanmamız gereken direnç değerinin 250 Ohm civarı bir değerde olması gerektiğini görüyoruz. Pratikte 250 Ohm gibi bir değerdeki direnci bulmak belki biraz zor olabilir. Bu sebeple eğer LED'inizin daha parlak yanmasını istiyorsanız 220 Ohm, daha sönük yanması ve az akım harcamasını istiyorsanız 330 Ohm kullanabilirsiniz. Yeni devre şemamız aşağıdaki gibi olacaktır.

Eagle schematic / PDF
Devremiz, bu haliyle çalışıyor gibi görünüyor. Devreyi breadboard a kurduktan sonra anahtarı açmadan önce her şeyin doğru olduğundan emin olun. Eğer anahtarı açtınız ve LED in yanmadığını gördüyseniz hemen anahtarı kapatın. Ve sonra tüm bağlantıların doğruluğunu tekrar kontrol edin. Eğer tüm bağlantıların doğru olduğundan eminseniz bir de LED in çalışıp çalışmadığını AVO metre ile test edin.
Şimdi regülatör devremiz için kullandığımız bu filtre devresinin ne işe yaradığına teknik olarak bakalım.
Eğer giriş geriliminizde 500mV gibi bir dalgacık(ripple) varsa bu dalgalanma mikrodenetleyicinizin kararsız çalışmasına sebep olabilir. Bu şu anlama gelmektedir : Eğer 4.8v gibi bir giriş geriliminiz varsa bu değer 4.3v a iniyor ve sonra tekrar 4.8v a çıkıyor demektir. Bu dalgalanma ise mikrodenetleyiciler, dijital entegreler için pek de iyi bir durum değildir. Hatta çoğu firma bunu engelleyip mikrodenetleyicilerinin yanmaması için çiplerinin içerisine koruma kısmı eklemiştir.
Örneğin giriş gerilimimizde 500mV gibi bir dalgalanama var ve Analog / Dijital dönüştürücü ile sıcaklık ölçümü yapıyorsak ve her 100mV un 1 santigrat C olduğunu düşünürsek 25 C için 2500mV(2.5V) gibi bir değer okumamız gerekir. Fakat 500mV'luk bir dalgalanma neticesinde bu değer 2000mV(2.0v) ve 3000mV(3.0v) arasında sürekli oynayacaktır. Bu örnekte dalgalanmanın ölçüm sonuçlarına ne şekilde yansıdığı çok belirgin bir şekilde görülmektedir.

Breadboardlar

Breadboardlar hakkında daha geniş bir bilgi almak isterseniz Tom Igoe's breakdown un breadboard hakkındaki yazısını okuyabilirsiniz. Kısaca; sağ ve solda gördüğünüz kırmızı ve mavi sütunlar kendi arasında kısa devredir. Genellikle + ve - buradan verilerek breadboardun herhangi bir yerinden + ve - ye ulaşım kolayca sağlanmış olur. Diğer yerler ise aradaki boşluk hariç her sütun kendi arasında kısa devredir. Mesela aşağıdaki resimde görünen 10 numaralı sütundaki 5 delik kendi arasında tamamen kısa devredir. Bunun diğer yan sütunlarla hiçbir şekilde bağlantısı yoktur. Ve diğerleri de aynı şekilde.

Güç girişi, anahtar, LM7805 ve LED


LED'ler

LED'ler (Light emitting diodes) tıpkı diyotlar gibi doğru polarmada çalışan devre elemanlarıdırlar. Zaten aslında LED'ler de bir çeşit diyottur. Türkçesi Işık yayan diyot olarak da bilinmektedir. LED'ler şematik çizimde aşağıdaki gibi gösterilirler.

Tipik olarak LED'ler de normal diyotlar gibi anodunda 0.7v ve üzeri bir gerilim oluştuğu zaman iletime geçerler ve üzerlerindeki bu gerilimi ışık olarak etrafa yayarlar. LED'ler üzerlerinde kimyasal bir değişiklik olduğundan dolayı ışık yaydıkları için çalışma mantıkları ampullerden farklıdır. Çalışmak için mutlaka DC gerilime ihtiyaç duyarlar. Ve ömürleri ampullere göre çok daha uzundur. Ayrıca çok az akım çektikleri için pilli devrelerde kullanılabilirler.

Devrede kullanılan anahtarın toplam üç adet ayağı vardır. Bunlardan ortadaki ayak sol ayak ve sağ ayak arasında iletişimi sağlamaktadır. Eğer anahtarı sol tarafa çevirirseniz sol ve orta ayak kısa devre olmakta, sağ tarafa çevirirseniz sağ ve orta ayak kısa devre olmaktadır.
Fakat siz aşağıdaki gibi bir devre kurup anahtarı açsanız bile LED'in yanmadığını göreceksiniz.

Anahtar Açık İken Devrenin Durumu
Çünkü breadboard için ufak bir düzenleme gerekmektedir. Breadboardlar, üzerinde iki ayrı devrenin kurulabilmesi için orta kısımdan elektriksel olarak ayrılmışlardır. Yani breadboardun tam ortadan solda kalan kısmının + ve - girişleri, sağda kalan kısmının + ve - girişleri ile bağlantılı değildir. Eğer sağ taraftaki gibi + ve - leri birleştirmek istiyorsanız aşağıdaki ufak düzeni breadboard üzerine eklemeniz gerekmektedir.

Bağlantılar Yapıldıktan Sonra Devre Çalışmaktadır
Breadboard üzerine voltaj regüle devremizi kurduktan sonra çıkış voltajımızın ne kadar doğru olduğunu AVO metre ile gözlemleyebiliriz.

Resimde de görüldüğü gibi 5v'luk regülatör kullanmamıza rağmen ölçtüğümüz gerilim 4.98v çıkmıştır. Bu, tüm pratik devrelerde böyledir. Bir direncin, kondansatörün vb... gibi devre elemanlarının değeri hiçbir zaman bire bir doğru çıkmaz. Çünkü pratikte toleranslar vardır. Bu toleranslar sonucunda devredeki değerler bizim hesapladığımızdan ger zaman farklı çıkmaktadır. Fakat 4.8volt gerilim ile Atmega328(veya 168) çalışabileceğinden dolayı bu durum bizim için bir problem oluşturmamaktadır.
Son olarak devremize güvenlik açısından bir PTC ekleyebiliriz. Bu ekleyeceğimiz PTC sayesinde eğer breadboad üzerinde Vcc ve GND (+ ve -) yi kısa devre yapsak bile PTC kısa devre oluşmasını önleyecektir. Fakat maksimum 250mA kadar dayanabilecektir. Böyle bir kısa devre olursa PTC ısınacak ve devrenizdeki malzemeleri yanmaktan kurtaracaktır.


PTC'nin Devreye Seri Bağlanması

0 yorum:

Yorum Gönder

 
devoplyer © 2013. Katkılar Biribiziokuyor.com Blogger
Top