TCA9548A on I2C -multiplekseri, jonka avulla voit yhdistää useita laitteita, joilla on sama I2C -osoite yhdeksi vadelmapille. Se toimii eristämällä jokainen I2C -laite omasta väylästään, jolloin Raspberry Pi voi kommunikoida niiden kanssa yksi kerrallaan. Tämä on erityisen hyödyllistä monimutkaisissa hankkeissa, joissa voi tapahtua konflikteja.
Mitä tarvitset
- Raspberry Pi (Mikä tahansa malli, jolla on GPIO -tuki, esim. Pi 3, pi 4)
- TCA9548A I2C -multiplekserimoduuli
- I2C -laitteet (esim. Anturit tai oheislaitteet)
- Leipälevy- ja hyppyjohdot
- Python asennettu Raspberry Pi
Vaihe 1: TCA9548A: n johdotus Raspberry PI: hen
TCA9548A yhdistyy Raspberry PI: hen I2C -protokollan avulla.
Yhteydet
TCA9548A -nasta | Raspberry Pi -tappi |
---|---|
Virallinen | 3,3 V (nasta 1) |
Hölynpöly | Maa (nasta 6) |
SDA | SDA (PIN 3, GPIO2) |
SCL | SCL (nasta 5, GPIO3) |
Kytke I2C -laitteesi TCA9548A: n numeroituihin I2C -linja -autoihin (esim. SD0/SCL0, SD1/SCL1).
Vaihe 2: Ota I2C -käyttöliittymä käyttöön
- Avaa Raspberry Pi -määritystyökalu:
sudo raspi-config
- Siirtyä jhk Käyttöliittymävaihtoehdot> I2C ja ota se käyttöön.
- Käynnistä Raspberry Pi uudelleen:
sudo reboot
Vaihe 3: Asenna vaadittavat kirjastot
-
Päivitä Raspberry Pi: n pakettiluettelo:
sudo apt update && sudo apt upgrade -y
-
Asenna I2C -työkalut ja Python -kirjastot:
sudo apt install -y i2c-tools python3-pip pip3 install adafruit-circuitpython-tca9548a
-
Varmista, että TCA9548A havaitaan I2C -väylässä:
sudo i2cdetect -y 1
Multiplekseri näkyy yleensä osoitteessa
0x70
.
Vaihe 4: Python -koodi käyttää TCA9548A: ta
Tässä on Python -komentosarja, jonka avulla tietyn I2C -kanavan mahdollistaisi TCA9548A: lla ja lukea tietoja kytketystä anturista.
Python -koodiesimerkki
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} %")
Selitys:
-
tca[0]
Viittaa TCA9548A: n ensimmäiseen I2C -kanavaan. - Vaihda anturikirjasto (esim.
adafruit_bme280
) tietyn anturin tai laitteen kirjaston kanssa.
Vaihe 5: Kanavien välinen vaihtaminen
TCA9548A: n avulla voit vaihtaa useiden I2C -laitteiden välillä, jotka on kytketty eri kanaviin. Tässä on esimerkki kanavien iteraatiosta lukemista useista laitteista:
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()
Voit käyttää tätä lähestymistapaa hallitaksesi useita antureita tai oheislaitteita, jotka on kytketty multiplekseriin.
TCA9548A: n sovellukset
- I2C: n välttäminen koskee konflikteja: Käytä multiplekseriä eristämään laitteita, joilla on sama I2C -osoite.
- I2C -laitteiden laajentaminen: Yhdistä jopa 8 linja -autoa, jokainen tukee useita laitteita.
- Internet -projektit: Käytä TCA9548A: ta älykkäissä kodissa tai ympäristön seurantajärjestelmissä, joissa vaaditaan useita antureita.
- Monimutkainen robotti: Hallitse useita antureita tai toimilaitteita edistyneissä robotiikkaprojekteissa.
Vianetsintä
-
Laitetta ei havaittu:
- Varmista johdotus ja varmista, että SDA/SCL -nastat on kytketty oikein.
- Varmista, että TCA9548A on virtalähde ja sen osoite (
0x70
Oletuksena) ilmestyy I2C -skannaukseen.
-
Virheelliset kanavatiedot:
- Varmista, että anturi on kytketty oikeaan kanavaan ja sopivaa kirjastoa käytetään Python -komentosarjassa.
-
I2C -viestintävirheet:
- Tarkista löysät yhteydet tai ristiriitaiset I2C -osoitteet samalla kanavalla.
Johtopäätös
TCA9548A I2C -multiplekseri on monipuolinen työkalu Vadelma PI: n I2C -ominaisuuksien laajentamiseen ja osoitettujen konfliktien ratkaisemiseen. Tämän oppaan seuraamalla voit hallita tehokkaasti useita I2C -laitteita monimutkaisissa projekteissa, kuten säävalvontajärjestelmät, älykkäät kodit ja robotiikat. Kokeile erilaisia laitteita ja kanavia sen ominaisuuksien tutkimiseksi täysin!