Kategoriler

  • Kategoriler
  • Fashion
  • Laptops
  • Test-1
  • Toys
  • vegetables
  • Desktops
  • PC
  • Mac
  • Laptops & Notebooks
  • Macs
  • Windows
  • Components
  • Mice and Trackballs
  • Monitors
  • test 1
  • test 2
  • Printers
  • Scanners
  • Web Cameras
  • Tablets
  • Software
  • Phones & PDAs
  • Cameras
  • MP3 Players
Arduino ile Seri Haberleşme

Arduino ile Seri Haberleşme

Arduino ile Seri Haberleşme Nedir? Nasıl Kullanılır?

Arduino projelerinde bilgisayar, başka bir Arduino kartı veya farklı mikrodenetleyiciler ile veri alışverişi yapmanın en kolay yollarından biri seri haberleşme (Serial Communication) yöntemidir. Sensör verilerini bilgisayara göndermek, gelen komutlara göre LED yakmak veya farklı cihazlarla iletişim kurmak gibi birçok uygulamada seri haberleşme kullanılır.

Bu yazıda Arduino'da seri haberleşmenin çalışma mantığını, temel fonksiyonlarını ve örnek kullanımını inceleyeceğiz.


Seri Haberleşme Nedir?

Seri haberleşme, verilerin tek bir hat üzerinden bit bit gönderilip alınması yöntemidir. Arduino Uno üzerindeki ATmega328P mikrodenetleyicisi donanımsal UART (Universal Asynchronous Receiver Transmitter) desteğine sahiptir.

Arduino Uno'da seri haberleşme için kullanılan pinler:

  • TX (Pin 1) → Veri gönderme
  • RX (Pin 0) → Veri alma

USB kablosu ile bilgisayara bağlandığınızda da aynı UART hattı kullanılmaktadır.


Arduino'da Seri Haberleşme Nasıl Başlatılır?

Seri haberleşmeyi kullanabilmek için setup() fonksiyonunda haberleşme hızı belirlenmelidir.

void setup()
{
    Serial.begin(9600);
}

Buradaki 9600, baud rate yani haberleşme hızıdır.

Sık kullanılan baud değerleri:

  • 9600
  • 19200
  • 38400
  • 57600
  • 115200

İki cihazın da aynı baud hızında çalışması gerekir.


Bilgisayara Veri Göndermek

Arduino'dan bilgisayara veri göndermek oldukça kolaydır.

void setup()
{
    Serial.begin(9600);
}

void loop()
{
    Serial.println("Merhaba Arduino");
    delay(1000);
}

Bu örnekte her saniye Serial Monitor ekranına:

Merhaba Arduino

yazdırılır.


print() ve println() Arasındaki Fark

Serial.print("Sicaklik:");
Serial.print(25);

Çıktı:

Sicaklik:25

Serial.println("Sicaklik:");
Serial.println(25);

Çıktı:

Sicaklik:
25

println() fonksiyonu satır sonunda yeni satıra geçer.


Bilgisayardan Veri Okumak

Serial Monitor üzerinden Arduino'ya veri gönderebilirsiniz.

void setup()
{
    Serial.begin(9600);
}

void loop()
{
    if (Serial.available())
    {
        char veri = Serial.read();

        Serial.print("Gelen Veri: ");
        Serial.println(veri);
    }
}

Gönderilen karakter anında okunarak tekrar ekrana yazdırılır.


Serial.available() Ne İşe Yarar?

Serial.available()

Alma tamponunda okunmayı bekleyen veri olup olmadığını kontrol eder.

Örneğin;

if(Serial.available())
{
    // Veri geldi
}

şeklinde kullanılır.


Sayısal Veri Göndermek

Bilgisayardan gönderilen sayılar da okunabilir.

void setup()
{
    Serial.begin(9600);
}

void loop()
{
    if(Serial.available())
    {
        int sayi = Serial.parseInt();

        Serial.print("Girilen sayi: ");
        Serial.println(sayi);
    }
}

Örneğin:

250

gönderildiğinde Arduino ekrana:

Girilen sayi: 250

yazacaktır.


LED Kontrolü Örneği

Bilgisayardan gönderilen karakterlere göre LED yakılıp söndürülebilir.

void setup()
{
    pinMode(13, OUTPUT);
    Serial.begin(9600);
}

void loop()
{
    if(Serial.available())
    {
        char komut = Serial.read();

        if(komut == 'A')
        {
            digitalWrite(13, HIGH);
        }

        if(komut == 'K')
        {
            digitalWrite(13, LOW);
        }
    }
}

Serial Monitor'dan:

A

gönderildiğinde LED yanar.

K

gönderildiğinde LED söner.


Kullanışlı Seri Haberleşme Fonksiyonları

FonksiyonAçıklama
Serial.begin()Seri haberleşmeyi başlatır.
Serial.print()Veriyi aynı satıra yazar.
Serial.println()Veriyi yazıp yeni satıra geçer.
Serial.read()Gelen ilk karakteri okur.
Serial.available()Bekleyen veri miktarını döndürür.
Serial.parseInt()Sayısal veri okur.
Serial.parseFloat()Ondalıklı sayı okur.
Serial.readString()Gelen metni String olarak okur.
Serial.write()Ham veri gönderir.

Seri Haberleşme Kullanırken Dikkat Edilmesi Gerekenler

  • Arduino ile bilgisayarın aynı baud hızında çalışması gerekir.
  • RX (0) ve TX (1) pinleri USB haberleşmesini de kullandığından, bu pinlere bağlı harici cihazlar program yükleme sırasında sorun oluşturabilir.
  • Büyük veri paketlerinde Serial.available() kontrolü yapılması önerilir.
  • Çok yüksek baud hızlarında kablo kalitesi ve haberleşme mesafesi iletişim kararlılığını etkileyebilir.

Sonuç

Arduino seri haberleşme, hem bilgisayar ile veri alışverişi yapmak hem de farklı elektronik cihazlarla iletişim kurmak için en temel ve en güçlü yöntemlerden biridir. Sensör verilerinin izlenmesi, motor kontrolü, haberleşme modülleri ve hata ayıklama işlemlerinde yaygın olarak kullanılır. Serial.begin(), Serial.print() ve Serial.read() gibi temel fonksiyonları öğrendikten sonra daha gelişmiş UART tabanlı projeler geliştirmek oldukça kolay hale gelir.

Yorum Yazın