Arduino Seri Haberleşme: Serial Port Ve Fonksiyonları

Tüm Arduio kartlarında en az bir adet Arduino kartı ile bilgisayar veya diğer cihazlar arasında bağlantı kuran Serial Port bulunuyor. Arduino UNO’dan bir tane Serial Port bulunurken Arduino MEGA ve Arduino DUE’de daha fazla port yer alıyor. Bu konuyla ilgili başka yazılarımıza buradan ve buradan ulaşabilirsiniz.

Arduino UNO, 0’dan 13’e kadar olmak üzere toplam 14 tane dijital pine sahiptir. Bu kartta da diğer kartlarda da görebileceğimiz gibi dijital 0 (RX) ve dijital 1 (TX) pinleri Serial Port için ayrılmıştır. Arduino kartımız üzerindeki Serial Port için ayrılmış pinleri tek seferde yalnızca Serial Port için kullanabiliriz. Bu sırada bu pinler başka giriş veya çıkış işlemlerini gerçekleştiremez. Arduino’nunuzun bilgisayarla haberleşmesini sağlamak için 0 ve 1 numaralı pinlerin başla bir yere bağlı olmadığından emin olmanız gerekir.

arduino seri haberleşme

Her şeyden önce bilgisayarınız ve kartınız arasındaki bağlantıyı sağlamanız gerekir. Daha sonra  Serial Port Ekranına ulaşabilir ve bu ekranı kullanarak kartınız ile haberleşme ekranına ulaşabilirsiniz. Serial Port Ekranı için Türkçede Seri Port Ekranı ya da Serial Monitor ifadeleri de kullanılıyor. Bu ifadelerden herhangi biriyle karşılaştığınızda hepsinin aynı anlama geldiğini hatırlamanızda fayda var.

Haberleşme ekranına tanımlanmış fonksiyonlar

Arduino programlama dilinde seri haberleşme portunu kullanımı için tanımlanmış bir Serial nesnesi bulunmaktadır. Serial nesnesi işimizi kolaylaştırıcı bir çok fonksiyona sahiptir. Bunları şöyle sıralayabiliriz.

  • available ()
  • availableForWrite ()
  • begin ()
  • end ()
  • find ()
  • findUntil ()
  • flush ()
  • if ( Serial )
  • parseFloat ()
  • parseInt ()
  • peek ()
  • print ()
  • println ()
  • read ()
  • readBytes ()
  • readBytesUntil ()
  • readString ()
  • readStringUntil ()
  • serialEvent ()
  • setTimeOut ()
  • write ()

Bu fonksiyonların her biri farklı bir görev için tanımlanmıştır ve Arduino kartınızla işlem yapmanızı sağlarlar.

Seri haberleşmeyi kurmak için ilk kullanmamız gereken fonksiyon şudur:

Serial.begin()

Bu komut ile Seri ara birimi kullanmak için hazır hale getirmiş oluruz. Kullanım şekli Serial.begin(baud rate); şeklindedir. Burada gördüğünüz Baud Rate, haberleşme hızını belirtir ve birimi bps yani saniye başına bit’dir. Baud Rate;  300, 600, 1200, 2400, 4800, 9600, 14400, 19200, 28800, 38400, 57600, yada 115200 değerlerini alabilir. Standart olarak basit bir iletişim kurup haberleşme yapmak için 9600 bps kullanılır.

Bundan sonraki adımlarda; serial.print(), serial.write(), serial.read(), serial.available() gibi komutlarla yolunuza devam etmeniz gerekir. Bu komutların temelde nasıl çalıştığını, parantez içlerine yazılan bilgilerin ya da diğer fonksiyonlarla birlikte verilen komutların nasıl bir anlama geldiğini kavradığınızda birkaç temel bilgiyle pek çok komutu çalıştırabilir hale gelirsiniz.

Kısaca bakacak olursak:

Serial.begin(baud_rate): Serial haberleşmenin başlatılması için “setup” kısmına yazılır.

Serial.print() / Serial.println(): Serial ASCII yazılarının göndermemizi sağlar. String ve Char değişkenlerini gönderir.

Serial.Write(): Serial üzerinden byte verileri gönderir.

Serial.read(): Serialden gelen verileri okumak için kullanılır.

Serial.available():  Serial bağlantının kullanılabilir olup olmadığını kontrol eder. “if” gibi foksiyonlarla kullanılır.

10 comments

  1. SALİH YILMAZ dedi ki:

    Merhaba yangın paneli rs232 yazıcı çıkışından gelen alarm satırlarından istediğim yazıyı kullanarak P10 Led Ekran üzerine yazdırmak istiyorum.Bunun ile ilgili yardımcı olurmusunuz.

    • Ömer Koman dedi ki:

      p10 panelle ılgılı calışma yapmış olanlar var foruma gelin sorun yardım alabılırsınız.

  2. mehmet andiç dedi ki:

    hocam merhabalar. ben parmak izi okuma sensörünü arduino uno yardımıyla kodladım. seri port ekranını açınca “parmak izi okuma sensörü bulundu”,”geçerli parmağı girin” vs. bilgiler çıkıyor şimdi bu yazanları I2C lcd ekrana nasıl gönderebilirim yani bu bilgilerin orada görünmesinin nasıl sağlayabilirim ?

    • Ömer Koman dedi ki:

      i2c ekran aldıysan once ekranın orneklerını çalıştır cunku ekran adresının bulunması ayarlanması gerekır ılk seferde çalışmazsa. gerıye serıalden verıyı yollayacagına lcd ekrana yollayacaksın.

  3. mehmet andiç dedi ki:

    hocam lcd ekranın adresini buldum 0x27. şimdi örneğin Serial.print(“parmak izi kaydedildi”) yazan yazıda Serial.print kısmını silip lcd.print mi yazmam gerekiyor?

    • Ömer Koman dedi ki:

      evet olabılır ama once koordınat da gır kı yazdıgın yere hakım ol… lcd orneklerını ıncele

  4. Mustafa dedi ki:

    Hocam mrb’lar iyi günler, bir projem var iki arduino kartından oluşan vericiden diğer arduino kartı olan alıcıya lazer ile LDR arasında bir bağlantı kurup bir resim aktarımı yapmak istiyorum fakat eksiklerim var hem devre kurulumu hemde yazılım olarak, yardımcı olabilirseniz çok memnun olur her aklıma geldiğinizde dua ederim.:)

  5. Ahmet anıl arslan dedi ki:

    Hocam iyi günler önemli bir projem var da yardıma ihtiyacım var bir iletişim bilgisi alabilirmyim eğer mümkünse

    • Ömer Koman dedi ki:

      özel proje desteğimiz yok sitenin forumlarını kullanıp açık yardım isteyebilirsiniz, konuyu çalışmış tecrubesi olan varsa yardım edebilir.

E-posta adresiniz gösterilmeyecek. Gerekli alanlar * ile işaretlidir.

*



Sosyal Ağlar