Arduino Uno ile USART Seri Haberleşme Uygulaması-1
Arduino UNO geliştirme kartı, bilgisayara USB portu üzerinden takıldığında COM portu olarak tanınır. COM portu, seri haberleşme adı verilen bir bağlantı türü için kullanılır. Bilgisayarla Arduino’yu haberleştirmek için Arduino IDE yazılımında bulunan “Seri Port Ekranı” kullanılır.
Seri haberleşme, iki cihaz arasında çift yönlü iletişim kurulmasıdır. Seri haberleşmede en çok kullanılan protokollerden biri UART/USART'dır. ATMega 328P mikrodenetleyicisi de UART/USART seri haberleşmeyi destekler. UART/USART, iki cihaz arasında seri iletişim için kullanılan bir donanım cihazı veya devresidir. Bu donanım mikrodenetleyici içerisinde bulunur. UART, alınan paketlerden veri göndermek veya yeniden oluşturmak için verileri paketlere dönüştürerek çalışır. Aynı anda sadece iki UART cihazı birbirine bağlanabilir. UART ile verilerin taşınabilmesi için TX, RX ve GND olmak üzere 3 bağlantı yeterlidir.
UART: Evrensel Asenkron Alıcı/Verici (Universal Asynchronous Receiver/Transmitter).
Görsel 1.1: UART seri haberleşme
Kullanılan Arduino geliştirme kartı modeline göre bir veya daha fazla USART donanımı bulunabilir. Arduino Uno ve Arduino Nano üzerinde 1 adet, Arduino Mega üzerinde 4 adet UART/USART seri haberleşme, donanımsal olarak mevcuttur. Arduino UNO’da seri haberleşme için veri alıcı pin RX (receiver: alıcı) 0 nolu pindir. Veri gönderici pin TX (transmitter: verici) 1 nolu pindir. Arduino Nano’da tam tersidir. 0 nolu pin TX, 1 nolu pin RX’dir.
Serial.begin() fonksiyonu: Seri haberleşmeyi başlatmak için kullanılır. Yazım şekli, Serial.begin (baud rate); şeklindedir.
Baud rate (hızı): Bu terim seri haberleşme hızını belirtir. Bir UART cihazının iletebileceği/alabileceği saniyedeki bit (bps) sayısıdır. Doğru veri iletimi için her iki UART cihazı da aynı baud hızına ayarlanmalıdır. Her byte için 10 bit gönderildiğinden gönderilen byte miktarı bu değerlerin 10’a bölümüyle bulunur. Örneğin, 9600 bps hızında saniyede en fazla 9600 / 10 = 960 karakter gönderilebilir. Baud hızı olarak 300, 1.200, 2.400, 4.800, 9.600, 14.400, 19.200, 28.800, 38.400, 57.600, 74.880, 115.200, 230.400, 250.000, 500.000, 1.000.000 ve 2.000.000 baud kullanılabilir. Gönderici tarafta baud hızı neyse alıcı tarafta da aynı değer kullanılmalıdır. Aksi halde iletişim sağlanır ancak giden veriler alıcı tarafta yanlış okunur. Arduino ile seri haberleşmede baud hızı standart olarak 9600 baud kullanılır.
Seri haberleşmede veri gönderme fonksiyonları: Serial.print(), Serial.println() ve Serial.write() komutlarıdır.
Serial.print() ve Serial.println() fonksiyonları Arduino’dan ASCII karakter dizileri göndermek için kullanılır. Bu fonksiyonlar çift tırnak içinde yazan yazının seri port ekranında görünmesini sağlar. Serial.print (“veri”), gönderilen verileri sonuna karakter eklemeden (satır atlamadan) gönderilir. Karşı tarafta alınan veri yan yana gelmiş olur. Serial.println (“veri”), gönderilen verilerin sonuna “\n” yani Enter karakteri eklenir. Bu karakter karşı tarafta alınan verilerin alt alta gelmesini sağlar. Böylece satır atlanmış olur.
Serial.write(“veri”) ile veriler binary (ikili) formatta gönderilir. İkili formatta gönderim, ASCII formata göre biraz daha farklıdır.
Uygulamaya Ait Şema, Bağlantı Şekli ve Görseller
Bu uygulamada Arduino UNO kartı yeterli olmaktadır.
Görsel 1.2: Arduino Uno ile USART seri haberleşme uygulaması devre şeması
Malzeme Listesi
Sıra No |
Adı |
Özelliği |
Miktarı |
1 |
Arduino Uno R3 |
- |
1 Adet |
Uygulamaya Ait Kod
/*
Uygulama Adı : USART seri haberleşme ve seri port ekranı uygulaması
Açıklama : Bilgisayara seri porttan veri gönderme. Seri port ekranından ritmik sayma uygulaması.
Tarih : 08 Temmuz 2020
Yazan : İlhan DEMİR
*/
int birerRitmik = 0;
void setup()
{
Serial.begin(9600); //Seri haberleşmeyi 9600 baud hızında başlat.
Serial.print("Merhaba, ");
Serial.println("birer ritmik saymaya başlıyorum.");
delay(3000);
}
void loop()
{
Serial.println(String ("Sayı = ") + birerRitmik);
birerRitmik = birerRitmik + 1; //birerRitmik++; şeklinde de kullanılabilir.
delay(1000);
}
Bu internet sitesi içeriğinde yer alan tüm eserler (yazı, resim, görüntü, fotoğraf, video, müzik vb.) İlhan DEMİR'e ait olup, 5846 sayılı Fikir ve Sanat Eserleri Kanunu ve 5237 sayılı Türk Ceca Kanunu kapsamında korunmaktadır. Bu hakları ihlal eden kişiler, 5846 sayılı Fikir ve Sanat eserleri Kanunu ve 5237 sayılı Türk Ceza Kanununda yer alan hukuki ve cezai yaptırımlara tabi olurlar. İlhan DEMİR, yasal işlem başlatma hakkına sahiptir.
BİR CEVAP YAZ