Ang TCA9548A ay isang I2C multiplexer na nagbibigay -daan sa iyo upang ikonekta ang maraming mga aparato na may parehong I2C address sa isang solong Raspberry Pi. Gumagana ito sa pamamagitan ng paghiwalayin ang bawat aparato ng I2C sa sarili nitong bus, na nagbibigay -daan sa Raspberry Pi na makipag -usap sa kanila nang paisa -isa. Ito ay lalong kapaki -pakinabang sa mga kumplikadong proyekto kung saan maaaring mangyari ang mga salungatan sa address.
Ano ang kakailanganin mo
- Raspberry Pi (Anumang modelo na may suporta sa GPIO, hal., PI 3, PI 4)
- TCA9548A I2C Multiplexer Module
- Mga aparato ng I2C (hal., Sensor o Peripheral)
- Mga wire ng tinapay at jumper
- Naka -install ang Python Sa Raspberry Pi
Hakbang 1: Ang mga kable ng TCA9548A sa Raspberry Pi
Ang TCA9548A ay kumokonekta sa Raspberry PI gamit ang protocol ng I2C.
Mga koneksyon
TCA9548A PIN | Raspberry Pi Pin |
---|---|
Vin | 3.3v (pin 1) |
Gnd | Ground (pin 6) |
SDA | SDA (PIN 3, GPIO2) |
SCL | SCL (Pin 5, GPIO3) |
Ikonekta ang iyong mga aparato ng I2C sa bilang ng mga bus na TCA9548A (hal. SD0/SCL0, SD1/SCL1).
Hakbang 2: Paganahin ang interface ng I2C
- Buksan ang tool ng pagsasaayos ng Raspberry Pi:
sudo raspi-config
- Mag -navigate sa Mga pagpipilian sa interface> i2c at paganahin ito.
- I -reboot ang Raspberry Pi:
sudo reboot
Hakbang 3: I -install ang mga kinakailangang aklatan
-
I -update ang listahan ng package ng Raspberry Pi:
sudo apt update && sudo apt upgrade -y
-
I -install ang I2C Tools at Python Libraries:
sudo apt install -y i2c-tools python3-pip pip3 install adafruit-circuitpython-tca9548a
-
Patunayan na ang TCA9548A ay napansin sa bus ng I2C:
sudo i2cdetect -y 1
Ang multiplexer ay karaniwang lalabas sa address
0x70
.
Hakbang 4: Python code upang magamit ang TCA9548A
Narito ang isang script ng Python upang paganahin ang isang tukoy na channel ng I2C sa TCA9548A at basahin ang data mula sa isang konektadong sensor.
Halimbawa ng Python Code
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} %")
Paliwanag:
-
tca[0]
Tumutukoy sa unang I2C channel sa TCA9548A. - Palitan ang sensor library (hal.
adafruit_bme280
) kasama ang library para sa iyong tukoy na sensor o aparato.
Hakbang 5: Ang paglipat sa pagitan ng mga channel
Pinapayagan ka ng TCA9548A na lumipat sa pagitan ng maraming mga aparato ng I2C na konektado sa iba't ibang mga channel. Narito ang isang halimbawa ng pag -iwas sa pamamagitan ng mga channel na basahin mula sa maraming mga aparato:
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()
Maaari mong gamitin ang pamamaraang ito upang pamahalaan ang maraming mga sensor o peripheral na konektado sa multiplexer.
Mga aplikasyon ng TCA9548A
- Pag -iwas sa mga salungatan sa address ng I2C: Gumamit ng multiplexer upang ibukod ang mga aparato na may parehong address ng I2C.
- Pagpapalawak ng mga aparato ng I2C: Kumonekta hanggang sa 8 mga bus, bawat isa ay sumusuporta sa maraming mga aparato.
- Mga proyekto ng IoT: Gumamit ng TCA9548A sa Smart Home o Environmental Monitoring Systems kung saan kinakailangan ang maraming sensor.
- Kumplikadong mga robotics: Pamahalaan ang maraming mga sensor o actuators sa mga advanced na proyekto ng robotics.
Pag -aayos
-
Hindi nakita ang aparato:
- Patunayan ang mga kable at tiyakin na ang mga SDA/SCL pin ay maayos na konektado.
- Kumpirmahin na ang TCA9548A ay pinapagana at ang address nito (
0x70
Bilang default) ay lilitaw sa i2c scan.
-
Maling data ng channel:
- Siguraduhin na ang sensor ay konektado sa tamang channel at ang naaangkop na aklatan ay ginagamit sa iyong script ng Python.
-
Mga error sa komunikasyon ng I2C:
- Suriin para sa mga maluwag na koneksyon o magkasalungat na mga address ng I2C sa parehong channel.
Konklusyon
Ang TCA9548A I2C Multiplexer ay isang maraming nalalaman tool para sa pagpapalawak ng mga kakayahan ng I2C ng Raspberry PI at paglutas ng mga salungatan sa address. Sa pamamagitan ng pagsunod sa gabay na ito, maaari mong mahusay na pamahalaan ang maraming mga aparato ng I2C sa mga kumplikadong proyekto tulad ng mga sistema ng pagsubaybay sa panahon, matalinong mga tahanan, at mga robotics. Eksperimento sa iba't ibang mga aparato at mga channel upang ganap na galugarin ang mga kakayahan nito!