9 Mayıs 2017 Salı

KENDİ ARDUİNO'NU KENDİN YAP.(Atmega 328 Programlama)

Herkese Merhabalar.Bu yazıda sizlere Maker dediğimiz ; kendi ufak tefek elektronik projelerini yapan kişilerin kullandığı Arduino veya benzeri proje gelişme kartlarının basit bir şekilde nasıl çalıştığını ve bunları yapmanın ne kadar basit olduğunu bunlar olmadanda kendi devrenizi muhteşem bir şekilde tasarlayabileceğinizi anlatıcam.

He Asıl soru buna ne gerekmi var? Nasıl olsa adamlar yapmış neden kasıyosun kardeşim diyenler vardır.Ortalama orjinal bir Atmega 328 microdenetleyici 10 TL civarında bu aliexpress gibi sitelerde 5 TL ye kadar düşüyor.Devremiz için gerekli malzemeler ile toplam 15 tl ye kendi arduino'nuzu yapabilir veya arduino olmadan microdenetleyicinizi kendi devrelerinizde kullanabilirsiniz. 80 TL yerine 15 TL.Ve olayın en büyük hazzı ise Ben yaptım demek :) . Öyleyse devam :)


1.Arduino Nedir? Nasıl Çalışır.

   Lafı uzatmıycam Arduino veya bu mantıkla çalışan geliştirme kartları; Üzerlerinde
1-)PİC,ATMEGA,MOTOROLA vb  microdenetleyici entegreleri
2-)Bütün bu microdenetleyici entegreler için gerekli olan 5VDC voltajı ve bazı sensörler için gerekli 3.3VDC voltajı
3-)Microdenetleyiciyi programlayabilmemiz için gerekli USB data (TTL) çevirici devresini
4-)Microdenetleyicinin bacaklarına ulaşmamız için gerekli  pinleri barındırır.

Arduino veya benzeri kartlara 6-18VDC verdiğimizde içerisinde önceden yüklediğimiz programı çalıştırır ve ilgili pinlere (bunlar 6 adet analog ve 14 Adet dijital pindir) gerekli bilgileri gönderir veya alır.



        ilk önce Voltaj işini halledelim. Arduino veya ismi değişik geliştirme kartları, üzerlerinde 2 adet voltaj düzenleyici barındırır.Bunlardan birtanesi LM7805 entegresi ile 5VDC sağlarken, diğeri ise LM1117 ile 3.3VDC sağlamak için kullanılır. Neden hem 5VDV hemde 3.3VDV olması lazım diyenleriniz olabilir.Örnek vermek gerekirse Arduino üzerinde bulunan Atmega 328 microdenetleyicisi 5v ile çalışmakta.Yada aynı mantıkla çalışan PİC olsun veya Motorola Microdenetleyiciler olsun 5v ile çalışmaktalar.5VDC olmazsa olmazımız yani :) Bizim için gerekli diğer voltajımız ise 3.3VDC.Bu ise birçok sensörde kullanılan bir voltaj çeşididir.Mesala uzaktan iletişim sağlayan NRF24L01 3.3VDC ile çalışır veya internete bağlanan ESP8266 modülümüz.Eğer porjenizde kullanıcağınız sensörler 5v ile çalışıyor ise o zaman 3.3VDC'ye ihtiyacınız yok demektir.LM7805 entegresi 6-18VDC arasındaki  olan bütün DC voltajları 5VDC ye çevirir.Buda bizim Microdenetleyicimizin çalışması için yeterli voltajı elde etmemiz demektir.Genelde LM7805 çıkışına GND ile VCC pinleri arasına voltaj düzenleyici 0-16 voltaj aralığında ve 0.1MF kondansatör bağlanır.Böylece düzenli bir 5VDC elde etmiş olunur.Madem 5VDC elde etttik haydi bakalım :)


2.  Şimdi gelelim Arduino nasıl yapabiliriz.Veya Arduino olmadan nasıl microdenetleyici kullanabiliriz.? 

           Hariçten bir Usb TTL çevirici veya üst resimdeki gibi orjinal bir tane arduino sahibi iseniz bunlar sizin ihtiyacınız olan 5VDC regülatör ve USB çevirici barındırdığından kolay bir şekilde Arduino yazılımı kullanarak Microdenetliyicinizi programlayabilirsiniz.USB TTL çeviricinin RX pinini Atmega328'in TX pinine,USB TTL çeviricinin TX pinini Atmega328'in RX pinine bağlamanız ve GNG pinlerini ortak yapmanız yeterli.Zaten Orjinal Arduino kullanarak Atmega 328 microdenetleyicinizi programlarsanız proglem yok :) Şemada görüldüğü üzere Atmega 328 microdenetleyici entegresinin RESET ucuna 10Kohm luk bir direnç bağlayarak RESET,VCC,AREF,AVCC uclarına 5VDC vermelisiniz.Mevcut 2 tane GND ucunu  5VDC güç kaynağınızın ground'una bağlamanız gerekmekte.Aslında bu işlem Microdenetleyicimizin çalışması için yeterli.Ama XLAT1 ve XLAT2 uçlarına bir kristal osilatör bağlamazsak Microdenetleyicimiz içinde bulunan program satırlarını okumuyacaktır.Bu yüzden 22pF ile beraber 1 Adet 16Mhz hızında bir Kristal osilatörü GND ve XLAT uçlarına bağlıyoruz.Bu neden gerekli şimdi açıklıycam. F=1/T formulünü belki bilenleriniz vardır.Burada F harfi Hz cinsinden frekansı T harfi ise saniye cinsinden zamanı temsil eder. 16Mhz frekansında çalışan bir Osilatör kullanmamız F=1/T formülünden saniyede 16.000.000 kez program satırlarının denetlenmesi ve ilgili yazılıma göre işlemlerin yapılması demek.Bu ise bizim için oldukça yeterli bir zaman.Devreyi kurarsanız ve Microdenetleyicinizi programlarsanız Türk malı Arduino kartınız hayırlı olsun.İsmini ne yaparsınız bilmem :) Hehehe resst düğmesini unuttum :) Devrenizin 10Kohm direnç bağlayarak 5VDC verdiğiniz RESET pini ile GNG arasına bir buton bağlarsanız,butona bastığınızda kartınız RST olucak ve programınız baştan bağlayacaktır.

     

Bir Breadboard üzerine devrenizi kurabilir,Fritzing veya başka çizim programları ile kendi Arduinonunuzu yapabilir veya delikli pertenaks üzerine devrenizi kurabilirsiniz.Genelde bu tarz kartlarda entegre direk kartın üzerine lehimlenmez.O yüzden kartınızın üzerine Atmega 328 (veya başka bir microdenetleyici için uç sayıları değişebilir) microdenetleyicisinin oturması için 28 bacaklı bir DIP switch kullanılır.İşte şimdi kendi Arduinonunuzu yapabilir veya Atmega 328'i Arduino olmadan kullanabilir ve programlayabilirsiniz.

Herkese iyi çalışmalar.

İlker YILDIZHAN 
Mİ Elektronik