I2C Arduino Modüllerinin Adres Numarası Nasıl Bulunur?

Arduino projelerimizde I2C modüllerini kullanırken cihazın adres numarasını biliyor olmamız gerekiyor. Çoğu yaygın modülün hangi I2C adresine sahip olduğu biliniyor ve internette paylaşılan örneklerden bulunabiliyor.

Ancak I2C adresi hakkında hiçbir fikrimiz olmayan bir modül ile karşılaştığımızda veya modülümüz düşündüğümüz adres ile çalışmadığında ne yapmalıyız? Bu yazıda Arduino’ya bağlı I2C destekli modüllerin adres numaralarını bulmayı öğreneceğiz.

I2C iki elektronik cihaz arasında iletişim kurulmasını sağlayan özgün bir protokol. Bir adet master (sahip) cihaz ve teoride 127 adede kadar slave (köle) cihaz kullanımına izin veriyor. Arduino’muz bu durumda master olarak çalışıyor ve kullandığımız I2C destekli modüller de slave modunda üretiliyor.

I2C destekli modüller Arduino Uno ve Nano’ya SDA (veya A4) ve SCL (veya A5) adı verilen iki pin ile bağlanır. Arduino Mega 2560 kullanıyorsak D20 (SDA) ve D21 (SCL) pinlerini kullanmalıyız.

Bu kod sadece klasik bir tarama yapmakla kalmaz; Arduino Uno R4, ESP32, STM32 veya RP2040 gibi modern kartlarda bulunan birden fazla donanımsal I2C portunu (Wire, Wire1, Wire2, vb.) otomatik olarak tespit edip tarar. Dahası, kodun içerisinde geniş bir cihaz veritabanı bulunuyor. Ekranda sadece “0x3C” görmek yerine “0x3C => OLED (SSD1306 / SH1106)” gibi net ve anlaşılır sonuçlar alırsınız.

Kodun en can alıcı özelliklerinden biri de otomatik Multiplexer (Çoklayıcı) taramasıdır. Eğer projenizde aynı adrese sahip birden fazla sensör kullanmak için TCA9548A gibi bir I2C çoklayıcı kullanıyorsanız, tarayıcı bu entegreyi otomatik olarak algılar ve arkasına bağlı olan 8 farklı kanalı tek tek tarayarak sonucu size ağaç yapısında sunar. Ayrıca I2C bağlantılarındaki kararsızlıkları önlemek adına sıkı bir hata kontrol algoritması kullanılarak “hayalet” cihazların listeye girmesi engellenmiştir.

Kullanımı son derece basit: Kodu kopyalayın, kartınıza yükleyin ve Seri Port Ekranı’nı 115200 baud hızında açın. Saniyeler içinde tüm I2C hattınızın röntgenini çekmiş olacaksınız!

Arduino’da iyi olmak için öncelikle elektronikte iyi olmak gerekir. Türkiye’nin en iyi temel elektronik eğitim seti ARDUINO ÖNCESİ TEMEL ELEKTRONİK EĞİTİM VE DENEY SETİ‘ni keşfedin. Gereksiz bilgilerden arındırılmış basit ve eğlenceli anlatımla ELEKTRONİK öğrenin ve Arduino’ya METE HOCA farkıyla güçlü başlayın!

Sketch kodunu kopyalamak için pencerenin sağ üst köşesindeki butona tıklayabilirsiniz.