Menggunakan TCA9548A dengan Raspberry Pi

Using the TCA9548A with the Raspberry Pi

TCA9548A adalah multiplexer I2C yang memungkinkan Anda untuk menghubungkan beberapa perangkat dengan alamat I2C yang sama ke satu raspberry pi. Ini bekerja dengan mengisolasi setiap perangkat I2C di bus sendiri, memungkinkan Raspberry Pi untuk berkomunikasi dengan mereka satu per satu. Ini sangat berguna dalam proyek -proyek kompleks di mana konflik alamat mungkin terjadi.


Apa yang Anda Butuhkan

  1. Raspberry Pi (Model apa pun dengan dukungan GPIO, mis., Pi 3, pi 4)
  2. Modul multiplexer TCA9548A I2C
  3. Perangkat I2C (mis., Sensor atau periferal)
  4. Papan tempat memotong papan dan kabel jumper
  5. Python terpasang di raspberry pi

Langkah 1: Kabel TCA9548A ke Raspberry Pi

TCA9548A terhubung ke Raspberry Pi menggunakan protokol I2C.

Koneksi

Pin TCA9548A Raspberry Pi Pin
Vin 3.3V (pin 1)
Gnd Ground (pin 6)
SDA SDA (Pin 3, GPIO2)
Scl SCL (pin 5, gpio3)

Hubungkan perangkat I2C Anda ke bus I2C bernomor TCA9548A (mis., SD0/SCL0, SD1/SCL1).


Langkah 2: Aktifkan antarmuka I2C

  1. Buka alat konfigurasi Raspberry Pi:
    sudo raspi-config
    
  2. Navigasikan ke Opsi Antarmuka> I2C dan mengaktifkannya.
  3. Reboot Raspberry Pi:
    sudo reboot
    

Langkah 3: Instal perpustakaan yang diperlukan

  1. Perbarui Daftar Paket Raspberry Pi Anda:

    sudo apt update && sudo apt upgrade -y
    
  2. Instal I2C Tools dan Python Libraries:

    sudo apt install -y i2c-tools python3-pip
    pip3 install adafruit-circuitpython-tca9548a
    
  3. Verifikasi bahwa TCA9548A terdeteksi di bus I2C:

    sudo i2cdetect -y 1
    

    Multiplexer biasanya akan muncul di alamat 0x70.


Langkah 4: Kode Python untuk menggunakan TCA9548A

Berikut adalah skrip Python untuk mengaktifkan saluran I2C tertentu di TCA9548A dan membaca data dari sensor yang terhubung.

Contoh Kode Python

import board
import busio
from adafruit_tca9548a import TCA9548A

# Initialize I2C and TCA9548A multiplexer
i2c = busio.I2C(board.SCL, board.SDA)
tca = TCA9548A(i2c)

# Access a specific I2C channel (e.g., channel 0)
channel_0 = tca[0]

# Example: Interfacing with an I2C device on channel 0
import adafruit_bme280  # Replace with your sensor library
sensor = adafruit_bme280.Adafruit_BME280_I2C(channel_0)

# Read data from the sensor
print(f"Temperature: {sensor.temperature:.2f} °C")
print(f"Humidity: {sensor.humidity:.2f} %")

Penjelasan:

  • tca[0] mengacu pada saluran I2C pertama di TCA9548A.
  • Ganti pustaka sensor (mis., adafruit_bme280) dengan pustaka untuk sensor atau perangkat spesifik Anda.

Langkah 5: Beralih di antara saluran

TCA9548A memungkinkan Anda beralih di antara beberapa perangkat I2C yang terhubung ke saluran yang berbeda. Berikut adalah contoh iterasi melalui saluran untuk dibaca dari beberapa perangkat:

for i in range(8):  # TCA9548A has 8 channels (0-7)
    if tca[i].try_lock():
        print(f"Accessing device on channel {i}")
        tca[i].unlock()

Anda dapat menggunakan pendekatan ini untuk mengelola beberapa sensor atau periferal yang terhubung ke multiplexer.


Aplikasi TCA9548A

  1. Menghindari konflik alamat I2C: Gunakan multiplexer untuk mengisolasi perangkat dengan alamat I2C yang sama.
  2. Memperluas perangkat I2C: Sambungkan hingga 8 bus, masing -masing mendukung beberapa perangkat.
  3. Proyek IoT: Gunakan TCA9548A di rumah pintar atau sistem pemantauan lingkungan di mana beberapa sensor diperlukan.
  4. Robotika kompleks: Mengelola banyak sensor atau aktuator dalam proyek robotika canggih.

Pemecahan masalah

  1. Perangkat tidak terdeteksi:

    • Verifikasi kabel dan pastikan pin SDA/SCL terhubung dengan benar.
    • Konfirmasikan bahwa TCA9548A didukung dan alamatnya (0x70 secara default) muncul di pemindaian I2C.
  2. Data saluran yang salah:

    • Pastikan sensor terhubung ke saluran yang benar dan perpustakaan yang sesuai digunakan dalam skrip Python Anda.
  3. Kesalahan Komunikasi I2C:

    • Periksa koneksi longgar atau alamat I2C yang bertentangan di saluran yang sama.

Kesimpulan

Multiplexer I2C TCA9548A adalah alat serba guna untuk memperluas kemampuan I2C Raspberry Pi Anda dan menyelesaikan konflik alamat. Dengan mengikuti panduan ini, Anda dapat mengelola beberapa perangkat I2C secara efisien dalam proyek -proyek kompleks seperti sistem pemantauan cuaca, rumah pintar, dan robotika. Bereksperimenlah dengan perangkat dan saluran yang berbeda untuk sepenuhnya mengeksplorasi kemampuannya!

Tinggalkan komentar

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.