TCA9548A este un multiplexor I2C care vă permite să conectați mai multe dispozitive cu aceeași adresă I2C la un singur Raspberry PI. Funcționează prin izolarea fiecărui dispozitiv I2C pe propriul său autobuz, permițând Raspberry Pi să comunice cu ei unul câteodată. Acest lucru este util în special în proiectele complexe în care s -ar putea produce conflicte de adrese.
Ce vei avea nevoie
- Zmeură pi (Orice model cu suport GPIO, de exemplu, PI 3, PI 4)
- Modul multiplexor TCA9548A I2C
- Dispozitive I2C (de exemplu, senzori sau periferici)
- Tablă de pâine și jumper
- Python instalat pe zmeură pi
Pasul 1: Cablarea TCA9548A către Raspberry Pi
TCA9548A se conectează la Raspberry Pi folosind protocolul I2C.
Conexiuni
TCA9548A PIN | Pinul de zmeură pi |
---|---|
Vin | 3.3V (pinul 1) |
GND | Sol (pinul 6) |
SDA | SDA (pinul 3, GPIO2) |
SCL | SCL (PIN 5, GPIO3) |
Conectați -vă dispozitivele I2C la autobuzele I2C numerotate TCA9548A (de exemplu, de exemplu, SD0/SCL0, SD1/SCL1).
Pasul 2: Activați interfața I2C
- Deschideți instrumentul de configurare Raspberry PI:
sudo raspi-config
- Navigați la Opțiuni de interfață> I2C și activează -l.
- Reporniți zmeura PI:
sudo reboot
Pasul 3: Instalați bibliotecile necesare
-
Actualizați -vă lista de pachete Raspberry Pi:
sudo apt update && sudo apt upgrade -y
-
Instalați instrumentele I2C și bibliotecile Python:
sudo apt install -y i2c-tools python3-pip pip3 install adafruit-circuitpython-tca9548a
-
Verificați dacă TCA9548A este detectat în autobuzul I2C:
sudo i2cdetect -y 1
Multiplexorul va apărea de obicei la adresa
0x70
.
Pasul 4: Codul Python pentru a utiliza TCA9548A
Iată un script Python care să permită un canal I2C specific pe TCA9548A și să citească date de la un senzor conectat.
Exemplu de cod 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} %")
Explicaţie:
-
tca[0]
Se referă la primul canal I2C de pe TCA9548A. - Înlocuiți biblioteca senzorilor (de exemplu,
adafruit_bme280
) cu biblioteca pentru senzorul sau dispozitivul dvs. specific.
Pasul 5: Comutarea între canale
TCA9548A vă permite să comutați între mai multe dispozitive I2C conectate la diferite canale. Iată un exemplu de iterare prin canale pentru a citi de pe mai multe dispozitive:
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()
Puteți utiliza această abordare pentru a gestiona mai mulți senzori sau periferice conectate la multiplexor.
Aplicațiile TCA9548A
- Evitarea conflictelor de adresă I2C: Utilizați multiplexorul pentru a izola dispozitivele cu aceeași adresă I2C.
- Extinderea dispozitivelor I2C: Conectați -vă până la 8 autobuze, fiecare suportând mai multe dispozitive.
- Proiecte IoT: Utilizați TCA9548A în sistemele inteligente de monitorizare a casei sau a mediului, unde sunt necesari mai mulți senzori.
- Robotică complexă: Gestionați mai mulți senzori sau actuatori în proiecte de robotică avansată.
Depanare
-
Dispozitivul care nu este detectat:
- Verificați cablarea și asigurați -vă că pinii SDA/SCL sunt conectate corespunzător.
- Confirmați că TCA9548A este alimentat și adresa sa (
0x70
În mod implicit) apare în scanarea I2C.
-
Date incorecte ale canalului:
- Asigurați -vă că senzorul este conectat la canalul corect și biblioteca corespunzătoare este utilizată în scriptul dvs. Python.
-
Erori de comunicare I2C:
- Verificați conexiuni libere sau adrese I2C conflictuale pe același canal.
Concluzie
Multiplexorul TCA9548A I2C este un instrument versatil pentru extinderea capacităților I2C ale Raspberry PI și pentru rezolvarea conflictelor de adrese. Urmărind acest ghid, puteți gestiona eficient mai multe dispozitive I2C în proiecte complexe precum sisteme de monitorizare a vremii, case inteligente și robotică. Experimentați cu diferite dispozitive și canale pentru a -și explora pe deplin capacitățile!