ฉันจะพูดคุยกับเซ็นเซอร์ดิจิทัลผ่านอินเทอร์เฟซI²Cได้อย่างไร
ฮาร์ดแวร์:
พินใดบน GPIO ของ Raspberry Pi ฉันสามารถใช้ได้
ซอฟต์แวร์:
มีห้องสมุดI²Cใดบ้าง
ฉันจะพูดคุยกับเซ็นเซอร์ดิจิทัลผ่านอินเทอร์เฟซI²Cได้อย่างไร
ฮาร์ดแวร์:
พินใดบน GPIO ของ Raspberry Pi ฉันสามารถใช้ได้
ซอฟต์แวร์:
มีห้องสมุดI²Cใดบ้าง
คำตอบ:
มีข้อมูลมากมายเกี่ยวกับ RPIO ของ GPIO ที่นี่: http://elinux.org/Rpi_Low-level_peripherals
คุณสามารถตั้งโปรแกรมพิน GPIO สำหรับI²Cได้ แต่:
ตั้งล่วงหน้า Pin 3 (SDA0) และ Pin 5 (SCL0) เป็นอินเตอร์เฟสI²C ดังนั้นจึงมีตัวต้านทาน 1.8 กิโลห์ห์มขึ้นมาบนบอร์ดสำหรับหมุดเหล่านี้
หน้าวิกินั้นมีตัวอย่างรหัส GPIO ระดับต่ำสำหรับภาษาต่างๆที่ควรเริ่มใช้งาน หากคุณต้องการทบทวนสิ่งที่I²Cเป็นจริงนี่คือสิ่งที่ต้องคำนึงถึง RPi ด้วย
สำหรับการควบคุมI²Cที่เฉพาะเจาะจงห้องสมุดไพ ธ อนนี้อาจมีประโยชน์ซึ่งจะกล่าวถึงในโพสต์บล็อกนี้ซึ่งรวมถึงตัวอย่างโค้ด
มีการพูดคุยกันมากมายเกี่ยวกับเรื่องนี้ นี่คือสิ่งที่ฉันอ่านและล้อเล่นกับฉัน:
/etc/modprobe.d/raspi-blacklist.conf
และแสดงความคิดเห็นในรายการสำหรับi2c-bcm2708
; จากนั้นแก้ไข/etc/modules
และต่อท้ายi2c-dev
; จากนั้นรีบูต ตอนนี้คุณควรมี/dev/i2c-0
ไฟล์พิเศษซึ่งใช้งานง่ายมาก
นี่คือตัวอย่างบางส่วนที่ฉันทำ
ฮาร์ดแวร์:
ตามที่ระบุไว้โดย Tapio ฮาร์ดแวร์มีเอกสารอย่างดีที่http://elinux.org/Rpi_Low-level_peripherals
ซอฟต์แวร์:
มีส่วนหัว i2c-dev ใน Linux userspace ( #include <linux/i2c-dev.h>
) ยิ่งกว่านั้นคุณต้องมีตัวละครที่เหมาะสมเพื่ออ่าน สามารถทำได้โดยการโหลดโมดูลที่ถูกต้อง i2c_bcm2708
สำหรับไดรเวอร์ระดับต่ำและi2c-dev
สำหรับการสร้างตัวละครที่เหมาะสมสำหรับรถบัส ใช้ ...
sudo modprobe -r i2c_bcm2708
sudo modprobe i2c_bcm2708 baudrate=<your preferred baudrate>
สำหรับการโหลดได้ทันที ใช้ ...
sudo sh -c 'echo "i2c-dev" >> /etc/modules'
sudo sh -c 'echo "options i2c_bcm2708 baudrate=<your preferred baudrate>\n" > /etc/modprobe.d/custom.conf
และ unblacklist i2c_bcm2708
ใน/etc/modprobe.d/raspi-blacklist.conf
การให้/dev/i2c-0
และการ/dev/i2c-1
แสดงอย่างถาวร
จากนี้ไปคุณสามารถทำตามคำแนะนำในการใช้I²C del maestro ได้
ฉันชอบวิธีนี้มากกว่าคนอื่น ๆ เพราะมันเป็น platformagnostic คุณสามารถใช้linux/i2c-dev.h
กับอุปกรณ์อื่น ๆ ได้เช่นกันตราบใดที่มีไดรเวอร์I²Cระดับต่ำอยู่
ความนับถือ