ฉันจะใช้อุปกรณ์ I2C กับ Arduino ได้อย่างไร


12

ฉันมีส่วนประกอบ I2C ที่มีประโยชน์ไม่กี่อย่างเช่นตัวขยายพอร์ตแบบ 16 บิต (MCP23017) ซึ่งฉันต้องการใช้ในโครงการต่าง ๆ

ฉันต้องทำอะไรเพื่อให้สามารถใช้งาน Arduino ได้ มันจะทำงานร่วมกับ Arduino ใด ๆ หรือฉันต้องการบอร์ดหรือแผงป้องกันที่เฉพาะเจาะจงหรือไม่?

คำตอบ:


9

Arduino มีWire Libraryที่สื่อสารกับ I2C

ไลบรารีนี้อนุญาตให้คุณสื่อสารกับอุปกรณ์ I2C / TWI บนบอร์ด Arduino ที่มีเลย์เอาต์ R3 (1.0 พินท์), SDA (สายข้อมูล) และ SCL (สายนาฬิกา) อยู่บนหัวเข็มหมุดใกล้กับขา AREF Arduino Due มีอินเทอร์เฟซ I2C / TWI สองตัว SDA1 และ SCL1 อยู่ใกล้กับขา AREF และอีกอันหนึ่งอยู่บนหมุด 20 และ 21 ตามตารางด้านล่างแสดงตำแหน่งที่ TWI พินตั้งอยู่บนบอร์ด Arduino ต่างๆ

บอร์ด I2C / TWI พิน

  • Uno, อีเธอร์เน็ต A4 (SDA), A5 (SCL)
  • Mega2560 20 (SDA), 21 (SCL)
  • Leonardo 2 (SDA), 3 (SCL)
  • ครบกำหนด 20 (SDA), 21 (SCL), SDA1, SCL1

คุณสามารถใช้เวลาดูที่นี้ตัวอย่าง

ชอบ @TheDoctor กล่าวว่า:

ทั้งสองสายข้อมูล I2C ต้องการตัวต้านทานถึง 3.3V สิ่งนี้จะป้องกันพวกเขาจากการดริฟท์หากปิดการใช้งาน ค่าตัวต้านทานแอนดี้ควรใช้งานได้ แต่ขอแนะนำให้ใช้ระหว่าง 10k ohm และ 47k ohm


1
อย่าลืมตัวต้านทาน pullup บนสาย I2C
TheDoctor

1
ในการขยายตัวสายข้อมูล i2c ทั้งสองต้องการตัวต้านทานถึง 5v สิ่งนี้จะป้องกันพวกเขาจากการดริฟท์หากปิดการใช้งาน ค่าตัวต้านทานของ Andy ควรใช้งานได้ แต่ขอแนะนำให้ใช้ตัวหนึ่งระหว่าง 10k ohm และ 47k ohm
TheDoctor

มันควรจะกล่าวว่าถ้าคุณใช้ 5V pullups บน Arduino เนื่องจาก (ซึ่งมีชื่ออยู่ในคำตอบ) คุณได้สร้างความเสียหายให้กับบอร์ด Arduino Due ใช้ตรรกะ 3.3V และไม่จำเป็นต้องใช้แรงดึง 5V นอกจากนี้บอร์ด SDA และ SCL ก็ถูกดึงขึ้นภายในโดยคณะกรรมการ
จอห์น

3

ไม่จำเป็นต้องมีเกราะป้องกันเพิ่มเติม

คุณจะต้องห้องสมุดลวดและคู่ของสายเพื่อเชื่อมต่ออุปกรณ์กับSDAและSCL

ตำแหน่งของหมุดเหล่านี้เป็นสิ่งที่แตกต่างกันใน Arduinos ต่างๆโปรดดูได้ที่นี่


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.