A TCA9548A egy I2C multiplexer, amely lehetővé teszi, hogy több azonos I2C-címmel rendelkező eszközt csatlakoztasson egyetlen Raspberry Pi-hez. Úgy működik, hogy minden egyes I2C-eszközt elszigetel a saját buszán, így a Raspberry Pi egyszerre csak eggyel kommunikál közülük. Ez különösen hasznos olyan összetett projektekben, ahol címütközések fordulhatnak elő.
Amire szükséged lesz
- Raspberry Pi
- TCA9548A I2C multiplexer modul
- I2C-eszközök (pl. érzékelők vagy perifériák)
- Próbapanel és összekötő vezetékek
- Python telepítve a Raspberry Pi-on
1. lépés: A huzalozás TCA9548A a Raspberry Pi-hez
A TCA9548A az I2C protokoll használatával csatlakozik a Raspberry Pi-hez.
Kapcsolatok
| TCA9548A Pin | Raspberry Pi tűs csatlakozó sáv (Pin) |
|---|---|
| VIN | 3,3 V (1. tű) |
| GND | Földelés (6. érintkező) |
| SDA | SDA (Pin 3, GPIO2) |
| SCL | SCL (5. tű, GPIO3) |
TCA9548A SD0/SCL0, SD1/SCL1).
2. lépés: Az I2C interfész engedélyezése
- Nyissa meg a Raspberry Pi konfigurációs eszközt:
sudo raspi-config - Navigáljon ide: Interfész beállítások > I2C
- A Raspberry Pi újraindítása:
sudo reboot
3. lépés: A szükséges könyvtárak telepítése
-
Update your Raspberry Pi’s package list:
sudo apt update && sudo apt upgrade -y -
Telepítse az I2C eszközöket és a Python könyvtárakat:
sudo apt install -y i2c-tools python3-pip pip3 install adafruit-circuitpython-tca9548a -
Ellenőrizze, hogy a TCA9548A észlelhető az I2C buszon:
sudo i2cdetect -y 1A multiplexer általában a következő címen jelenik meg:
0x70.
4. lépés: Python-kód a használathoz TCA9548A
Itt van egy Python-szkript egy adott I2C-csatorna engedélyezéséhez a TCA9548A
Python kódpélda
python
import board
import busio
from adafruit_tca9548a import TCA9548A
TCA9548A multiplexer
python
i2c = busio.I2C(board.SCL, board.SDA)
tca = TCA9548Apython
(i2c)
# Hozzáférés egy adott I2C csatornához (pl. 0. csatorna)
channel_0 = tca[0]
# Példa: Kapcsolódás egy I2C eszközhöz a 0. csatornán
import adafruit_bme280 # Cserélje ki a saját szenzora könyvtárára
sensor = adafruit_bme280.Adafruit_BME280_I2C(channel_0)
# Adatok kiolvasása a szenzorból
print(f"Hőmérséklet: {sensor.temperature:.2f} °C")
print(f"Páratartalom: {sensor.humidity:.2f} %")
Magyarázat:
-
tca[0]az első I2C csatornára utal a(z) TCA9548A. - Cserélje ki a szenzorkönyvtárat (pl.
adafruit_bme280) with the library for your specific sensor or device.
5. lépés: Váltás a csatornák között
A TCA9548A lehetővé teszi a váltást a különböző csatornákhoz csatlakoztatott több I2C-eszköz között. Íme egy példa a csatornák végigjárására a több eszközről történő olvasáshoz:
python
for i in range(8): # TCA9548A python
8 csatornával rendelkezik (0-7)
if tca[i].try_lock():
print(f"Eszköz elérése a(z) {i}. csatornán")
tca[i].unlock()
Ezt a megközelítést több, a multiplexerhez csatlakoztatott szenzor vagy periféria kezelésére is használhatja.
Alkalmazásai a TCA9548A
- I2C-címütközések elkerülése: Use the multiplexer to isolate devices with the same I2C address.
- I2C eszközök bővítése: Connect up to 8 buses, each supporting multiple devices.
- IoT projektek TCA9548A
- Komplex robotika: Manage multiple sensors or actuators in advanced robotics projects.
Hibaelhárítás
-
Eszköz nem észlelhető:
- Ellenőrizze a kábelezést, és győződjön meg arról, hogy az SDA/SCL pinek megfelelően vannak csatlakoztatva.
- Erősítse meg, hogy a TCA9548A be van kapcsolva, és a címe (
0x70Alapértelmezés szerint) megjelenik az I2C-keresésben.
-
Helytelen csatornaadatok:
- Make sure the sensor is connected to the correct channel and the appropriate library is used in your Python script.
-
I2C kommunikációs hibák:
- Ellenőrizze, hogy nincsenek-e laza csatlakozások vagy ütköző I2C-címek ugyanazon a csatornán.
Összegzés
A TCA9548A I2C multiplexer egy sokoldalú eszköz a Raspberry Pi I2C képességeinek bővítésére és a címütközések feloldására. Ezt az útmutatót követve hatékonyan kezelhet több I2C-eszközt olyan összetett projektekben, mint az időjárás-megfigyelő rendszerek, az okosotthonok és a robotika. Kísérletezzen különböző eszközökkel és csatornákkal, hogy teljes mértékben felfedezhesse a benne rejlő lehetőségeket!



