Şekil-1. Dr. Özgür AKIN



Benzer belgeler
Mikroişlemciler ve Mikrodenetleyiciler

Erzurum Teknik Üniversitesi RobETÜ Kulübü Robot Eğitimleri. ARDUİNO EĞİTİMLERİ I Arş. Gör. Nurullah Gülmüş

Çalışma Açısından Bilgisayarlar

CUMHURİYET MESLEKİ VE TEKNİK ANADOLU LİSESİ BİLİŞİM TEKNOLOJİLERİNİN TEMELLERİ DERSİ DERS NOTLARI BELLEKLER

Arduino nedir? Arduino donanım ve yazılımın kolayca kullanılmasına dayalı bir açık kaynak elektronik platformdur.

Hacettepe Robot Topluluğu

MEB YÖK MESLEK YÜKSEKOKULLARI PROGRAM GELİŞTİRME PROJESİ. 1. Tipik bir mikrobilgisayar sistemin yapısı ve çalışması hakkında bilgi sahibi olabilme

HAFTA 1 KALICI OLMAYAN HAFIZA RAM SRAM DRAM DDRAM KALICI HAFIZA ROM PROM EPROM EEPROM FLASH HARDDISK

Embedded(Gömülü)Sistem Nedir?

8. MİKRO İŞLEMCİ VE MİKRODENETLEYİCİLER 1

Arduino Uno ile Hc-Sr04 ve Lcd Ekran Kullanarak Mesafe Ölçmek

Bellekler. Mikroişlemciler ve Mikrobilgisayarlar

Bahar Dönemi. Öğr.Gör. Vedat MARTTİN

DONANIM KURULUMU. Öğr. Gör. Murat YAZICI. 1. Hafta.

İŞLEMCİLER (CPU) İşlemciler bir cihazdaki tüm girdilerin tabii tutulduğu ve çıkış bilgilerinin üretildiği bölümdür.

EEM 419-Mikroişlemciler Güz 2017

Bilgisayar Yapısı MİKROİŞLEMCİ SİSTEMLERİ. Bilgisayar Temel Birimleri. MİB Yapısı. Kütükler. Kütükler

İçİndekİler. 1. Bölüm - Mİkro Denetleyİcİ Nedİr? 2. Bölüm - MİkroDenetleyİcİlerİ Anlamak

BELLEKLER. Kelime anlamı olarak RAM Random Access Memory yani Rastgele Erişilebilir Bellek cümlesinin kısaltılması ile oluşmuş bir tanımdır.

BÖLÜM Mikrodenetleyicisine Giriş

void setup() fonksiyonu: Bu fonksiyon program ilk açıldığında bir kere çalışır ve gerekli kalibrasyon, setup komutlarını buraya yazarız.

8051 Ailesi MCS51 ailesinin orijinal bir üyesidir ve bu ailenin çekirdeğini oluşturur çekirdeğinin temel özellikkleri aşağıda verilmiştir:

8051 Ailesi MCS51 ailesinin orijinal bir üyesidir ve bu ailenin çekirdeğini oluşturur çekirdeğinin temel özellikkleri aşağıda verilmiştir:

Günümüz. Intel Core i nm teknolojisi 1.86 Milyar tranzistör. Intel Core i nm teknolojisi 1.4 Milyar tranzistör

BİLGİSAYAR MİMARİSİ. Bilgisayar Bileşenleri Ve Programların Yürütülmesi. Özer Çelik Matematik-Bilgisayar Bölümü

Mikroişlemcili Sistemler ve Laboratuvarı

DERS 3 MİKROİŞLEMCİ SİSTEM MİMARİSİ. İçerik

Düşünelim? Günlük hayatta bilgisayar hangi alanlarda kullanılmaktadır? Bilgisayarın farklı tip ve özellikte olmasının sebepleri neler olabilir?

Haftalık Ders Saati Okul Eğitimi Süresi

Temel Bilgi Teknolojileri -1

Bilgisayar Yapısı MİKROİŞLEMCİ SİSTEMLERİ. Bilgisayar Temel Birimleri. Kütükler. Kütükler. Merkezi İşlem Biriminin İç Yapısı

ELEKTRİK-ELEKTRONİK TEKNOLOJİSİ

William Stallings Computer Organization and Architecture 9 th Edition

KONTROL VE OTOMASYON KULÜBÜ

Bilgisayar Mühendisliğine Giriş. Yrd.Doç.Dr.Hacer KARACAN

Birol Çapa Özen Özkaya Güz Dönemi Eğitimleri

MİKROİŞLEMCİ İLE A/D DÖNÜŞÜMÜ

Mikroişlemcili Sistemler ve Laboratuvarı 6.Hafta

DONANIM. 1-Sitem birimi (kasa ) ve iç donanım bileşenleri 2-Çevre birimleri ve tanımlamaları 3-Giriş ve çıkış donanım birimleri

