Haberler

Arduino İletişim Donanımları: UART, I2C ve SPI

UART, I2C ve SPI, maker’lar ve elektrikçiler tarafından mikrodenetleyici geliştirmede kullanılan en yaygın ve temel donanım iletişim çevre birimlerinden biridir. Benzer şekilde, Arduino için de UART, I2C ve SPI çevre birimleri bulunmaktadır.

Arduino kullanıcıları için, dijital ve analog pinlerden, yerleşik iletişim çevre birimlerini kullanmaya geçmek uzun sürmeyecek çünkü dijital ve analog pinler sizin için yalnızca bu kadar şey yapabilir.

Bu blogda şunları konuşacağız:

  • Arduino kartlarındaki UART, SPI, I2C pin örnekleri
  • Arduino’da UART’a giriş
    • UART kullanmanın avantajları ve dezavantajları
    • İlgili UART Arduino aksesuarları
  • Arduino’da I2C’ye giriş
    • I2C kullanmanın avantajları ve dezavantajları
    • İlgili I2C Arduino aksesuarları
  • Arduino’da SPI’ye giriş
    • SPI kullanmanın avantajları ve dezavantajları
    • İlgili SPI Arduino

Arduino Kartlarındaki UART, SPI, I2C Pin Örnekleri

Başlamadan önce, farklı Arduino kartlarındaki UART, SPI ve I2C pinlerinin nerede olduğunu merak ediyor olabilirsiniz çünkü bunlar yerleşik çevre birimleridir. İşte bazı örnekler:

Arduino Uno Rev3 ($24.95)

  • Arduino Uno Rev 3, 32KB Flash bellek ve 2KB RAM’e sahip 8-bit ATmega328 mikrodenetleyici tabanlı bir mikrodenetleyici kartıdır.
  • 14 dijital giriş/çıkış pini (bunlardan 6’sı PWM çıkışı olarak kullanılabilir), 6 analog giriş, 16 MHz kristal osilatör, USB bağlantısı, bir güç jakı, bir ICSP başlığı ve bir reset butonu vardır.

Seeeduino V4.2 ($6.90)

  • Seeeduino V4.2, ATmga328P MCU tabanlı, Arduino uyumlu bir karttır. Dünyada birçok Arduino ve Arduino uyumlu kart bulunmaktadır ve diğer Arduino’larla karşılaştırıldığında, çok daha kararlı, kullanımı kolay ve hatta güzel olduğunu düşünüyoruz.
  • Seeeduino V4.2, Arduino UNO bootloader’ına dayanmakta ve bir UART’tan USB’ye dönüştürücü olarak ATMEGA16U2 kullanmaktadır, bu da kartın temelde bir FTDI çipi gibi çalışabileceği anlamına gelir.

Seeeduino Nano ($6.90)

  • Seeeduino Nano, Seeeduino V4.2/Arduino UNO’ya benzer kompakt bir karttır ve pin düzeni ve boyutları açısından Arduino Nano ile tamamen uyumludur.
  • Seeeduino V4.2 ile aynı şekilde, Seeeduino Nano da Atmega328P — 8-bit AVR mikrodenetleyici etrafında inşa edilmiştir. Ancak, ikisinin boyutları önemli ölçüde farklıdır. Boyutunun dörtte birinden daha az, ancak neredeyse aynı özelliklere sahip olan Seeeduino Nano, projeniz için daha fazla alan tasarrufu sağlar ve alan kısıtlı sahneler için daha uygundur.
  • Arduino Nano ile karşılaştırıldığında, Mini USB yerine Type C USB’ye ve ayrıca ek bir Grove I2C konektörüne sahiptir.
  • Grove hakkında:
    • Grove, Seeed’in kendi modüler, standartlaştırılmış konektör prototipleme sistemidir.
    • Grove, elektronik bileşenleri bir araya getirmek için bir yapı bloğu yaklaşımı benimsemektedir; jumper veya lehim tabanlı sisteme kıyasla. Bağlantı kurmayı, denemeyi ve inşa etmeyi kolaylaştırır ve maker’lar için öğrenme sistemini basitleştirir.

Daha fazla uzatmadan, Arduino için ilk iletişim çevre birimi olan UART‘a geçelim.


