ได้รับส่งมอบฟรีในคําสั่งทั้งหมดมากกว่า 20 ปอนด์!

ใช้ TCA9548A กับ Raspberry Pi

Using the TCA9548A with the Raspberry Pi

ดังกล่าว TCA9548A เป็นมัลติเพล็กเซอร์ I2C ที่ช่วยให้คุณเชื่อมต่ออุปกรณ์หลายตัวที่มีที่อยู่ I2C เดียวกันเข้ากับ Raspberry Pi เครื่องเดียวได้ โดยทำงานด้วยการแยกอุปกรณ์ I2C แต่ละชิ้นออกไปอยู่บนบัสของตนเอง ทำให้ Raspberry Pi สามารถสื่อสารกับพวกมันทีละตัวได้ สิ่งนี้มีประโยชน์อย่างยิ่งสำหรับโปรเจ็กต์ที่ซับซ้อนซึ่งอาจเกิดการชนกันของที่อยู่


สิ่งที่คุณต้องมี

  1. Raspberry Pi (ทุกรุ่นที่รองรับ GPIO เช่น Pi 3, Pi 4)
  2. TCA9548A โมดูลมัลติเพล็กเซอร์ I2C
  3. อุปกรณ์ I2C (เช่น เซ็นเซอร์หรืออุปกรณ์ต่อพ่วง)
  4. เบรดบอร์ดและสายจัมเปอร์
  5. ติดตั้ง Python แล้ว บน Raspberry Pi

ขั้นตอนที่ 1: การเดินสายไฟของ TCA9548A ไปยัง Raspberry Pi

TCA9548A เชื่อมต่อกับ Raspberry Pi โดยใช้โปรโตคอล I2C.

การเชื่อมต่อ

TCA9548A หมุด พิน Raspberry Pi
VIN 3.3V (ขา 1)
GND กราวด์ (ขา 6)
SDA SDA (พิน 3, GPIO2)
SCL SCL (ขา 5, GPIO3)

เชื่อมต่ออุปกรณ์ I2C ของคุณกับ TCA9548Aบัส I2C ที่มีการกำหนดหมายเลขของ (เช่น, SD0/SCL0, SD1/SCL1).


ขั้นตอนที่ 2: เปิดใช้งานอินเทอร์เฟซ I2C

  1. เปิดเครื่องมือกำหนดค่า Raspberry Pi:
    sudo raspi-config
    
  2. ไปที่ ตัวเลือกอินเทอร์เฟซ > I2C และเปิดใช้งานมัน.
  3. รีบูต Raspberry Pi:
    sudo reboot
    

ขั้นตอนที่ 3: ติดตั้งไลบรารีที่จำเป็น

  1. อัปเดตรายการแพ็กเกจของ Raspberry Pi ของคุณ:

    sudo apt update && sudo apt upgrade -y
    
  2. ติดตั้งเครื่องมือ I2C และไลบรารี Python:

    sudo apt install -y i2c-tools python3-pip
    pip3 install adafruit-circuitpython-tca9548a
    
  3. ตรวจสอบให้แน่ใจว่า TCA9548A ถูกตรวจพบบนบัส I2C:

    sudo i2cdetect -y 1
    

    โดยทั่วไปมัลติเพล็กเซอร์จะปรากฏที่ที่อยู่ 0x70.


ขั้นตอนที่ 4: โค้ด Python เพื่อใช้ TCA9548A

นี่คือสคริปต์ Python เพื่อเปิดใช้งานช่อง I2C เฉพาะบน TCA9548A และอ่านข้อมูลจากเซ็นเซอร์ที่เชื่อมต่ออยู่.

ตัวอย่างโค้ด Python

import board
import busio
from adafruit_tca9548a import TCA9548A

# เริ่มต้น I2C และ TCA9548A มัลติเพล็กเซอร์
i2c = busio.I2C(board.SCL, board.SDA)
tca = TCA9548A(i2c)

# เข้าถึงช่อง I2C เฉพาะ (เช่น ช่อง 0)
channel_0 = tca[0]

# ตัวอย่าง: เชื่อมต่อกับอุปกรณ์ I2C บนช่อง 0
import adafruit_bme280  # แทนที่ด้วยไลบรารีของเซนเซอร์ของคุณ
sensor = adafruit_bme280.Adafruit_BME280_I2C(channel_0)