Melih Hilmi ULUDAĞ. Yazılım Mühendisi Mekatronik Mühendisi. a aittir.

Mikrobilgisayar Sistemleri ve Assembler

BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ

BİLGİSAYAR BİLİMİ DERSİ (KUR-2)

Mikroişlemci Nedir? Mikrodenetleyici Nedir? Mikroişlemci iç yapısı Ders Giriş. Mikroişlemcili Sistem Uygulamaları

Mikrobilgisayarlar ve Assembler. Bahar Dönemi. Vedat Marttin

Donanımlar Hafta 1 Donanım

x86 Ailesi Mikroişlemciler ve Mikrobilgisayarlar

Bir mikroişlemci temel olarak üç kısımdan oluşur. Bunlar merkezi işlem birimi (CPU), giriş çıkış birimi (G/Ç) ve bellektir.

PROJE RAPORU. Proje adı: Pedalmatik 1 Giriş 2 Yöntem 3 Bulgular 6 Sonuç ve tartışma 7 Öneriler 7 Kaynakça 7

Göstericiler (Pointers)

BM-311 Bilgisayar Mimarisi. Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü

5. HAFTA KBT104 BİLGİSAYAR DONANIMI. KBUZEM Karabük Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi

1. Ders Giriş. Mikroişlemcili Sistem Uygulamaları

PORTLAR Bilgisayar: VERİ:

Merkezi İşlem Birimi MİKROİŞLEMCİ SİSTEMLERİ. MİB Yapısı. MİB in İç Yapısı. MİB Altbirimleri. MİB in İç Yapısı

(Random-Access Memory)

TBİL-405 Mikroişlemci Sistemleri Bölüm 2 1- % %01010 işleminin sonucu hangisidir? % %11000 %10001 %10101 %00011

Komutların Yürütülmesi

PIC16F877A nın Genel Özellikleri

Bilişim Teknolojileri

BİLGİSAYAR KULLANMA KURSU

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

Merkezi İşlem Birimi MİKROİŞLEMCİ SİSTEMLERİ. MİB Yapısı. MİB Altbirimleri. Durum Kütüğü. Yardımcı Kütükler

DERS 5 PIC 16F84 PROGRAMLAMA İÇERİK. PIC 16F84 bacak bağlantıları PIC 16F84 bellek yapısı Program belleği RAM bellek Değişken kullanımı Komutlar

Mikroişlemciler ve Programlama Dersi- ARDUINO. Sensörler ve Analog-Digital Çeviriciler İle Çalışma

T.C. ERCİYES ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ MEKATRONİK MÜHENDİSLİĞİ BÖLÜMÜ ELEKTRONİK SİSTEMLER LABORATUVARI 1

Sistem Programlama. Kesmeler(Interrupts): Kesme mikro işlemcinin üzerinde çalıştığı koda ara vererek başka bir kodu çalıştırması işlemidir.

DOKUMANLAR

BM-311 Bilgisayar Mimarisi

Mikroişlemci ile Analog-Sayısal Dönüştürücü (ADC)

4-Deney seti modüler yapıya sahiptir ve kabin içerisine tek bir board halinde monte edilmiştir.

Çoktan Seçmeli Değerlendirme Soruları Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Say

İşletim Sistemlerine Giriş

BM-311 Bilgisayar Mimarisi

Bahar Dönemi. Öğr.Gör. Vedat MARTTİN

Bilgisayar Temel kavramlar - Donanım -Yazılım Ufuk ÇAKIOĞLU

MC6800. Veri yolu D3 A11. Adres yolu A7 A6 NMI HALT DBE +5V 1 2. adres onaltılık onluk bit 07FF kullanıcının program alanı

Bilgisayar Mimarisi Nedir?

Bilgisayar Donanım 2010 BİLGİSAYAR

PROGRAMLAMAYA GİRİŞ DERS 2

Bilgisayarların Gelişimi