Arduino’da UART’a Giriş

  • UART, Universal Asynchronous Reception and Transmission’ın kısaltmasıdır ve ana bilgisayarın (Arduino) seri cihazlarla iletişim kurmasını sağlayan basit bir seri iletişim protokolüdür.
  • UART, iki yönlü, asenkron ve seri veri iletimini destekler.
  • Birbirleriyle iletişim kurmak için 2 veri hattı kullanır: TX (Pin 1) ve RX (Pin 0).
    • TX – Gönderim için kullanılır
    • RX – Alım için kullanılır
    • İki cihaz (örneğin, Arduino üzerindeki USB ve bilgisayar) arasında bağlantı kurarlar.
  • UART, tüm Arduino kartlarında bulunur ve bu sayede Arduino, yerleşik USB’den seri dönüştürücü sayesinde bir bilgisayarla iletişim kurabilir.
  • Programınız Windows, Mac veya Linux işletim sisteminde yazılmışsa ve Arduino’nuzla kullanmak istiyorsanız, onları USB portları aracılığıyla bir seri portmuş gibi bağlayın.

UART çalışma protokolü ve işlemi hakkında daha fazla bilgi için diğer blog yazımıza buradan göz atabilirsiniz!

Arduino ile UART Kullanmanın Avantajları ve Dezavantajları

Arduino ile UART Kullanmanın Avantajları

  • Arduino ile çalışması ve kullanması basittir. Arduino kullanıcıları tarafından yaygın olarak kullanılan bir yöntemdir ve çevrimiçi birçok kaynak ve eğitim mevcuttur.
  • Saat sinyali gerekmez

Arduino ile UART Kullanmanın Dezavantajları

  • I2C ve SPI’ye kıyasla daha düşük hız
  • Her UART’ın baud hızları, veri kaybını önlemek için birbirinin %10’u içinde olmalıdır.
  • Arduino ve köleler gibi birden fazla ana sistem kullanılamaz.

İlgili UART Arduino Aksesuarları

USB CP2102 Seri Dönüştürücü

  • USB CP2102 Seri Dönüştürücü, RF Explorer 3G+ IoT için Arduino/Seeeduino kartının bir bilgisayardan yazılım güncellemelerini kabul etmesi için gereken küçük bir adaptördür.
  • Ayrıca, RF Explorer 3G+ IoT kartı ile birlikte bir Seeeduino veya diğer küçük form faktörlü kart kullanıldığında ekstra bir Arduino Seri portu olarak da kullanılabilir.

Grove – UART WiFi V2 (ESP8285)

  • Grove – UART WiFi V2.0(ESP8285), yaygın ESP8285 IoT SoC’yi içeren bir seri alıcı-verici modülüdür. Entegre TCP/IP protokol yığını ile bu modül, mikrodenetleyicinizin Wi-Fi ağlarıyla yalnızca birkaç satır kodla etkileşimde bulunmasını sağlar.
  • ESP8285, bağımsız bir uygulama olarak veya bir ana MCU’ya köle olarak çalışabilir. ESP8285 uygulamayı barındırdığında, hemen flash’tan başlatılır. Entegre yüksek hızlı önbellek, sistem performansını artırmaya ve sistem belleğini optimize etmeye yardımcı olur.

Grove – I2C Hub (6 Port)

  • I2C, çok popüler bir iletişim protokolüdür. Grove sisteminde, 80’den fazla sensör iletişim için I2C kullanmaktadır. Bu I2C hub ile daha fazla I2C Grove modülünü bağlamak artık daha da kolay.
  • Günümüzde daha fazla MCU 3.3V iletişim seviyelerini kullanırken, geleneksel Arduino Uno hala 5V kullanmaktadır, bu da birçok modülün, özellikle sensör modüllerinin, kullanıldığında seviye ayarlaması gerektirmesine neden olmaktadır.
  • Bu modül ile, çoğu Grove sensör modülünün artık bir seviye kaydırma işlevine sahip olması nedeniyle, kullanıcıların 3.3V veya 5V MCU kullanma konusunda endişelenmelerine gerek yoktur.
  • Daha ayrıntılı sensör uyumluluğu incelemesi için Grove Seçim Kılavuzu‘nu görüntüleyebilirsiniz.

Base Shield V2

  • Projeniz birçok sensör, LED ve jumper kablosu içerdiğinde karmaşık hale gelmesi sinir bozucu değil mi?
  • Bu Base Shield V2 ile, breadboard ve jumper kablolarından kurtulursunuz ve tüm Grove Modüllerinizi Arduino UNO’ya çok rahat bir şekilde eklemenizi sağlar; 16 Grove konektörü ile birlikte, analog, dijital, UART ve I2C bağlantılarını içerir.

