Arduino ile TCA9548A I2C Multiplexer nasıl kullanılır

How to Use the TCA9548A I2C Multiplexer with Arduino

TCA9548A, aynı I2C adresine sahip birden çok cihaza tek bir Arduino'ya bağlamanızı sağlayan bir I2C çoklayıcıdır. Bunu, ayrı ayrı erişilebilen sekiz ayrı I2C otobüsü oluşturarak elde eder. Bu öğretici, birden fazla I2C aygıtını yönetmek için Arduino ile TCA9548A'yı arayüz ve kullanarak size rehberlik edecektir.


Ne İhtiyacınız Olacak

  1. TCA9548A I2C Multiplexer Modülü
  2. Arduino Kurulu (örn. UNO, Mega, Nano)
  3. I2C cihazları (örn. Sensörler, ekranlar)
  4. Breadboard ve jumper telleri
  5. Arduino IDE kurulu bir bilgisayar

1. Adım: TCA9548A'yı anlamak

TCA9548A, 8'e kadar bağımsız I2C otobüsünü (kanallar) kontrol edebilir. Her kanal, aynı adrese sahip aygıtları izole etmek için açılabilir veya kapatılabilir.

Pinout

Pin İşlev
VCC Güç kaynağı (3.3V/5V)
Gnd Zemin
SDA I2C veri hattı
Scl I2C saat çizgisi
SDX/SCX Bireysel I2C otobüsleri (0-7)
A0, A1, A2 Adres Yapılandırması

I2C adres yapılandırması

  • TCA9548A’nın I2C adresi A0, A1 ve A2 pimleri tarafından belirlenir:
    • GND'ye tüm pimler: 0x70 (Varsayılan adres)
    • Yüksek ve düşük kombinasyonlar adresleri ayarlayabilir 0x70 ile 0x77.

Adım 2: TCA9548A'yı Arduino'ya bağlama

TCA9548A'yı Arduino'ya bağlayın

TCA9548A PIN Arduino pimi
VCC 5V
Gnd Gnd
SDA A4
Scl A5

I2C cihazlarını TCA9548A'ya bağlayın

  • I2C cihazlarınızın SDA ve SCL çizgilerini TCA9548A'daki ilgili SDX ve SCX pinlerine bağlayın.
  • Cihazların VCC ve GND pimlerinin de bağlı olduğundan emin olun.

Adım 3: Gerekli kütüphaneyi kurun

TCA9548A ile çalışmayı basitleştirmek için "Tel" kitaplığını (Arduino IDE'ye önceden yüklenmiş) yükleyin.

Daha kolay kullanım için bir kütüphaneyi tercih ederseniz, Adafruit TCA9548A kütüphane:

Yüklenecek adımlar:

  1. Arduino IDE'yi açın.
  2. Gidip gelmek Eskiz > Kütüphane ekleyin > Kütüphaneleri Yönetin.
  3. "Adafruit TCA9548A" arayın ve tıklayın Düzenlemek.

4. Adım: Kodu yükleyin

Aşağıdaki örnek, belirli bir I2C veri yolunun nasıl seçileceğini ve bir cihazla iletişim kurulacağını gösterir:

Örnek Kodu

#include <Wire.h>

#define TCA9548A_ADDR 0x70 // Default I2C address of TCA9548A

void tcaSelect(uint8_t bus) {
  if (bus > 7) return; // Ensure the bus number is valid
  Wire.beginTransmission(TCA9548A_ADDR);
  Wire.write(1 << bus); // Select the specific bus
  Wire.endTransmission();
}

void setup() {
  Serial.begin(9600);
  Wire.begin();

  Serial.println("TCA9548A Test");

  // Test selecting each channel
  for (uint8_t i = 0; i < 8; i++) {
    tcaSelect(i);
    Serial.print("Channel ");
    Serial.print(i);
    Serial.println(" selected.");
    delay(500);
  }
}

void loop() {
  // Add specific I2C communication here
}

Adım 5: Her kanaldaki cihazlarla iletişim kurma

Belirli bir kanaldaki bir cihazla iletişim kurmak için tcaSelect(bus) I2C iletişimini başlatmadan önce işlev. Örneğin:

Sensörlerden Veri Okumak

#include <Wire.h>

#define TCA9548A_ADDR 0x70

void tcaSelect(uint8_t bus) {
  if (bus > 7) return;
  Wire.beginTransmission(TCA9548A_ADDR);
  Wire.write(1 << bus);
  Wire.endTransmission();
}

void setup() {
  Serial.begin(9600);
  Wire.begin();

  Serial.println("Reading from multiple sensors");
}

void loop() {
  for (uint8_t i = 0; i < 8; i++) {
    tcaSelect(i); // Select channel
    Serial.print("Reading from channel ");
    Serial.println(i);

    Wire.requestFrom(0x40, 1); // Replace 0x40 with the I2C address of your sensor
    if (Wire.available()) {
      int data = Wire.read();
      Serial.print("Data: ");
      Serial.println(data);
    }
    delay(500);
  }
}

TCA9548A uygulamaları

  1. Birden çok özdeş I2C cihazını yönetme (örneğin, aynı adrese sahip çoklu sensörler).
  2. Bir projede I2C cihazlarının genişletilmesi.
  3. Büyük sistemlerde kablo karmaşıklığının azaltılması.

Sorun giderme

  • Cihazlardan yanıt yok: Doğru I2C veri yolunun seçildiğinden emin olun ve kabloları kontrol edin.
  • Adres Çatışmaları: Çatışmaları önlemek için bağlı cihazların I2C adreslerini doğrulayın.
  • Yanlış Otobüs Değiştirme: TCA9548A’nın adresinin doğru yapılandırıldığından ve kodu eşleştirdiğinden emin olun.

Çözüm

TCA9548A I2C Multiplexer'ı Arduino ile başarıyla arayüz ettiniz. Bu güçlü modül, birden fazla I2C aygıtını aynı adresle bağlamanıza ve kontrol etmenizi sağlar ve bu da onu karmaşık projeler için değerli bir araç haline getirir. Tam potansiyelinin kilidini açmak için farklı cihazlar ve konfigürasyonlarla deney yapın!

Yorum bırak

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.