สารบัญ:
- ขั้นตอนที่ 1: คำสั่งเชลล์บางส่วน
- ขั้นตอนที่ 2: กรณีที่หนึ่ง: อุปกรณ์ I2c มีที่อยู่เหมือนกัน
- ขั้นตอนที่ 3: กรณีที่ 2: ที่อยู่ I2c ต่างกัน
วีดีโอ: Raspberry PI หลายอุปกรณ์ I2C: 3 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:05
ผิดหวังเพราะคุณไม่สามารถใช้อุปกรณ์ I2C เดียวกันหลายเครื่องในโครงการของคุณ ไม่จำเป็นต้องใช้มัลติเพล็กเซอร์ที่ช้า เคอร์เนล raspbian ล่าสุดรองรับการสร้างบัส I2C หลายตัวโดยใช้พิน GPIO วิธีแก้ปัญหานี้เร็วมาก
ขั้นตอนที่ 1: คำสั่งเชลล์บางส่วน
เชื่อมต่อหนึ่งในอุปกรณ์ i2c ของคุณในขณะที่ raspberry pi ของคุณเริ่มต้น raspberry pi ของคุณและเรียกใช้
sudo i2cdetect -y 1
คุณจะเห็นตารางดังรูปแนบ ฉันได้แนบเซ็นเซอร์อุณหภูมิและความดันบรรยากาศ BMP280 แล้ว ที่อยู่ i2c คือ 0x76 ตามตาราง หมายเหตุที่อยู่นี้
ทำเช่นนี้กับอุปกรณ์ i2c ทั้งหมดของคุณ
ขั้นตอนที่ 2: กรณีที่หนึ่ง: อุปกรณ์ I2c มีที่อยู่เหมือนกัน
นี่เป็นกรณีที่มีปัญหาเสมอ บัส i2c สามารถรองรับอุปกรณ์ได้หลายเครื่อง แต่ควรมีที่อยู่ i2c ที่แตกต่างกัน อุปกรณ์ i2c บางตัวมีจัมเปอร์สำหรับตั้งค่าที่อยู่ i2c อื่นๆ แต่ส่วนมากจะไม่มี ในกรณีนี้ คุณอาจใช้มัลติเพล็กเซอร์ i2c (ฮาร์ดแวร์) เพื่อหมุน i2c SDA (ข้อมูล) และ SCL (นาฬิกา) หรือคุณสามารถสร้างบัส i2c เพิ่มเติมได้
ฉันจะสร้างบัส aditional สองตัว nl bus 3 และ 4
เปิด cli แล้วรัน
cd /boot
sudo nano config.txt
เพิ่มบรรทัดของโค้ดต่อไปนี้ ควรใช้ในส่วนที่เปิดใช้งาน spi และ i2c
dtoverlay=i2c-gpio, บัส=4, i2c_gpio_delay_us=1, i2c_gpio_sda=23, i2c_gpio_scl=24
บรรทัดนี้จะสร้างบัส i2c เพิ่มเติม (บัส 4) บน GPIO 23 เป็น SDA และ GPIO 24 เป็น SCL (GPIO 23 และ 24 เป็นค่าเริ่มต้น)
เพิ่มบรรทัดต่อไปนี้เพื่อสร้าง i2c bus 3
dtoverlay=i2c-gpio, บัส=3, i2c_gpio_delay_us=1, i2c_gpio_sda=17, i2c_gpio_scl=27
GPIO 17 จะเป็น SDA และ GPIO 27 จะเป็น SCL สำหรับบัส i2c 4
Tipe ควบคุม X เพื่อออก
หมายเหตุเกี่ยวกับหมายเลขและลำดับรถประจำทาง:
ห้ามใช้รถบัส 0 และ 2 ใช้สำหรับสิ่งอื่น ๆ ในบอร์ดเช่น eprom บนหมวก ฯลฯ
สำหรับการเปิดตัว Raspbian ในเดือนเมษายน 2019:
คุณควรเริ่มต้นด้วยบัสสูงสุด (บัส 4 ในกรณีนี้) ใน config.txt ของคุณและทำงานผ่านบัสที่ต่ำที่สุด (บัส 3)
รถบัสที่ต่ำที่สุดต้องเป็นรถบัส 3. เสมอ
หากคุณต้องการรถบัสเสริม 5 คัน รถบัสต้องแบ่งเป็น 7, 6, 5, 4, 3
ปัญหานี้เกี่ยวกับการสั่งซื้อรถบัสไม่ได้อยู่ที่นั่นเมื่อเริ่มเขียนคำแนะนำนี้ ดูเหมือนว่ามีการเปลี่ยนแปลงเคอร์เนล
ปิด PI ของคุณ เปลี่ยนมัน เชื่อมต่ออุปกรณ์ i2c ของคุณกับบัส 4 (SDA เป็น GPIO 23 และ SCL เป็น GPIO 24) และอีกเครื่องหนึ่งไปยัง i2c bus 3 (SDA เป็น GPIO 17 และ SCL เป็น GPIO 27)
เปิด pi
วิ่ง:
sudo i2cdetect -l (ตัวพิมพ์เล็ก L)
ตอนนี้คุณจะเห็นว่ามีบัส i2c 3 และ 4 อยู่ในรายการด้วย ยังเรียกใช้:
sudo i2cdetect -y 3
sudo i2cdetect -y 4
ตอนนี้คุณสามารถใช้เซ็นเซอร์ในภาษาการเขียนโปรแกรมของคุณ อย่าลืมระบุบัส i2c ที่ถูกต้อง
เอกสารแนบเป็นตัวอย่างสำหรับเซ็นเซอร์อุณหภูมิและความดัน BMP280 ยอดนิยม ไม่มีมัลติเพล็กเซอร์ใดที่สามารถอ่าน BMP280 2 อันได้เร็วขนาดนี้
ตัวอย่างของเซนเซอร์ Sensirion SDP 810 2 ตัวก็แนบมาด้วย ทำงานได้เร็วกว่ามัลติเพล็กเซอร์ที่ฉันเคยใช้ในอดีตอีกครั้ง
ฉันสร้างรหัสหลามเพื่ออ่าน BMP388 ใหม่สองรายการจาก adafruit
ฉันอาจเพิ่มเซ็นเซอร์อื่น ๆ ในอนาคตที่
ขั้นตอนที่ 3: กรณีที่ 2: ที่อยู่ I2c ต่างกัน
เรียบง่าย. i2c เป็นรถบัส วัตถุประสงค์ของรถบัสคือการสื่อสารกับอุปกรณ์หลายเครื่อง เชื่อมต่ออุปกรณ์ขนานกับบัส i2c เดียวกัน คุณสามารถใช้รถบัสหนึ่ง
วิ่ง:
sudo i2cdetect -y 1
คุณจะเห็นรายการอุปกรณ์
แนะนำ:
สถิติ Covid-19 + Raspberry Pi + I2C LCD: 6 ขั้นตอน
สถิติ Covid-19 + Raspberry Pi + I2C LCD: วันหนึ่งฉันตัดสินใจหยิบชิ้นส่วนที่ฉันโกหกมาและทำบางอย่างที่จะส่งสถิติแบบเรียลไทม์เกี่ยวกับ Covid-19 ให้ฉัน ฉันไม่ได้ใช้เวลามากในการทำให้ดูดีเพราะเหตุใดจึงทำสิ่งที่ถาวรเมื่อ
Raspberry Pi - HIH6130 I2C Humidity & Temperature Sensor Python Tutorial: 4 ขั้นตอน
Raspberry Pi - HIH6130 I2C Humidity & Temperature Sensor Python Tutorial: HIH6130 เป็นเซ็นเซอร์ความชื้นและอุณหภูมิพร้อมเอาต์พุตดิจิตอล เซ็นเซอร์เหล่านี้ให้ระดับความแม่นยำ ±4% RH ด้วยความเสถียรในระยะยาวระดับแนวหน้าของอุตสาหกรรม I2C ดิจิทัลที่ชดเชยอุณหภูมิอย่างแท้จริง ความน่าเชื่อถือระดับแนวหน้าของอุตสาหกรรม ประสิทธิภาพการใช้พลังงาน
จอ LCD I2C / IIC - ใช้ SPI LCD กับจอแสดงผล LCD I2C โดยใช้โมดูล SPI เป็น IIC กับ Arduino: 5 ขั้นตอน
จอ LCD I2C / IIC | ใช้ SPI LCD กับจอแสดงผล LCD I2C โดยใช้โมดูล SPI เป็น IIC กับ Arduino: สวัสดีทุกคน เนื่องจาก SPI LCD 1602 ปกติมีสายเชื่อมต่อมากเกินไป ดังนั้นจึงยากมากที่จะเชื่อมต่อกับ Arduino แต่มีโมดูลเดียวในตลาดที่สามารถทำได้ แปลงจอแสดงผล SPI เป็นจอแสดงผล IIC ดังนั้นคุณต้องเชื่อมต่อเพียง 4 สายเท่านั้น
จอ LCD I2C / IIC - แปลง SPI LCD เป็นจอแสดงผล LCD I2C: 5 ขั้นตอน
จอ LCD I2C / IIC | แปลง SPI LCD เป็น I2C LCD Display: การใช้จอแสดงผล spi lcd จำเป็นต้องมีการเชื่อมต่อมากเกินไป ซึ่งทำได้ยากมาก ดังนั้นฉันจึงพบโมดูลที่สามารถแปลง i2c lcd เป็น spi lcd ได้ ดังนั้นมาเริ่มกันเลย
ตัวอักษร LCD I2c Adapter (ตัวอย่างการเชื่อมต่อ I2c): 12 ขั้นตอน (พร้อมรูปภาพ)
อะแดปเตอร์ LCD I2c ของตัวละคร (ตัวอย่างการเชื่อมต่อ I2c): ฉันกำลังสร้างสคีมาการเชื่อมต่อสำหรับอะแดปเตอร์แสดงอักขระ i2c ตรวจสอบการอัปเดตในไซต์ของฉัน ตอนนี้ฉันเพิ่ม olso สคีมาการเชื่อมต่อสายไฟเพื่อใช้ไลบรารีดั้งเดิมไม่ใช่ส้อมของฉัน ไลบรารี LiquidCrystal Arduino สำหรับจอ LCD แบบตัวอักษร โปรเจ็กต์แบบแยก