Örnek. int analogpin = 3; int val = 0; void setup() { Serial.begin(9600); } void loop() { val = analogread(analogpin); Serial.

1- KULLANILACAK DEVRE ELEMANLARININ TANITILMASI

MİKROBİLGİSAYAR SİSTEMLERİ VE ASSEMBLER

SAYISAL MANTIK LAB. PROJELERİ

BÖLÜM 6: KARŞILAŞTIRMALI KONTROL YAPILARI

DONANIM Bahar Dönemi TEMEL BİLİŞİM TEKNOLOJİLERİ

MİKROİŞLEMCİLER HAFIZA BİRİMLERİ. Doç.Dr. Mehmet Recep BOZKURT ADAPAZARI MESLEK YÜKSEKOKULU

Merkezi İşlem Birimi (CPU)

GAZİANTEP ÜNİVERSİTESİ

Fatih Üniversitesi. İstanbul. Haziran Bu eğitim dokümanlarının hazırlanmasında SIEMENS ve TEKO eğitim dokümanlarından faydalanılmıştır.

Von Neumann Mimarisi. Mikroişlemciler ve Mikrobilgisayarlar 1

DC motorların sürülmesi ve sürücü devreleri

ESM-361 Mikroişlemciler. 1. Hafta Ders Öğretim Üyesi Dr.Öğr.Üyesi Ayşe DEMİRHAN

DONANIM VE YAZILIM. Bilişim Teknolojileri ve Yazılım Dersi

İşletim Sistemleri (Operating Systems)

HSancak Nesne Tabanlı Programlama I Ders Notları

Mimari Esaslar. Mikroişlemcinin mimari esasları; Kaydediciler Veriyolları İş hatları dır.

B.Ç. / E.B. MİKROİŞLEMCİLER

DENEY-2. SABANCI ATL ÖĞRETMENLERİNDEN YAVUZ AYDIN ve UMUT MAYETİN'E VERDİKLERİ DESTEK İÇİN TEŞEKKÜR EDİYORUZ

Transkript:

Şekil-1 Dr. Özgür AKIN

GİRİŞ Mikroişlemci Nedir? Mikroişlemcileri Birbirinden Ayıran Özellikler Mikroişlemciyi Oluşturan Birimler ve Görevleri Bellekler Mikrodenetleyiciler Mikroişlemci ve Mikrodenetleyiciler Arasındaki Farklar. Mikrodenetleyici Seçimi ARDUINO nedir? Neden ARDIUNO? DONANIM YAZILIM Örnek Uygulamalar

Mikroişlemci Nedir? Mikroişlemciler, bilgisayar sisteminin kalbidir. Bilgisayar operasyonlarını kontrol ederek veri işleme işlevlerini yerine getirir. Kısaca işlemci veya CPU (Central Process Unit-Merkezi İşlem Birimi), kullanıcı ya da programcı tarafından yazılan programları meydana getiren komutları veya bilgileri yorumlamak ve yerine getirmek için gerekli olan tüm mantıksal devreleri kapsar. İlk mikroişlemci 1971 yılında hesap makinası amacıyla üretilen Intel firmasının 4004 adlı ürünüdür. Bir defada işleyebileceği verinin 4 bit olmasından dolayı 4 bitlik işlemci denilmekteydi.

Mikroişlemcileri Birbirinden Ayıran Özellikler 1)Kelime Uzunluğu: Mikro işlemcinin her saat darbesinde işlem yapabileceği bit sayısına kelime uzunluğu denir. İşlenen veriler işlemcinin özelliğine göre 4-bit, 8-bit, 16-bit, 32-bit ve 64-bit uzunluğunda olabilir. Kelime uzunluğu veri yolu uzunluğuna eşittir. 2)Komut İşleme Hızı: Mikro işlemcilerin çalışması için saat sinyallerine ihtiyaç vardır. İşlemci (CPU) her saat sinyalinde bir sonraki işlem basamağına geçer. Saat frekansı mikro işlemciye dışardan uygulanan ya da işlemcinin içinde bulunan osilatörün frekansıdır. Komut çevrim süresi ise herhangi bir komutun görevini tamamlayabilmesi için geçen süredir. 3)Adresleme Kapasitesi: Bir işlemcinin adresleme kapasitesi, adresleyebileceği veya doğrudan erişebileceği bellek alanının büyüklüğüdür. Bu büyüklük işlemcinin adres hattı sayısına bağlıdır. Bu hattın sayısı tasarlanacak sistemde kullanılabilecek bellek miktarını da belirlemektedir. 4)Kaydedici Sayısı: Mikro işlemcilerde kaydediciler, genel amaçlı kaydediciler ve özel amaçlı kaydediciler olmak üzere iki grupta toplanır. Bu kaydediciler 8, 16, 32 ve 64- bitlik olabilir. Kaydedicilerin sayısının programcının işinin kolaylaştırmasının yanında programın daha sade ve anlaşılır olmasını da sağlar. Her mikro işlemcinin kendine has yapısı ve kaydedici isimleri vardır. Herhangi bir mikro işlemciyi programlamaya başlamadan önce mutlaka bu kaydedicilerin isimlerinin ve ne tür işlevlere sahip olduklarının iyi bilinmesi gerekir.

Mikroişlemcileri Birbirinden Ayıran Özellikler 5)Farklı Adresleme Modları: Bir komutun işlenmesi için gerekli verilerin bir bellek bölgesinden alınması veya bir bellek bölgesine konulması ya da bellek kaydedici veya kaydedici kaydedici arasında değiştirilmesi için farklı erişim yöntemleri kullanılır. Mikro işlemcinin işleyeceği bilgiye farklı erişim şekilleri, "adresleme yöntemleri" olarak ifade edilir. Kısaca adresi tarif yollarıdır. Adresleme türleri; Doğrudan adresleme Dolaylı adresleme Veri tanımlı adresleme Kaydedici adresleme Mutlak adresleme Göreceli adresleme İndisli adresleme Akümülatör ve imalı adresleme

