Doğu Akdeniz Üniversitesi Bilgisayar Ve Teknoloji Yüksek Okulu

Slides:



Advertisements
Benzer bir sunumlar
Bilgi Teknolojisinin Temel Kavramları
Advertisements

Hazırlayan ve Sunan Ali Yasin Çakılcı HUNROBOTX
BİLGİSAYAR PORTLARI.
Bilgisayar Programlama Güz 2011
Bilgi Teknolojisinin Temel Kavramları
VERİ SAKLAMA BİRİMLERİ
YAKIN DOĞU ÜNİVERSİTESİ HATİCE TÜLÜCÜ CEİT 316.
Bölüm 2 C Dilinin Temelleri
Veri İletiminde Hata Kontrol Yöntemleri
Dizi (array) değişkenleri
Programlamanın Yapı Taşları
Bölüm 2 C Dilinin Temelleri Genel Kavramlar
Register ve Türleri Nihal GÜNGÖR.
66 CHAPTER SİSTEM UNITESİ. © 2005 The McGraw-Hill Companies, Inc. All Rights Reserved. 6-2 Sistem Üniteleri Mikro bilgisayarlar Masaüstü Dizüstü Tablet.
BİLGİSAYARIN MİMARİSİ, TEMEL BİLEŞENLERİ VE ÇALIŞMA MANTIĞI
8. VİSUAL BASİC İLE TEMEL DOSYALAMA İŞLEMLERİ
İSTANBUL İLİNDEKİ ENDÜSTRİ MESLEK LİSELERİN KONUMUNU BELİRTEN HARİTA
1- BİLGİSAYAR AĞLARINA GİRİŞ
DEĞİŞKENLER VE VERİ TİPLERİ
INTERNET TABANLI PROGRAMLAMA
C# ile Seri İletişim Aslı Ergün.
C PROGRAMLAMA DİZİLER (ARRAYS).
Bilgi Teknolojisinin Temel Kavramları
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
Chapter 14: Files and Streams. 2Microsoft Visual C# 2012, Fifth Edition Dosyalar, Dosya Ve dizin Sınıfları Geçici Depolama – Genellikle bilgisayar belleği.
Arduino Uno R3 ile Merhaba Dünya Yrd. Doç. Dr. Deniz DAL
Matematiksel Veri Yapıları. İçerik Matematiksel Veri Yapıları – Kümeler – Diziler – Fonksiyonlar – İkili ilişkiler Sonsuz kümeler – Sonlu nicelik – Sonsuz.
ARDUINO DİJİTAL PİN KONTROLÜ
Bilgi Teknolojisinin Temel Kavramları
Seri Port ile İletişim.
Bileşik Mantık Devreleri (Combinational Logic)
Kuzey ve Güney Köprüleri
Amaçlar Assembly dilinin genel özelliklerini tanımak
Information Technology, the Internet, and You © 2013 The McGraw-Hill Companies, Inc. All rights reserved.Computing Essentials 2013.
USB Universal Serial Bus Evrensel Seri veriyolu. Tak çalıştır aygıtların sistemlerde daha kolay bir şekilde kullanımını sağlamak amacıyla geliştirilmiş.
DİLOVASİ 10-TL SINIFI VERİ SAKLAMA BİRİMLERİ ÖĞRTMEN= KÜRŞAT KUŞ =
Kaydediciler (Registers)
Ağ Donanımları Ağ Nedir ? Ağ Donanımları Bridge Hub Switch Router
ARDUİNO PLATFORMU BÖLÜM2:Arduino platformu Arduino kurulumu ve test
Bluetooth İle Haberleşme
Fonksiyonlar ve Diziler
Doğu Akdeniz Üniversitesi Bilgisayar Ve Teknoloji Yüksek Okulu
Ondalık Kesirler ● Paydası 10, 100, 1000… olan kesirlere ondalık kesir denir , , , , ● Yukarıdaki kesirler birer ondalık.
ARDUİNO PLATFORMU Arduino Çeşitleri.
TEMEL BİLGİSAYAR TEKNOLOJİLERİ KULLANIMI
EETE233 Mikrodenetleyiciler ArduIno ile Programlama
Pınar KAPLAN Sevgi DEMİRCİ SLOTLAR.
GAZİ ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ
Arduino Uno R3 ile Merhaba Dünya Yrd. Doç. Dr. Deniz DAL
Doğu Akdeniz Üniversitesi Bilgisayar Ve Teknoloji Yüksek Okulu
BİLGİ SAYAR.
Doğu Akdeniz Üniversitesi Bilgisayar Ve Teknoloji Yüksek Okulu
Arduino Uno R3 ile Merhaba Dünya Yrd. Doç. Dr. Deniz DAL
MATEMATIKSEL IŞLEMLER
Bilgisayar Mühendisliğine Giriş
GAZİ ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ
4. GİRİŞ/ÇIKIŞ DEYİMLERİ 4.1. Giriş
Doğu Akdeniz Üniversitesi Bilgisayar Ve Teknoloji Yüksek Okulu
ARDUİNO Arduino Eğitimleri Bölüm 3 Programlama Dili Temelleri
ARDUİNO Arduino Eğitimleri Bölüm 2 Arduino’ya Giriş
Bilgisayar Mühendisliğine Giriş
Konu: EĞİTİM AMAÇLI BLDC MOTOR HIZININ PID KONTROLÜ
Bölüm 1 Genel Kavramlar Bilgi Saklama
NİŞANTAŞI ÜNİVERSİTESİ
Web Servisi Aracılığıyla Android Cihazlardan Sıcaklık Kontrolü
Arduino Uno R3 ile Merhaba Dünya Dr. Öğr. Üyesi Deniz DAL
NİŞANTAŞI ÜNİVERSİTESİ
BİLGİSAYAR MÜHENDİSLİĞİNE GİRİŞ
Bilişim Teknolojileri Öğrt.
Bellekler.
Sunum transkripti:

