Mikrodenetleyici Programlamaya Giriş

PIC (Programmable Integrated Circuit - Programlanabilir Entegre Devre) kısaca entegre olarak bildiğimiz mikrodenetleyiciler elektronik uygulamalarda sıklıkla kullanılır. Bu devre elemanları dahili olarak bir işlemciye ve belleğe sahiptir. Hızları ve veri işleme kapasiteleri modellere göre değişiklik gösterir. Genellikle 4, 16 veya 32 Mhz hızlara sahiptirler. Bu hızlar osilatör adı verilen frekans oluşturan devre elemanlarıyla sağlanır. Bazı entegre türlerinde dahili osilatör bulunur ve harici osilatör kullanmaya gerek kalmaz.

İşlemci bir anda (döngüde) sadece 1 işlem yapabilir. Saniyede 1 işlem yapan bir işlemci olsa bunun hızı 1 Herz olurdu. 4 Mhz (4.000.000 Herz) hızında çalışan bir işlemci 1 saniyede 4 milyon işlem yapar. 32 Mhz işlemci de aynı şekilde saniyede 32 milyon işlem yapabilir.
Bu hızlar bilgisayar işlemcileriyle kıyaslandığında oldukça düşüktür. Normal bir bilgisayar işlemcisi en az 1 Ghz hızındadır ve saniyede 1 milyar işlem yapabilir. Ortalama bir işlemci 2,2 Ghz hızlarındadır ve genellikle 2 veya 4 çekirdeklidir. 2,2 Ghz 4 çekirdekli bir işlemci bir saniyede 8,8 milyar işlem yapabilir.

Burada söz ettiğimiz işlem birimi 1 Assembly komutudur. Bu komut geçici belleğe bir baytlık veri yazmak, bir porta bir baytlık veri yazmak veya bir pinin değerini değiştirmek olabilir. Led lambaları belirli aralıklarla yakıp söndürmek için bu hızlar bile oldukça fazladır. Bu nedenle işlemciyi bir süre bekletmek için geçici işlemler yaptırılır. Örneğin 5000 kez 200' e kadar bir değişkenin değeri arttırılarak 200 * 5000 = 1.000.000  işlemlik bir bekleme süresi oluşturulur. 4 Mhz bir işlemcide bu süre saniyenin 1 / 4 ü kadardır (yani 250 milisaniye). Bu işlem 4 kez tekrarlanarak 1000 milisaniyelik = 1 saniyelik bekleme süresi oluşturulabilir. Bu sayede bir led 1 saniye yanık tutulup 1 saniye sonunda söndürülebilir.

Assembly dili ile çalışırken bu beklemeyi yukarıdaki gibi döngülerle hesaplayıp ayarlamanız gerekirken CCS C veya BASIC gibi daha üst seviye dillerde hazır bekletme fonksiyonları bulunur. Örneğin C dilinde delay_ms(250) şeklinde 250 milisaniyelik bir bekleme aralığı oluşturulabilirken delay_us(100) şeklinde 100 mikro saniyelik bir bekleme aralığı oluşturulabilir.

Elektronik uygulamalara girişte genellikle ilk yapılan led yakıp söndürme uygulamalarıdır. Fiziksel bir devre kurmadan da bilgisayar ortamında Proteus ISIS programını veya benzer bir simülasyon programını kullanarak sanal devreler oluşturabilir ve entegreler için yazdığınız kodlarınızı test edebilirsiniz.

Sıklıkla tercih edilen mikrodenetleyicilerden bazıları Mikrochip firmasının ürettiği PIC16F84A, PIC16F628A, PIC16F877A entegreleridir. Ayrıca Atmel firmasının ATMega328 entegresi de Arduino devrelerinde sıklıkla kullanılıyor.

Elektronik devre hazırlamadan kullanılabilen Arduio elektronik uygulama geliştirme kartları entegrelere göre daha çok tercih ediliyor. Bunun başlıca nedenleri Arduino kartlarının USB kablosu ile bilgisayara bağlanarak doğrudan programlanabilmesi, Assembly veya C gibi dillerden daha kolay öğrenilmesi, Arduino uyumlu hazır bluetooth, kamera ve sensör gibi Shield adı verilen ek aygıtların kolayca bağlanıp programlanabilmesi örnek verilebilir.

Hobi amaçlı, tek veya bir kaç parça üretilecek elektronik cihazlarda Arduino kullanmak daha mantıklı olacaktır fakat daha fazla üretilecek elektronik aygıtlar, karmaşık makineler için entegre kullanmak daha az maliyetli olacağı için tercih edilmelidir. Ayrıca programlama ve elektronik konusunda uzmanlaşmak isteyenler kendilerini daha fazla geliştirebilmek için hazır devreler yerine kendi devrelerini kurup programlamaya çalışmalılar.

Bu blogdaki popüler yayınlar

Almanca - Nomen-Verb-Verbindungen

CSS ile Yüksekliği 100% Olarak Ayarlamak