Mikroişlemcileri Birbirinden Ayıran Özellikler 6)İlave Edilecek Devrelere Uyumluluk: Mikro işlemcili sisteme eklenecek devrelerin en azından işlemci hızında çalışması gerekir. Sisteme ilave edilecek bellek entegrelerinin hızları işlemci ile aynı hızda olması tercih edilmelidir. Aynı şekilde sisteme takılan giriş çıkış birimlerinin hızları ve performansları mikro işlemci ile aynı veya çok yakın olmalıdır. Sisteme takılan birimlerin hızları mikro işlemciye göre düşükse mikro işlemcinin hızı diğer elemanlardaki yavaşlıktan dolayı düşer. Örneğin bir sensör ile ortam sıcaklığını ölçtüğümüzü düşünelim. Eğer sensörümüz geç ısınıp, soğuyorsa mikroişlemci ile sensörümüzü hızlı okumanın bir anlamı olmaz.

Mikroişlemciyi Oluşturan Birimler ve Görevleri 1)Kaydediciler Kaydediciler, genel ve özel amaçlı olmak üzere iki gruba ayrılır. Bunlardan başka programcıya gözükmeyen (ilgilendirmeyen) kaydediciler de vardır. Genel amaçlılara akümülatör, indis kaydedicileri girmektedir. Özel amaçlılar ise program sayıcı, yığın işaretçisi, bayraklar gibi kaydediciler girmektedir. A)Akümülatör: Akümülatörler,işlemcinin aritmetik ve mantık işlemleri sırasında depo görevi yapan önemli bir kaydedicidir. Ara değerlerin üzerinde tutulması, sisteme gelen verinin ilk alındığı yer, belleğe veya dış dünyaya gönderilecek verilerin tutulduğu yer olarak görev yapar. Bazı işlemcilerde B kaydedicisi de yardımcı akümülatör olarak kullanılır. B)İndis Kaydedicileri: İndis kaydedicilerinin temelde üç görevi vardır. Hesaplamlarda ara değerlerin geçici tutulmasında, program döngülerinde ve zamanlama uygulamalarında bir sayıcı olarak ve bellekte depolanmış bir dizi verinin üzerinde bir indisçi olarak kullanılmaktadır.

Mikroişlemciyi Oluşturan Birimler ve Görevleri 1)Kaydediciler C) Program Sayıcı (PC, Program Counter) :Mikro işlemcinin yürütmekte olduğu program komutlarının adres bilgisini tuttuğu özel amaçlı bir kaydedicidir. Mikroişlemcinin çalışması sırasında hangi komutun hangi sırada kullanılacağının bilinmesi gerekir. Bu görevi program sayıcı (PC) yerine getirir. Bellekten alınan her komut kodundan sonra alınacak yeni komut kodunun adresi program sayıcıya otomatik olarak işlemci tarafından yüklenir. Komut çevrimi, PC nin yeni adresi adres yoluna koyması ile başlar. Bunun ardından da ilgili kontrol sinyali gönderilir. Bellekten gelen her bilgiden sonra PC, kontrol devresinden aldığı işarete uyarak adres satırını 1 arttırır. Böylece bilgilerin bellekten işlemciye düzenli bir şekilde gelmesi sağlanır. D)Durum Kaydedicileri (Bayraklar): Mikro işlemci içinde veya dışardan yapılan herhangi aritmetiksel, mantıksal veya kesmelerle ilgili işlemlerin sonucuna göre bitleri değer değiştirir. Bir işlem sonucunda bu bitlerin aldığı değere göre program yön bulur. Programcı bu bitlerde oluşacak değerlere göre programa yön verebilir. Elde Bayrağı-C, Sıfır Bayrağı-Z, Ondalık Bayrağı-D, Taşma Bayrağı-V, Negatif Bayrağı-N gibi çeşitleri vardır.

Mikroişlemciyi Oluşturan Birimler ve Görevleri 2)Aritmetik ve Mantık Birimi (ALU) Mikroişlemcinin en önemli kısmını aritmetik ve lojik birimi (ALU) oluşturur. Bu ünite kaydediciler üzerinde toplama, çıkarma, karşılaştırma, kaydırma ve döndürme işlemleri yapar. Yapılan işlemin sonucu kaydediciler üzerinde saklanır. Bazen de yalnızca durum kodu kaydedicisini etkiler. ALU daki bir işlem sonucunda durum kodu kaydedicisindeki bayrakların birkaçı etkilenebilir veya hiçbiri etkilenmez. Programcı için çoğu zaman ALU da yapılan işlemin sonucunda etkilenen bayrakların durumu daha önemlidir. Gelişmiş mikroişlemcilerin içindeki ALU lar çarpma ve bölme işlemlerini yapabilmektedir. ALU nun işlem yapabileceği en büyük veri, mikro işlemcideki kaydedicilerin veri büyüklüğü ile sınırlıdır. Şekil-2

