UART Nedir?

UART (Universal Asynchronous Receiver/Transmitter), mikrodenetleyiciler arasında seri haberleşme sağlayan asenkron bir iletişim protokolüdür. Bu protokolde iki temel pin kullanılır:

  • RX (Receive): Veri alır
  • TX (Transmit): Veri gönderir

UART Bağlantısı


UART Nasıl Çalışır?

İki Arduino arasında UART haberleşmesi kurmak için RX ve TX pinleri çapraz şekilde bağlanır:

  • Arduino 1’in TX pini → Arduino 2’nin RX pini
  • Arduino 1’in RX pini → Arduino 2’nin TX pini

Daha sonra her iki Arduino’da da seri haberleşmeyi başlatmak için aşağıdaki komut yazılır

Serial.begin(9600);

Veri göndermek için Serial.write() fonksiyonu kullanılır. Örneğin, bir butona basılıp basılmadığını kontrol ederek ‘A’ karakteri gönderilebilir

 
  if(digitalRead(Buton) == 1){
 
    Serial.write('A');
  }
 

Gelen veriyi kontrol etmek için Serial.available() > 0 kullanılır. Veri varsa Serial.read() fonksiyonu ile okunur

 
  if(Serial.available() > 0){
 
    char gelen = Serial.read();
    if(gelen == 'A'){
      digitalWrite(13, 1);
    }
  }
 

if (Serial.available() > 0) ifadesi, seri porttan veri gelip gelmediğini kontrol eder; veri varsa if bloğuna girilir.

Örnek Kod

/* Veri Gönderen */
/* Veri Gönderen ile Veri Alan Arduino'ya 
bağlı olan LED'i kontrol edeceğiz */
 
#define Buton_yak    3
#define Buton_sondur 4
 
void setup() {
    Serial.begin(9600);
    pinMode(Buton_yak, INPUT_PULLUP);
    pinMode(Buton_sondur, INPUT_PULLUP);
}
 
void loop() {
    if (digitalRead(Buton_yak) == 0) {
        Serial.write('A');
    }
 
    if (digitalRead(Buton_sondur) == 0) {
        Serial.write('B');
    }
}
 
 

/* Veri Alan */
/* Veri Gönderen Arduino'dan Gelen Veriye Göre 
   Gelen veriyi okuyup ona göre LED’i yakıp/söndürecek */
 
#define Led 5
 
void setup() {
  Serial.begin(9600);
  pinMode(Led, OUTPUT);
}
 
void loop() {
  if (Serial.available() > 0) {
    char gelen = Serial.read();
 
    if (gelen == 'A') {
      digitalWrite(Led, 1);
      Serial.print("Led Yakıldı!\n");
    }
 
    if (gelen == 'B') {
      digitalWrite(Led, 0);
      Serial.print("Led Söndürüldü!\n");
    }
  }
}

uart

Bağlantı Şeması