ฉันจะใช้อุปกรณ์ 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.