Mikroişlemciyi Oluşturan Birimler ve Görevleri 2)Aritmetik ve Mantık Birimi (ALU) A)Aritmetik İşlemler : ALU da yapılan aritmetiksel işlemler mikro işlemcinin yapısına göre çeşitlilik gösterebilir. Toplama, Çıkarma, Çarpma, Bölme, Sağa veya sola kaydırma, içerik artırma veya azaltma ve döndürme işlemleri gibi işlemleri kapsar. Gelişmiş işlemcilerde büyük ondalıklı sayılarla işlem yapmak için ayrıca matematik işlemci mevcuttur. B)Mantıksal İşlemler : VE, VEYA, Özel VEYA (XOR), Değil (NOT), Karşılaştırma (=, =<, =>, <> gibi) gibi işlemleri kapsar. Bütün bu işlemler teknolojik yapısı değişik kapı ve flip-flop lardan oluşan bir sistem tarafından yürütülmektedir. 3)Kontrol Birimi Kontrol birimi, sistemin tüm işleyişinden ve işlemin zamanında yapılmasından sorumludur. Kontrol birimi, bellekte program bölümünde bulunan komut kodunun alınıp getirilmesi, kodunun çözülmesi, ALU tarafından işlenmesi ve sonucun geri belleğe konulması için gerekli olan kontrol sinyalleri üretir.

Bellekler 1)RAM Bellekler : Mikro işlemcinin çalışması esnasında her türlü değişkenin üzerinde yer aldığı ve geçici işlemlerin yapıldığı birimi RAM belleklerdir. Özel bir sıra takip etmeden herhangi bir adrese erişildiği için rastgele erişimli bellek (Random Access Memory) RAM olarak isimlendirilir. RAM tipi entegreler hem yazmada hem okumada kullanıldıklarından CPU, bu entegreleri kontrol ederken okuma R (Okuma) ve W (yazma) sinyalleri göndermesi gerekir. Ayrıca entegrenin istendiği zaman aktif duruma geçmesinin sağlayacak entegre seçimi (CS =Chip Select) pini bulunmaktadır ve active low (aktif düşük, 0 Volt) ile çalışır. Her bir biti bir flip-flop devresi olan bu bellekler, yeni bir tetikleme işareti gelinceye kadar içindeki bilgiyi (0 veya 1 i) saklayabilme özelliği sebebiyle çok düşük güç tüketimi ile çalışmaktadır. Dışardan devreye bağlanan bir pil yardımıyla içindeki bilgileri çok uzun süreler boyunca saklayabilme imkânı vardır. Yüksek maliyetli olmaları sebebiyle çok yüksek kapasitelerde üretilmez. Şekil-3

Bellekler 2)ROM Bellekler : Yalnız okunabilen birimlere ROM (Read Only Memory) bellekler denir. Bu bellek elemanlarının en büyük özelliği enerjisi kesildiğinde içindeki bilgilerin silinmemesidir. ROM belleklere bilgiler üretim aşamasında yüklenir. Kullanıcıların bellek içindeki bilgileri değiştirmesi mümkün değildir. 3)PROM (Programlanabilir ROM) Bellekler : PROM lar bir kez programlanabilir. Bu bellek elemanı entegre şeklindedir. Kaydedilen bilgiler enerji kesildiğinde silinmez. Üzerine program kodlarını veya verileri yazmak için PROM programlayıcı cihazlara ihtiyaç vardır. Bu bellek elemanının yapısında küçük sigorta telleri bulunur. Bellek hücrelerinde hepsi sağlam durumda bulunan sigortalar 1 i temsil eder. Yazılacak olan bilginin bit düzeninde 0 lara karşılık gelen hücredeki sigorta, küçük bir elektrik akımı ile aktarılır. Bu şekilde PROM programlanır. 4)EPROM (Silinebilir Programlanabilir ROM) Bellekler : EPROM lar bellek hücrelerine elektrik sinyali uygulanarak programlama işlemi yapılır. Kaydedilen bilgiler enerji kesildiğinde silinmez. EPROM içindeki programın silinmemesi için cam pencereli kısım ışık geçirmeyen bantla örtülmelidir. EPROM belleğe yeniden yazma işlemi yapmak için EPROM üzerindeki bant kaldırılıp ultraviyole altında belirli bir süre tutmak gerekir. Bu şekilde içindeki bilgiler silinebilir. Böylece tekrar programlanabilir hâle gelen ürün tekrar tekrar farklı programların denenmesi ve cihazın çalıştırılması için kullanılabilir. 5)EEPROM (Elektriksel Yolla Değiştirilebilen ROM) Bellekler : Üzerindeki bilgiler, elektriksel olarak yazılabilen ve silinebilen bellek elemanlarıdır. EEPROM u besleyen enerji kesildiğinde üzerindeki bilgiler kaybolmaz. EEPROM daki bilgilerin silinmesi ve yazılması için özel silme ve yazma cihazlarına gerek yoktur. Programlayıcılar üzerinden gönderilen elektriksel sinyalle programlanır. EEPROM la aynı özellikleri taşıyan fakat yapısal olarak farklı ve daha hızlı olan, elektriksel olarak değiştirilebilir "ROM"lara Flash Bellek denir.

