GAZ NVERSTES TEKNOLOJ FAKLTES BLGSAYAR MHENDSL BLM GML
GAZİ ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ GÖMÜLÜ BİLGİSAYAR SİSTEMLERİ 4. HAFTA Yrd. Doç. Dr. Fecir DURAN Arş. Gör. Esra SÖĞÜT
İÇİNDEKİLER � SERİ HABERLEŞME � SERİ DİJİTAL OKUMA UYGULAMASI � GEREKLİ FONKSİYONLAR � SERİ DİJİTAL YAZMA UYGULAMASI � 4*3 TUŞ TAKIMI � SWITCH-CASE
Seri Haberleşme �Mikrodenetleyiciler, diğer mikrodenetleyicilerle, bilgisayar ile ve cihazlar iletişim kurabilir. �İletişim seri ve paralel olarak 2’ye ayrılır. �Paralel iletişimde 8 bitlik veriler 8 kablo aracılığı iletilir. �Seri iletişimde veriler 2 kablo aracılığı iletilir. �Doğal olarak paralel iletişim hızlıdır ancak uzun mesafelerde aşırı kablo kullanımına neden olur. �Bu yüzden seri iletişim tercih edilir.
Seri Haberleşme �Haberleşme ayrıca kablolu ve kablosuz olarak ikiye ayırılır. �Kablosuz haberleşmeye örnek olarak, bluetooth, kızılötesi, wifii örnekleri verilebilir. �Arduino Uno üzerinde 1 adet seri haberleşme alıcıverici çifti bulunmaktadır. �Arduino unonun 0. pini alıcı-receiver(RX) 1. pini verici-transmitter (TX) olduğunu kartınıza bakarak rahatlıkla görebilirsiniz. �Seri haberleşme üzerinden veriler 0 ve 1 dizileri olarak iletilirler.
Seri Dijital Okuma Uygulaması Arduino’yu kullanarak seri haberleşme ile Buton’un durumunu kontrol edeceğiz. Buton’un durumu (açık/kapalı) hakkındaki bilgiyi, Ardunio board ile seri iletişim kurarak elde edeceğiz. � Gerekli Donanımlar: • Arduino Board • Buton • 10 k ohm direnç • Devre Tahtası(Breadboard) • Kablo
Seri Dijital Okuma Uygulaması Yukardakı gibi butonu ve dirençi bağladıktan sonra yapmamız gereken sadece kodumuzu board'a yüklemek. Kodu File=>Examples=>Basics=>Digital. Serial. Read yolunu izleyerek açabilirsiniz.
Seri Dijital Okuma Uygulaması Algoritma: 1. pushbutton tanımla 2. butona basıldığında seri monitöre 1 döndürsün 3. butona basılmadığında seri monitöre 0 döndürsün
Fonksiyonlar • Serial. begin(9600); //Board ile bilgisayar arasında saniyede 9600 bitlik veri ile seri iletişim başlatır • Seri. println (sensor. Value); //Board girişi okuduktan sonra, bu bilgiyi ondalık değer olarak bilgisayara yazdırır
Seri Dijital Okuma Uygulaması BAŞLA BUTON’A BASILDI MI? HAYIR SERİ MONİTÖR’E 0 GÖNDER EVET SERİ MONİTÖR’E 1 GÖNDER
Seri Dijital Okuma Uygulaması-KODLAR Daha sonra yapmanız gereken Seri Monitörü açıp dijital 1 ve 0 'ları görmektir. Eğer devre açıksa 0 , açık değilse 1'i göreceksiniz.
Seri Dijital Okuma Uygulaması Daha sonra yapmanız gereken Seri Monitörü açıp dijital 1 ve 0 'ları görmektir. Eğer devre açıksa 0 , açık değilse 1'i göreceksiniz.
Seri Dijital Yazma Uygulaması �Tuş takımında basılan tuşları, serial monitörde yazdıracak bir uygulama yapınız. � Gerekli Donanımlar: • Arduino Board • Tuş Takımı • Kablo
Seri Dijital Yazma Uygulaması �Uygulamada keypad’in hazır kütüphanesini kullanacağız. �Öncelikle bilgisayarınıza Keypad. h kütüphanesini indirip, arduino programının bulunduğu klasörde libraries dosyasının içerisine atmanız gerekmektedir. �Bu adresten indirebilirsiniz: �http: //playground. arduino. cc/uploads/Code/keypad. zip
4*3 Tuş Takımı Yapısı
Bağlantı Şeması
BAŞLA GEREKLİ AYARLARI YAP SERİ HABERLEŞMEYİ BAŞLAT KEYPAD’E BASILDI MI? EVET HAYIR BEKLE KEYPAD’E BASILDI MI? HAYIR BİTİR EVET BASILAN KARAKTERİ SERİ MONİTÖR’E GÖNDER
Kodlar #include <Keypad. h> const byte SATIR = 4; const byte SUTUN= 3; char keys[SATIR][SUTUN] = { {'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9'}, {'#', '0', '*'} }; byte row. Pins[SATIR] = { 9, 8, 7, 6 }; //row bağlantı pinleri byte col. Pins[SUTUN] = { 12, 11, 10 }; //coloumn bağlantı pinleri Keypad kpd = Keypad( make. Keymap(keys), row. Pins, col. Pins, SATIR, SUTUN ); void setup() { Serial. begin(9600); //seri portun //tanıtılması (9600 baud) pin. Mode(A 0, OUTPUT); } void loop() { char key = kpd. get. Key(); if(key){ digital. Write(A 0, HIGH); Serial. println(key); //hangi butuna basıldığını göster delay(15); digital. Write(A 0, LOW); } }
Switc-case �Switc-case: Bir switch deyimi, bir değişkenin değerini case ifadelerinde belirtilen değerlerle karşılaştırır. �Değişkenin değeriyle eşleşen bir case ifadesi bulunursa, bu case ifadesinin kodu çalıştırılır. �Break anahtar sözcüğü switch ifadesinden çıkmayı sağlar ve ve genellikle her bir case'in sonunda kullanılır. �Break ifadesi olmadan, switch ifadesi bir mola verene kadar veya switch ifadesinin sonuna ulaşana kadar yürütmeye devam eder.
Switc-case switch (var) { case 1: //do something when var equals 1 break; case 2: //do something when var equals 2 break; default: // if nothing else matches, do the default // default is optional break; }
- Slides: 19