Arduino’da I2C’ye Giriş

  • I²C, entegre devreler arası iletişim anlamına gelen bir seri iletişim arayüzüdür ve mikrodenetleyiciler için tasarlanmıştır.
  • UART’a kıyasla benzer, ancak I2C, PC – Cihaz iletişimi için kullanılmaz, modülleriniz ve sensörlerinizle kullanılır.
  • Basit, iki yönlü, iki telli senkron seri bir veri yoludur ve veri iletimi için yalnızca 2 tel (SDA ve SCL) kullanır.
  • I2C, Arduino projeleri için faydalıdır çünkü bazen birden fazla farklı parçanın (örneğin, sensörler, genişletmeler, sürücüler) birlikte çalışmasını gerektirir ve I2C ile ana kart üzerinde 128’e kadar cihazı bağlayabilirken, ana (Arduino) ve köle (Modüller ve sensörler) cihazları arasında net bir iletişim yolu sağlarsınız!

I2C çalışma protokolü ve işlemi hakkında daha fazla bilgi için diğer blog yazımızı buradan kontrol edebilirsiniz!

Arduino ile I2C Kullanmanın Avantajları ve Dezavantajları

Arduino ile I²C Kullanmanın Avantajları

  • Birçok cihazla birlikte bile düşük pin/sinyal sayısı
  • Esnek = çoklu ana ve çoklu köle iletişimini destekler (örneğin, Raspberry Pi ile Arduino’yu birleştirebilir)
  • Basit = yalnızca 2 tel kullanır
  • Uyumlu = çeşitli köle cihazlarının ihtiyaçlarına uyum sağlar.

Arduino ile I²C Kullanmanın Dezavantajları

  • SPI’ye (bir sonraki iletişim çevresi) kıyasla daha yavaş hız, çünkü pull-up dirençleri kullanır.
  • Açık-drain tasarımı = sınırlı hız.
  • Dirençlerin kullanımı nedeniyle daha fazla alan gerektirir
  • Cihaz sayısı arttıkça karmaşık hale gelebilir

İlgili I2C Arduino Aksesuarları

Fırçasız Motor Shield (TB6605FTG)

  • Fırçasız Motor Shield, Arduino için bir Fırçasız Motor Sürücüsüdür.
  • Üzerindeki potansiyometre ile motor hızını kolayca ayarlayabilirsiniz. Bu shield, seçebileceğiniz çeşitli modlar sunar; dört üzerindeki anahtar ile fonksiyonları değiştirebilirsiniz. 
  • Üzerindeki Grove I2C arayüzü ile bu shield ile diğer grove modülleri ile kolayca çalışabilirsiniz; örneğin, motor hızını göstermek için bir Grove – LCD RGB Arka Aydınlatma kullanabilirsiniz.

I2C Sürücü/Adaptör – I2C Cihazlarını Kolayca Sürücü

I2C LED Matris
  • I²C Sürücü, I²C cihazlarını kontrol etmek için kullanımı kolay, açık kaynaklı bir araçtır.
  • Windows, Mac ve Linux ile çalışır ve tüm I²C etkinliğini gösteren yerleşik bir renkli ekranı vardır.
  • I²C bağlantınızın yanlış gidebileceğinden mı korkuyorsunuz? Ağır hata ayıklamaktan kaçınmak mı istiyorsunuz? İşte bu I²C Sürücü, I²C’yi çok daha kullanıcı dostu hale getirir ve bunu önleyebilir.

Arduino’da SPI’ye Giriş

  • SPI, seri çevresel arayüz anlamına gelir ve I2C’ye benzer; mikrodenetleyicilerin bağlanması için özel olarak tasarlanmış farklı bir seri iletişim protokolüdür.
  • SPI, verilerin aynı anda gönderilip alınabildiği tam çift yönlü çalışır.
  • UART ve I2C’ye kıyasla, 8Mbit veya daha fazla veri iletim hızları ile en hızlı iletişim çevresidir.
    • Basit protokolü nedeniyle genellikle daha hızlıdır. Veri/saat hatları cihazlar arasında paylaşılır ve her cihazın benzersiz bir adres kablosuna ihtiyacı vardır.
  • SPI, hızın önemli olduğu yerlerde kullanılır; örneğin SD kartlar, ekran modülleri veya bilgilerin hızlı bir şekilde güncellenip değiştiği yerlerde, örneğin termometrelerde.
  • Ancak, SPI yalnızca bir ana cihaz ile kullanılabilir; bu, en fazla 4 köle cihazı olan bir Arduino’dur.

SPI çalışma protokolü ve işlemi hakkında daha fazla bilgi için diğer blog yazımızı buradan kontrol edebilirsiniz!

Arduino ile SPI Kullanmanın Avantajları ve Dezavantajları