Mikrodenetleyiciler Bir mikroişlemci çekirdeğine ilave olarak, ortak bellek alanlarını kullanan, özelleştirilmiş görevler ile donatılmış çevrebirimlerin eklenmesi ile ortaya çıkan yapıya mikrodenetleyici denir. Denetim teknolojisi gerektiren uygulamalarda kullanılmak üzere tasarlanmış olan mikrodenetleyiciler, mikro işlemcilere göre çok daha basit ve ucuzdur. Mikroişlemcili sistemin tasarımı ve kullanımı mikrodenetleyicili sisteme göre daha karmaşık ve masraflıdır. Mikrodenetleyicili bir sistemin çalışması için elemanın kendisi ve bir osilatör kaynağının olması yeterlidir. Mikrodenetleyicilerin küçük ve ucuz olmaları, bunların tüm elektronik kontrol devrelerinde kullanılmasını sağlamaktadır. Şekil-4

Mikroişlemci ve Mikrodenetleyiciler Arasındaki Farklar Bir mikroişlemci görevini yerine getirebilmesi için mutlaka, verilerin saklanacağı bellek birimine, dış dünyadan veri alışverişinin düzenli yapılmasını sağlayan giriş/çıkış birimine ihtiyaç duyar. Bunlar bir mikroişlemcili sistemde ayrı ayrı birimler (entegreler) şeklinde yerini alır. Bundan dolayı mikroişlemcili sistemlere çok entegreli sistemler denilir. Bilgisayar gibi mikroişlemcili sistemlere verilen bir örnekte, bir bilgisayarın bir çamaşır makinesinde veya cep telefonunda kullanılması elbette mümkün olmayacaktır. Bilgisayar aynı anda milyonlarca işi yapabildiğinden ve çok yer kapladığından böyle yerlerde kullanılması mantıklı olmaz ve maliyetli olur. Bundan dolayı, sistemi meydana getiren elemanların birçok özelliklerinden feragat edilerek ve bir entegrede birleştirilerek mikroişlemcilerin yeni türevleri (mikrodenetleyiciler) oluşturulmuştur. Bir saydırma veya PWM sinyali üreteceğimizi düşünürsek mikroişlemci ile bunu yazılımsal olarak yapmamız gerekecektir. Ancak mikrodenetleyicinin özelleştirilmiş modülleri sayesinde bu işlemleri programa paralel olarak modüllerle yapabiliriz.böylece ana programdaki yoğunluk azalır ve işlemcimiz hızlanmış olur. Şekil-5

Mikrodenetleyici Seçimi Mikrodenetleyiciler ile tasarım yapmadan önce tasarlanan sisteme uygun bir denetleyici seçmek için o denetleyicinin taşıdığı özelliklerin bilinmesi gereklidir. Mikrodenetleyicinin hangi özelliklere sahip olduğu kataloglarından anlaşılabilir. Aşağıda sıralanan özellikler bunlardan bazılarıdır; Programlanabilir dijital paralel giriş/çıkış. Programlanabilir analog giriş/çıkış. Seri giriş/çıkış (senkron, asenkron ve cihaz yönetimi). Motor veya servo kontrol için pals sinyali çıkışı. Harici giriş vasıtasıyla kesme. Harici bellek arabirimi. Harici veri yolu arabirimi. Dahili bellek tipi seçenekleri (ROM, EPROM, PROM, EEPROM). Dâhilî RAM seçeneği. Kayan nokta hesaplaması.

Şekil-6

ARDUINO Nedir? Arduino, açık kaynak kodlu yazılım ve donanıma sahip bir mikrodenetleyici platformudur. Açık kelimesi ile gerçek anlamda açık tasarımı ifade edilmektedir. Baskılı devresi, şematik tasarımı, PC üzerinde çalışan derleyicisi, kütüphaneleri ve tüm detayları ile internet ortamında paylaşılmaktadır. Şekil-7