# อ่านข้อมูลจากเซนเซอร์
print(f"อุณหภูมิ: {sensor.temperature:.2f} °C")
print(f"ความชื้น: {sensor.humidity:.2f} %")

คำอธิบาย:

  • tca[0] หมายถึงช่อง I2C แรกบน TCA9548A.
  • แทนที่ไลบรารีเซ็นเซอร์ (เช่น, adafruit_bme280) ด้วยไลบรารีสำหรับเซนเซอร์หรืออุปกรณ์เฉพาะของคุณ.

ขั้นตอนที่ 5: การสลับระหว่างช่องทาง

นั้น TCA9548A ช่วยให้คุณสลับไปมาระหว่างอุปกรณ์ I2C หลายตัวที่เชื่อมต่ออยู่กับช่องต่างๆ ได้ ต่อไปนี้คือตัวอย่างการวนผ่านช่องต่างๆ เพื่ออ่านข้อมูลจากหลายอุปกรณ์:

for i in range(8):  # TCA9548A มี 8 ช่อง (0-7)
    if tca[i].try_lock():
        print(f"กำลังเข้าถึงอุปกรณ์ที่ช่อง {i}")
        tca[i].unlock()

คุณสามารถใช้แนวทางนี้เพื่อจัดการเซ็นเซอร์หรืออุปกรณ์ต่อพ่วงหลายตัวที่เชื่อมต่อกับมัลติเพล็กเซอร์


การประยุกต์ใช้ของ TCA9548A

  1. หลีกเลี่ยงการชนกันของที่อยู่ I2C: ใช้มัลติเพล็กเซอร์เพื่อแยกอุปกรณ์ที่มีที่อยู่ I2C เดียวกัน
  2. การขยายอุปกรณ์ I2C: เชื่อมต่อได้สูงสุด 8 บัส โดยแต่ละบัสรองรับอุปกรณ์ได้หลายตัว
  3. โครงการ IoT: ใช้ TCA9548A ในระบบบ้านอัจฉริยะหรือระบบเฝ้าติดตามสภาพแวดล้อมที่จำเป็นต้องใช้เซ็นเซอร์หลายตัว
  4. หุ่นยนต์เชิงซับซ้อน: จัดการเซ็นเซอร์หรือแอคชูเอเตอร์หลายตัวในโครงการหุ่นยนต์ขั้นสูง.

การแก้ไขปัญหา

  1. ไม่พบอุปกรณ์:

    • ตรวจสอบการเดินสายและตรวจให้แน่ใจว่าพิน SDA/SCL เชื่อมต่ออย่างถูกต้อง
    • ยืนยันว่า TCA9548A ถูกจ่ายไฟและที่อยู่ของมัน (0x70 ตามค่าเริ่มต้น) ปรากฏในการสแกน I2C
  2. ข้อมูลช่องทางไม่ถูกต้อง:

    • ตรวจสอบให้แน่ใจว่าเซ็นเซอร์เชื่อมต่อกับช่องที่ถูกต้อง และใช้ไลบรารีที่เหมาะสมในสคริปต์ Python ของคุณ
  3. ข้อผิดพลาดในการสื่อสาร I2C:

    • ตรวจสอบการเชื่อมต่อที่หลวม หรือที่อยู่ I2C ที่ขัดแย้งกันบนช่องสัญญาณเดียวกัน

บทสรุป

นั้น TCA9548A มัลติเพล็กเซอร์ I2C เป็นเครื่องมืออเนกประสงค์สำหรับขยายความสามารถ I2C ของ Raspberry Pi ของคุณและแก้ปัญหาความขัดแย้งของที่อยู่ โดยทำตามคู่มือนี้ คุณจะสามารถจัดการอุปกรณ์ I2C หลายชิ้นได้อย่างมีประสิทธิภาพในโปรเจ็กต์ที่ซับซ้อน เช่น ระบบตรวจวัดสภาพอากาศ สมาร์ทโฮม และหุ่นยนต์ ลองใช้งานกับอุปกรณ์และช่องสัญญาณที่หลากหลายเพื่อสำรวจความสามารถของเครื่องมือนี้ให้เต็มที่!

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.

แสดงความคิดเห็น