Arduino ile Seri Haberleşme (Serial Communication) Rehberi
Arduino ile Seri Haberleşme (Serial Communication) Rehberi
Seri haberleşme, Arduino projelerinde veri alışverişi yapmak için kullanılan en temel iletişim yöntemlerinden biridir. Bilgisayar ile Arduino arasında veri gönderip almak, sensörlerden gelen bilgileri izlemek veya farklı mikrodenetleyiciler arasında iletişim kurmak için seri haberleşme yaygın olarak kullanılır. Arduino IDE içerisinde bulunan Serial Monitor ve Serial Plotter araçları sayesinde gönderilen ve alınan veriler kolayca takip edilebilir.
Bu yazıda Arduino seri haberleşmenin çalışma mantığını, kullanılan temel fonksiyonları ve örnek uygulamaları inceleyeceğiz.
Seri Haberleşme Nedir?
Seri haberleşme, verilerin tek bir hat üzerinden bit bit sıralı şekilde iletilmesidir. Paralel haberleşmeye göre daha az bağlantı gerektirdiği için hem daha ekonomik hem de daha güvenilir bir iletişim yöntemi sunar.
Arduino kartlarında bulunan USB dönüştürücü sayesinde bilgisayar ile seri haberleşme oldukça kolaydır. Program yükleme işlemi de aynı seri haberleşme altyapısını kullanır.
Arduino'da Seri Haberleşme Nasıl Çalışır?
Arduino üzerinde seri haberleşme iki temel pin üzerinden gerçekleştirilir.
- TX (Transmit): Veri gönderme pini
- RX (Receive): Veri alma pini
Arduino Uno üzerinde:
- TX → Dijital Pin 1
- RX → Dijital Pin 0
USB bağlantısı kullanıldığında bu pinler otomatik olarak bilgisayarla iletişim kurar.
Baud Rate Nedir?
Baud Rate, seri haberleşmede saniyede iletilen veri hızını ifade eder. Arduino ve haberleştiği cihazın aynı baud hızında çalışması gerekir.
Yaygın kullanılan baud hızları şunlardır:
- 9600
- 19200
- 38400
- 57600
- 115200
Başlangıç seviyesindeki projelerde en çok 9600 baud kullanılır.
Serial Kütüphanesi
Arduino IDE içerisinde yerleşik olarak gelen Serial sınıfı sayesinde seri haberleşme oldukça kolaydır.
En sık kullanılan fonksiyonlar şunlardır:
Serial.begin()
Seri haberleşmeyi başlatır.
Serial.begin(9600);Serial.print()
Veriyi aynı satırda gönderir.
Serial.print("Arduino");
Serial.print(" ");
Serial.print("Uno");Çıktı:
Arduino UnoSerial.println()
Veriyi gönderdikten sonra yeni satıra geçer.
Serial.println("Merhaba Dünya");Serial.available()
Seri portta okunmayı bekleyen veri olup olmadığını kontrol eder.
if (Serial.available()) {
}Serial.read()
Seri porttan gelen bir karakteri okur.
char veri = Serial.read();Serial.write()
Ham veri (byte) göndermek için kullanılır.
Serial.write(65);Çıktı:
ABasit Seri Haberleşme Örneği
Aşağıdaki örnek her saniye bilgisayara bir mesaj gönderir.
void setup() {
Serial.begin(9600);
}
void loop() {
Serial.println("Merhaba Arduino");
delay(1000);
}Serial Monitor açıldığında her saniye aşağıdaki çıktı görülür.
Merhaba Arduino
Merhaba Arduino
Merhaba ArduinoBilgisayardan Veri Okuma
Aşağıdaki örnekte Serial Monitor üzerinden girilen karakter Arduino tarafından okunur.
void setup() {
Serial.begin(9600);
}
void loop() {
if (Serial.available()) {
char veri = Serial.read();
Serial.print("Gelen Veri: ");
Serial.println(veri);
}
}Örneğin kullanıcı:
Agönderirse ekranda
Gelen Veri: Ayazacaktır.
LED Kontrolü Seri Haberleşme ile
Seri haberleşme kullanılarak bilgisayardan LED kontrolü yapılabilir.
const int led = 13;
void setup() {
pinMode(led, OUTPUT);
Serial.begin(9600);
}
void loop() {
if (Serial.available()) {
char komut = Serial.read();
if (komut == '1') {
digitalWrite(led, HIGH);
Serial.println("LED Acildi");
}
if (komut == '0') {
digitalWrite(led, LOW);
Serial.println("LED Kapandi");
}
}
}Serial Monitor üzerinden:
1gönderildiğinde LED yanar.
0gönderildiğinde LED söner.
Serial Plotter Kullanımı
Arduino IDE içerisinde bulunan Serial Plotter, sayısal verileri grafik olarak görüntülemeyi sağlar.
Örneğin bir sıcaklık sensörü, ışık sensörü veya potansiyometreden gelen değerler gerçek zamanlı olarak grafik halinde izlenebilir.
void setup() {
Serial.begin(9600);
}
void loop() {
int deger = analogRead(A0);
Serial.println(deger);
delay(20);
}Bu örnek sayesinde analog girişten okunan değerler grafik olarak görüntülenebilir.
Seri Haberleşmenin Kullanım Alanları
Arduino seri haberleşme birçok projede kullanılmaktadır.
- Bilgisayar ile veri alışverişi
- Sensör verilerinin izlenmesi
- Hata ayıklama (Debug)
- Bluetooth modülleri (HC-05, HC-06)
- Wi-Fi modülleri
- GPS modülleri
- GSM modülleri
- RFID sistemleri
- Barkod okuyucular
- Arduino-Arduino haberleşmesi
- Arduino ile Raspberry Pi haberleşmesi
Dikkat Edilmesi Gerekenler
Seri haberleşme kullanırken aşağıdaki noktalara dikkat edilmelidir.
- Her iki cihaz aynı baud hızını kullanmalıdır.
- RX ve TX bağlantıları çapraz bağlanmalıdır (TX → RX, RX → TX).
- Arduino Uno'da Pin 0 ve Pin 1 program yükleme sırasında kullanıldığı için harici cihaz bağlantılarında dikkatli olunmalıdır.
- Büyük veri paketlerinde tampon (buffer) taşmalarına karşı veri kontrolü yapılmalıdır.
Sonuç
Seri haberleşme, Arduino programlamanın temel taşlarından biridir. Gerek bilgisayar ile veri alışverişi yapmak gerekse sensörlerden gelen bilgileri takip etmek için vazgeçilmez bir yöntemdir. Serial.begin(), Serial.print(), Serial.println(), Serial.available() ve Serial.read() gibi fonksiyonları öğrenerek daha gelişmiş projelerin temelini oluşturabilirsiniz. Seri haberleşme mantığını kavradığınızda Bluetooth, Wi-Fi, GPS ve diğer haberleşme modülleriyle çalışmak da çok daha kolay hale gelecektir.
