I2C Nedir? Arduino ile I2C Haberleşme Protokolü Nasıl Kullanılır?
I2C, iki kablo üzerinden birden fazla cihazın aynı hatta bağlanabildiği seri haberleşme protokolüdür. Sensörler, OLED ekranlar, RTC modülleri, ADC çeviriciler ve birçok düşük hızlı çevre birimi I2C ile çalışır.
I2C Nedir?
I2C haberleşmede bir ana cihaz saat sinyalini üretir ve aynı veri hattı üzerinden adreslenmiş cihazlarla veri alışverişi yapar. Her cihazın 7-bit veya 10-bit adresi bulunur. Bu sayede aynı SDA/SCL hattında birden fazla modül kullanılabilir.
Pinler ve Bağlantı Mantığı
| Hat / Pin | Görevi |
|---|---|
| SDA | Seri veri hattıdır. Arduino UNO üzerinde A4 pinidir. |
| SCL | Seri saat hattıdır. Arduino UNO üzerinde A5 pinidir. |
| VCC | Modülün çalışma voltajına göre 3.3V veya 5V besleme. |
| GND | Ortak toprak hattı. |
Nerelerde Kullanılır?
- OLED/LCD ekran bağlantıları
- BMP180/BME280 gibi sensörler
- DS3231 RTC modülleri
- ADS1115 ADC modülleri
- Pin tasarrufu gereken projeler
Arduino ile Basit Örnek
Aşağıdaki örnek, I2C konusunu anlatırken GitHub README içinde kullanılabilecek temel demo mantığını gösterir.
#include <Wire.h>
void setup() {
Wire.begin();
Serial.begin(9600);
Serial.println("I2C Scanner basladi");
}
void loop() {
for (byte address = 1; address < 127; address++) {
Wire.beginTransmission(address);
if (Wire.endTransmission() == 0) {
Serial.print("I2C cihaz bulundu: 0x");
Serial.println(address, HEX);
}
}
delay(3000);
}
I2C Örnek Kodları ve Bağlantı Notları
Arduino, ESP32 ve modül bağlantıları için örnek README dosyalarını GitHub deposunda yayınlayabilirsiniz.
Sık Yapılan Hatalar
- Pull-up dirençlerini unutmak: I2C hatları genellikle pull-up direnç ister; çoğu modülde dahili direnç bulunur ama uzun kabloda sorun çıkabilir.
- Adres çakışması: Aynı adrese sahip iki modül aynı hatta doğrudan kullanılamaz.
- Voltaj seviyesi: 3.3V modülü 5V hatta bağlarken lojik seviye dönüştürücü gerekebilir.
Bu Protokol İçin Gerekli / Faydalı Ürünler
I2C projelerinde Arduino, breadboard, jumper kablo ve 3.3V/5V uyumluluğu için lojik seviye dönüştürücü kullanılabilir.
| Arduino Uno R3 Klon + USB Kablo | Ürünü İncele |
| Breadboard | Ürünü İncele |
| Jumper Kablo | Ürünü İncele |
| 4 Kanal Lojik Seviye Dönüştürücü | Ürünü İncele |
Sonuç
I2C protokolünü anlamak, Arduino ve gömülü sistem projelerinde sensör, ekran, haberleşme modülü ve sürücü kartlarını daha doğru seçmenizi sağlar. Projenizde mesafe, hız, kablo sayısı ve gürültü dayanımı gereksinimlerini belirleyerek doğru protokolü seçebilirsiniz.
Robomer ile Elektronik Projelerinizi Kurun
Geliştirme kartları, sensörler, haberleşme modülleri, dönüştürücüler ve kablolama elemanları Robomer güvencesiyle.
Robomer Ürünlerini İncele