Arduino ile SPI Kullanmanın Avantajları

  • Protokol basittir, I2C gibi karmaşık bir köle adresleme sistemi yoktur.
  • UART ve I2C’ye kıyasla en hızlı protokoldür.
  • Başlangıç ve durdurma bitleri yoktur, bu da verilerin kesintisiz olarak iletilebileceği anlamına gelir.

Arduino ile SPI Kullanmanın Dezavantajları

  • Daha fazla pin portu kullanılır, cihaz sayısında pratik bir sınır vardır. (1 ana ve 4 köle cihaz)
  • Akış kontrolü belirtilmemiştir ve verilerin alınıp alınmadığını onaylayan bir mekanizma yoktur, bu I2C’de vardır.
  • Dört hat kullanır – MOSI, MISO, NCLK, NSS.
  • UART’taki hata kontrolü gibi bir hata kontrolü yoktur (parite biti kullanarak).
  • Birden fazla ana cihaz yoktur.

İlgili SPI Arduino Aksesuarları

MCP2551 ve MCP2515 Tabanlı Seri CAN-BUS Modülü

  • Seri CAN Bus modülü, Arduino’nuzun CAN bus yeteneklerine sahip olmasını sağlar ve aracınızı hacklemenize olanak tanır.
  • CAN bus’a mesaj okumak ve yazmak için kullanabilirsiniz. Seri CAN Bus modülü, SPI üzerinden yerleşik Grove konektörü aracılığıyla Arduino’nuzla bağlanabilir.

2.7” Üç Renkli E-Ink Shield for Arduino

  • E-Ink ekranı, E-kağıt ekranı olarak da bilinir. E-Ink, arka aydınlatma ihtiyacını ortadan kaldırır ve bu nedenle güç tüketimi ultra düşüktür. Ayrıca E-Ink, doğrudan güneş ışığında bile net bir şekilde görüntülenebilen çok geniş bir izleme açısına ve çok yüksek bir kontrasta sahiptir.
  • 2.7” Üç Renkli E-Ink Ekranı, 264×176 piksel içeren bir Arduino E-Ink ekran kalkanıdır ve her piksel için beyaz/siyah/kırmızı gösterebilir.
  • Bu kalkan, Arduino ile SPI arayüzü aracılığıyla iletişim kurar ve diğer modüllerle kullanmak için bir Grove I2C arayüzü ayırır.

SD Kart Shield V4

  • Bu SD kart V4.0 kalkanı, Arduino’nuz için depolama alanı sağlar.
  • Kullanıcılar, Arduino’nun yerleşik SD kütüphanesi aracılığıyla SD kartı okuyup yazabilir. SD, SDHC ve Micro SD kartları destekler ve yalnızca Arduino’nuzun SPI portunu kullanır.
  • Bu kalkanı, kullanılmayan pinlerle çalışan diğer kalkanların üzerine yerleştirebilirsiniz. Ayrıca, Grove modülleriyle bağlantınızı kolaylaştıran önceden şekillendirilmiş I2C ve UART portları vardır.

Özet

UART, SPI ve I2C gibi 3 farklı iletişim çevresel birimi, ister yeni başlayan ister deneyimli bir mühendis olun, Arduino ile kullanmak için karmaşık görünebilir, ancak projeleriniz için hangi iletişim çevresel birimini kullanacağınızı bilmek, cihazlarınızın istediğiniz gibi çalışmadığı zamanlarda zaman kazanmanızı ve hayal kırıklığı yaşamamanızı sağlayacaktır.

Çeşitli iletişim çevresel birimlerinin avantajlarını/dezavantajlarını ve işlevlerini derledim ve bunları bir tablo kullanarak karşılaştırdım, böylece hangi iletişim çevresel biriminin projenize en uygun olduğunu kolayca seçebilirsiniz:

UART I2C SPI
Karmaşıklık Basit Birçok
cihazı
bağlamak
kolaydır.
Cihaz sayısı arttıkça
karmaşıklaşır.
Hız En yavaş UART’tan
daha hızlıdır.
En hızlıdır.
Cihaz sayısı En fazla 2
cihaz
En fazla 128
ama cihaz sayısı
arttıkça
karmaşıklaşabilir.
1 Ana ve en fazla 5 Köle cihaz,
Tel sayısı 1 2 4
Duplex Tam Duplex Yarım Duplex Tam Duplex
Ana ve köle sayısı Birden fazla köle ve ana yoktur. Birden fazla
köle ve ana vardır.
Yalnızca 1 ana vardır ama birden fazla köle olabilir.

UART, I2C ve SPI arasındaki farkları şimdi daha iyi anladığınızı umuyorum!

Leave a Reply

Your email address will not be published. Required fields are marked *