Doğu Akdeniz Üniversitesi Bilgisayar Ve Teknoloji Yüksek Okulu ELET311 Mikrodenetleyici UYGULAMALARI Arduino ile Programlama Konu 3 Seri Haberleşme

Dersin Amacı Bu dersin amacı, Arduino üzerindeki Seri Haberleşme Seri Haberleşmenin Donanım ve Yazılım Bileşenleri Arduino Serial Haberleşme Fonksiyonları

Seri Haberleşme Elektronik birimler kendi başlarına çalışabildikleri gibi zaman zaman aralarında iletişim kurmaları da gereklidir. Bu durumda çeşitli haberleşme protokolleri üzerinden birbirleriyle haberleşirler. Protokol iki veya daha fazla birimin kendi aralarında haberleşmekte kullandıkları kurallar bütünüdür. Dijital iletişimde temel olarak Seri Paralel haberleşme yöntemleri bulunur. Daha az veri hattı gerektiğinde seri haberleşme elektronik projelerinde kullanılır.

Arduino Üzerindeki Seri Haberleşme Birimi Arduino üzerindeki seri haberleşme birimi bilgisayarımıza Arduino’yu bağlar bağlamaz görev yapmaya başlar. Arduino ile PC arasındaki haberleşme bu birim üzerinden gerçekleştirilir. Derlediğimiz programlar da yine Arduino’ya seri haberleşme üzerinden gönderilir. Geçmişte PC’lerde seri haberleşme için 9 pinli RS232 portu bulunmaktaydı. Artık günümüzde bu standart yerini USB’ye bırakmıştır. Ancak hala RS232 üserinden iletişim kuran cihazları kullanıbilmek için RS232-USB dönüştürücü elemanlar kullanılır.

Seri Haberleşmenin Donanım ve Yazılım Bileşenleri Seri haberleşme için Arduino üzerinde bulunan seri haberleşme ünitesine UART (Universal asynchronous receiver/transmitter: Evrensel asenkron alıcı / verici) adı verilir. Seri haberleşme için gönderme – TX ve alma – RX olmak üzere iki pin (D0, D1) kullanılır. Arduino UNO üzerinde bu pinler ayrıca TX, RX LED’lerine ve USB dönüştürücü çipe de bağlıdır. Programlama esnasında Arduino ile PC arasındaki iletişim bu pinler üzerinden sağlanır.

Arduino Serial Haberleşme Fonksiyonları Arduino’da seri haberleşmeyle ilgili olarak Serial nesnesi kullanılır. Bu nesneye ait fonksiyonlar: Serial.begin() ve Serial.end() Fonksiyonu Serial.begin() fonksiyonunu setup() fonksiyonu içinden çağırarak seri haberleşmenin başlatılması sağlanır. Bu fonksiyona parametre olarak 300, 1200, 2400, 4800, 9600, 14400, 19200, 28800, 38400, 57600, 115200 değerlerinden birisi verilebilir. Standart seri haberleşme hızları olan bu değerlerin birimi bps’dir (bit per second: saniye başına bit) ve baud rate olarak bilinir. Her byte için 10 bit gönderildiğinden gönderilen bayt miktarı bu değerlerin 10’a bölümüyle bulunabilir.