Neden ARDUINO? Hem donanımsal hem de yazılımsal olarak açık kaynaklı. Ucuz. Alt seviye mikroişlemci bilgisi gerektirmez. Çok zengin kütüphaneleri vardır. Ek bir programlama devresi gerektirmez. USB üzerinden haberleşebilir. Shield kartları sayesinde ileri teknolojiler kolayca entegre edilebilir. Temel elektroniğin bilinmesi uygulama geliştirmek açısından yeterlidir.

DONANIM Arduino Uno Arduino Leonardo Arduino Due Arduino Tre Arduino Yun Arduino Micro Arduino Robot Arduino Esplora

DONANIM Arduino Mega ADK Arduino Ethernet Arduino Mega 2560 Arduino Mini LilyPad Arduino USB LilyPad Arduino Simple LilyPad Arduino SimpleSnap LilyPad Arduino Arduino Nano

DONANIM Arduino Pro Mini Arduino Pro Arduino Fio

DONANIM Şekil-8

YAZILIM Derleme Serial Monitör Kod Editörü Program Çıktısı Şekil-9

YAZILIM setup() : Programın başlangıç ayarları içindir sadece başlangıçta tek seferlik çalışır. Bu fonksiyon değişkenler, pin modları, seri iletişim, kütüphaneler vb. için kullanılır. Loop() : Loop Türkçesi döngüdür. Adından anlaşılacağı gibi setup() fonksiyonundan sonra döngü şeklinde sürekli çalışır. Ana program kodları bu fonksiyon içine yazılır 1//Tanımlamalar 2void setup() { 3// Kurulum kodları buraya yazılır. (Bir defa çalışır) 4} 5void loop() { 6// Ana program kodları buraya yazılır. (Sürekli çalışır) 7}

YAZILIM Program yazımı belirli kalıpta, bloklar halinde olur. Bloklar, { } parantezleri ile oluşturulur. Komutlar aynı veya alt alta satırlara yazılabilirler. Tüm komutlar, noktalı virgül (;) ile biter. Yalnız blok başlatan ifadelerden sonra noktalı virgül kullanılmaz. Programda kullanılan tüm değişkenler ve bilgi tipleri bildirilir. Programın başında kütüphaneler aktifleştirilir/çağrılır. Açıklamalar // ve /* */ (Birden fazla satır için) ile yazılır. #define ile eşdeğer ifade atanır. #include ile kütüphane çağrılır.

