De TCA9548A is een I2C -multiplexer waarmee u meerdere apparaten kunt aansluiten met hetzelfde I2C -adres met een enkele Raspberry Pi. Het werkt door elk I2C -apparaat in zijn eigen bus te isoleren, waardoor de Raspberry Pi één voor één met hen kan communiceren. Dit is vooral handig in complexe projecten waar adresconflicten kunnen optreden.
Wat u nodig hebt
- Raspberry Pi (Elk model met GPIO -ondersteuning, bijvoorbeeld PI 3, PI 4)
- TCA9548A I2C Multiplexer -module
- I2C -apparaten (bijv. Sensoren of randapparatuur)
- Breadboard en jumper draden
- Python geïnstalleerd Op de Raspberry Pi
Stap 1: De TCA9548A bedraden naar de Raspberry Pi
De TCA9548A maakt verbinding met de Raspberry Pi met behulp van het I2C -protocol.
Verbindingen
TCA9548A PIN | Raspberry Pi Pin |
---|---|
Vin | 3.3V (pin 1) |
GND | Grond (pin 6) |
SDA | SDA (Pin 3, GPIO2) |
SCL | SCL (Pin 5, GPIO3) |
Verbind uw I2C -apparaten met de genummerde I2C -bussen van de TCA9548A (bijv. SD0/SCL0, SD1/SCL1).
Stap 2: Schakel de I2C -interface in
- Open de Raspberry Pi -configuratie -tool:
sudo raspi-config
- Navigeren naar Interface -opties> I2C en schakel het in.
- Start de Raspberry Pi opnieuw op:
sudo reboot
Stap 3: Installeer vereiste bibliotheken
-
Update de pakketlijst van uw Raspberry Pi:
sudo apt update && sudo apt upgrade -y
-
Installeer de I2C -tools en Python -bibliotheken:
sudo apt install -y i2c-tools python3-pip pip3 install adafruit-circuitpython-tca9548a
-
Controleer of de TCA9548A wordt gedetecteerd op de I2C -bus:
sudo i2cdetect -y 1
De multiplexer verschijnt meestal op het adres
0x70
.
Stap 4: Python -code om de TCA9548A te gebruiken
Hier is een Python -script om een specifiek I2C -kanaal op de TCA9548A mogelijk te maken en gegevens van een verbonden sensor te lezen.
Python Code Voorbeeld
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} %")
Uitleg:
-
tca[0]
Verwijst naar het eerste I2C -kanaal op de TCA9548A. - Vervang de sensorbibliotheek (bijv.
adafruit_bme280
) met de bibliotheek voor uw specifieke sensor of apparaat.
Stap 5: Schakelen tussen kanalen
Met de TCA9548A kunt u schakelen tussen meerdere I2C -apparaten die zijn aangesloten op verschillende kanalen. Hier is een voorbeeld van het itereren via kanalen om van meerdere apparaten te lezen:
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()
U kunt deze aanpak gebruiken om meerdere sensoren of randapparatuur te beheren die zijn aangesloten op de multiplexer.
Toepassingen van de TCA9548A
- I2C -adresconflicten vermijden: Gebruik de multiplexer om apparaten te isoleren met hetzelfde I2C -adres.
- I2C -apparaten uitbreiden: Verbind tot 8 bussen, die elk meerdere apparaten ondersteunen.
- IoT -projecten: Gebruik de TCA9548A in smart home of milieubewakingssystemen waar meerdere sensoren vereist zijn.
- Complexe robotica: Beheer meerdere sensoren of actuatoren in geavanceerde robotica -projecten.
Problemen oplossen
-
Apparaat niet gedetecteerd:
- Controleer de bedrading en zorg ervoor dat de SDA/SCL -pinnen correct zijn aangesloten.
- Bevestig dat de TCA9548A wordt aangedreven en zijn adres (
0x70
Standaard) verschijnt in de I2C -scan.
-
Onjuiste kanaalgegevens:
- Zorg ervoor dat de sensor is aangesloten op het juiste kanaal en de juiste bibliotheek wordt gebruikt in uw Python -script.
-
I2C -communicatiefouten:
- Controleer op losse verbindingen of tegenstrijdige I2C -adressen op hetzelfde kanaal.
Conclusie
De TCA9548A I2C -multiplexer is een veelzijdig hulpmiddel voor het uitbreiden van de I2C -mogelijkheden van uw Raspberry PI en het oplossen van adresconflicten. Door deze handleiding te volgen, kunt u meerdere I2C -apparaten efficiënt beheren in complexe projecten zoals weermonitoringsystemen, slimme huizen en robotica. Experimenteer met verschillende apparaten en kanalen om zijn mogelijkheden volledig te verkennen!