Serial.print() ve Serial.println() Fonksiyonu Arduino’dan ASCII karakter dizileri içeren veriler göndermek için print ve println fonksiyonları kullanılır. println fonksiyonunun farkı her bir satırdan sonrayeni bir satıra geçilmesidir. Print ve println fonksiyonlarıyla değişik formatlarda çıktı almak da mümkündür. Sayılar karakter dizisi şeklinde veya 16’lı (hexadecimal), 8’li (octal) ve 2’li (binary) tabanda yazdırmak mümkündür. Ondalık sayılar virgülden sonra 2 hane olarak yazdırılabilir. Ancak istenildiği taktirde daha fazla hane yazdırılabilir.

Örnek: Serial.print(12)  12 olarak yazdırılır. Serial.print(1.23456)  1.23 olarak yazdırılır. Serial.print(byte(78))  N(78 değerinden ASCII karakter karşılığı) Serial.print(‘N’)  N olarak yazdırılır. Serial.print("Arduino")  Arduino olarak yazıdırılır. İstenilen tabanda çıktı alınabilir. İkili tabanda çıktı Serial.print(78, BIN)  1001110

Örnek: Sekizli tabanda çıktı Serial.print(78, OCT)  116 Onluk tabanda çıktı Serial.print(78, DEC)  78 16’lık tabanda çıktı Serial.print(78, HEX)  4E Ondalık sayılarda noktadan sonra yazdırılmak istenen hane sayısı parametre olarak verilebilir. Serial.println(1.23456, 0)  1 Serial.println(1.23456, 2)  1.23 Serial.println(1.23456, 4)  1.2346

Serial.write() Fonksiyonu Println() fonksiyonlarıyla ASCII karakter formatında okunabilir karakter dizileri seriport üzerinden gönderilirken write() fonksiyonuyla ikili (binary) formatta veriler gönderilebilir. Bu fonksiyon daha çok ikili verilerin gönderildiği haberleşme projelerinde kullanılır. İkili formatta veri alışverişi ASCII formatından biraz daha karışıktır. ASCII formatında gönderilen verinin sonunu gösteren satır sonu gibi karakterler bulunurken ikili haberleşmede özel bir protokole uyması gerekiyor. Bir örnek verecek olursak 1234 sayısını ASCII olarak yolladığımızda sırasıyla 1,2,3,4 karakterlerinin ASCII kodları (her biri birer bayt) gönderilir. Bu durumda 1234 sayısı için 5 bayt veri gönderilir diyebiliriz. Ancak aynı sayının 2 bayt (16 bit) olduğu düşünülürse bunu ikili olarak 2 bayt halinde gönderilebilir. İşte bunun için Serial.write() fonksiyonu kullanılabilir: Serial.write(gönderilecek_veri_bayti); Serial.write(‘A’);  A karakteri yollanır. 1234 sayısı (0x04D2) 0x04 ve 0xD2 baylarından oluşur. Serial.write(lowByte(1234)); //1234 sayısının küçük baytını (0xD2 – 210) gönderir Serial.write(highByte(1234)); //1234 sayısının büyük baytını (0x04 – 4) gönderir

Serial.read() Fonksiyonu Arduino içerisinde seri birimden gelen veriler baytlar halinde alındıktan sonra seri haberleşme için ayrılmış tampon bellek bölgesine yazılır. Bu tampon belleği bir bayt dizisi olarak da düşünebiliriz. Programlarımızda gelen verileri kullanmak istediğimizde bu bellekten Serial.read() fonksiyonu ile okuruz. Serial.read() fonksiyonunu her çağırdığımızda gelen baytlardan birini tampondan okuyarak döndürür. Tampondan okuduğumuz baytlar silinir. Okuma sırası geliş sırasına göredir. Yani ilk gelen bayt ilk okunur. Eğer seriport tamponu boş ise read() fonksiyonu -1 değerini döndürür.

Serial.avaliable() Fonksiyonu Seri porta gelmiş ve henüz okunmamış verilerin sayısını döndürür. Sıfır döndürdüğü taktirde seri port tamponu boş demektir. Seri port tamponunun boyutu sınırlı olduğundan gelen veriler belirli bir zaman aralığında okunmalıdır. Aksi taktirde yeni gelen veriler eskilerin üzerine yazılabilir.