YAZILIM if / else : Arduino Programlama temel karar komutudur. if ten sonra verilen koşul doğru ise bu "if" bloğundaki işlemler, yanlış ise else bloğundaki işlemler yapılır. 1if (koşul) 2{ 3// Koşul sağlanıyor ise yapılacak işlem 4} 5else 6{ 7// Koşul sağlanmıyor ise yapılacak işlem 8}

YAZILIM for : Arduino Programlama dilinde temel döngü komutudur. for içinde yer alan koşul doğru olduğu sürece, döngüdeki işlemler gerçekleştirilir. 1for (başlangıç değeri; koşul; artım) { 2//işlemler 3} while : while ile belirtilen koşul doğru olduğu sürece, döngü içindeki işlemler gerçekleştirilir. 1while(koşul){ 2 // Koşul doğru olduğu sürece yapılacak işlemler 3} do-while : while ile belirtilen koşul doğru olduğu sürece, döngüdeki işlemler yapılır. 1do 2{ 3 // Koşul doğru olduğu sürece yapılacak işlemler 4} while (test koşulu);

YAZILIM switch / case: Seçim yapılarak program akışının istenilen bloklara atlamasını sağlar. switch teki değişken, case teki hangi değeri alırsa, karşılığındaki işlem yapılır. 1switch (seçim değişkeni) { 2 case 1: 3 // Seçim değişkeni 1 olduğunda yapılacak işlem 4 break; 5 case 2: 6 // Seçim değişkeni 2 olduğunda yapılacak işlem 7 break; 8 default: 9 // Varsayılan bağımsız işlem (isteğe bağlı) 10 }

pinmode(pin no, pin türü); Pinleri giriş veya çıkış olarak yapılandırma işlemi yapar. digitalwrite(pin no, lojik değer); Çıkış olarak ayarlanan pinlerin değerlerini, HIGH veya LOW olarak ayarlar. digitalread(pin no); Belirtilen digital pin değerini okur. analogreference(); Analog giriş için referans gerilimini ayarlar. analogread(pin no); Belirtilen analog pin değerini okur. analogwrite(pin no, dijital değer); Ayarlanan pinden analog çıkış almayı sağlar. LED parlaklığı, motor hızı ayarlama gibi işlemlerde kullanılır. delay(milisaniye); Milisaniye biriminde zaman gecikmesi verir. YAZILIM map(giriş değeri, giriş değeri minimum, giriş değeri maksimum, çıkış değeri minimum, çıkış değeri maksimum); map(değer,0,1024,0,255); örnek alacak olursak değer değişkeni ile gönderdiğimiz sayı 0-1024 arasında değişebilir ve bu değişimle orantılı olarak fonksiyon 0-255 değerleri arasında geri dönüş yapar.

Örnek Uygulamalar LED Uygulaması 1. #define LED 13 2. void setup() 3. { 4. pinmode(led, OUTPUT); 5. } 6. void loop() { 7. digitalwrite(led, HIGH); 8. delay(1000); 9. digitalwrite(led, LOW); 10. delay(1000); 11.} Şekil-10

Örnek Uygulamalar Dijital Okuma-Seri İletişim-LED uygulaması 1. int Buton = 10; 2. İnt LED = 6; 3. void setup() 4. { 5. Serial.begin(9600); 6. pinmode(buton, INPUT); 7. pinmode(led, OUTPUT); 8. } 9. void loop() 10.{ 11. int butondurumu = digitalread(buton); 12. digitalwrite(led, butondurumu); 13. Serial.println(butonDurumu); 14. delay(1); 15.} Şekil-11

Örnek Uygulamalar Analog Okuma-Seri İletişim-Analog Cikis ( PWM ) Uygulaması Şekil-12 1. const int Potansiyometre = A3; 2. const int LED = 3; 3. int sensordegeri = 0; 4. int cikisdegeri = 0; 5. void setup() { 6. Serial.begin(9600); 7. pinmode(led, OUTPUT); 8. } 9. void loop() { 10. sensordegeri = analogread(potansiyometre); 11. cikisdegeri = map(sensordegeri, 0, 1023, 0, 255); 12. analogwrite(led, cikisdegeri); 13. Serial.print("sensor = " ); 14. Serial.print(sensorDegeri); 15. Serial.print("\t cikis = "); 16. Serial.println(cikisDegeri); 17. delay(2); 18.}

Örnek Uygulamalar Seri İletişim-LCD Uygulaması Şekil-13 1. #include <LiquidCrystal.h> 2. LiquidCrystal lcd(12, 11, 5, 4, 3, 2); 3. void setup(){ 4. lcd.begin(16, 2); 5. Serial.begin(9600); 6. lcd.write("akinsoft"); 7. delay(2000); 8. } 9. void loop() 10.{ 11. if (Serial.available()) { 12. delay(100); 13. lcd.clear(); 14. while (Serial.available() > 0) { 15. lcd.write(serial.read()); 16. } 17. } 18.}

Örnek Uygulamalar Servo Motor Uygulaması Şekil-14 1. #include <Servo.h> 2. Servo SERVO1; 3. int pozisyon = 0; 4. void setup() 5. { 6. SERVO1.attach(9); 7. } 8. void loop() 9. { 10. for(pozisyon = 0; pozisyon <= 180; pozisyon++) 11. { 12. SERVO1.write(pozisyon); 13. delay(15); 14. } 15. for(pozisyon = 180; pozisyon>=0; pozisyon--) 16. { 17. SERVO1.write(pozisyon); 18. delay(15); 19. } 20.}

Yararlanılan Kaynaklar AKINSOFT Robotik Departmanı Laboratuvarı (Şekil-9) http://www.bilimania.com/bilisim-teknolojileri/35-bilisim-teknolojileri/2922-ilk-organik-mikroislemci-avrupa-dan (Şekil-1) http://megep.meb.gov.tr/mte_program_modul/moduller_pdf/mikroi%c5%9flemci%20ve%20mikrodenetleyiciler.pdf (Şekil-2, Şekil-3,Şekil-4) http://elektrohobim.blogspot.com.tr/2012/06/mikrodenetleyicinedir.html (Şekil-5) http://commons.wikimedia.org/wiki/file:arduino_logo.svg (Şekil-6) http://www.internetnow.gr (Şekil-7) http://arduinoturkiye.com/, www.arduino.cc (Arduino Uno, Arduino Leonardo, Arduino Due, Arduino Yun, Arduino Tre, Arduino Micro, Arduino Robot, Arduino Esplora, Arduino Mega ADK, Arduino Ethernet, Arduino Mega 2560, Arduino Mini, LilyPad Arduino USB, LilyPad Arduino Simple, LilyPad Arduino SimpleSnap, LilyPad Arduino, Arduino Nano, Arduino Pro Mini, Arduino Pro, Arduino Fio) http://cobanoglu.wikispaces.com/file/view/arduino_cobanoglu.pdf/495731668/arduino_cobanoglu.pdf (Şekil-8) http://yourduino.com/making-software-work.htm (Şekil-10) http://yourduino.com/making-software-work.htm (Şekil-11) http://rouvelle.com/rai_fa_12/ (Şekil-12) http://engineeringlearning.blogspot.com.tr/2013/10/interfacing-lcd-without-potentiometer.html (Şekil-13) http://arduino.cc/en/tutorial/sweep (Şekil-14)