Як я можу використовувати пристрої I2C з Arduino?


12

У мене є кілька корисних компонентів I2C, таких як 16-розрядний розширювач портів (MCP23017), який я хотів би використовувати в різних проектах.

Що мені потрібно зробити, щоб зробити ці роботи з Arduino? Чи буде це працювати з будь-яким Arduino, чи мені потрібна певна дошка чи щит?

Відповіді:


9

У Arduino є бібліотека дротів, яка спілкується з I2C.

Ця бібліотека дозволяє спілкуватися з пристроями I2C / TWI. На платах Arduino з макетом R3 (1,0 розвідка), SDA (лінія даних) та SCL (тактова лінія) знаходяться на заголовках штирів, близьких до штифта AREF. У Arduino Due є два інтерфейси I2C / TWI SDA1 і SCL1 поруч зі штифтом AREF, а додатковий - на штифтах 20 і 21. Як орієнтовна таблиця нижче показано, де TWI шпильки розташовані на різних платах Arduino.

Дошка I2C / TWI шпильки

  • Uno, Ethernet A4 (SDA), A5 (SCL)
  • Mega2560 20 (SDA), 21 (SCL)
  • Леонардо 2 (ПДР), 3 (СКЛ)
  • Через 20 (SDA), 21 (SCL), SDA1, SCL1

Ви можете подивитися на ці приклади.

Як @TheDoctor сказав:

Для обох ліній даних I2C потрібні резистори до 3,3 В. Це запобігає дрейфуванню, якщо вони відключені. Значення резистора Енді має працювати, але рекомендується використовувати один від 10 к Ом до 47 к Ом.


1
Не забувайте резистори підключення на лініях I2C
TheDoctor

1
Щоб розширити це, обом лініям i2c потрібні резистори до 5В. Це запобігає дрейфуванню, якщо вони відключені. Значення резистора Енді має працювати, але рекомендується використовувати один від 10 к Ом до 47 к Ом
TheDoctor

Слід сказати, що якщо ви використовуєте 5V підтягувань на Arduino завдяки (який був названий у відповіді), ви пошкодили плату. Arduino Due використовує 3.3V логіку, і вона НЕ потребує 5В підтягувань, також SDA і SCL вже підтягуються внутрішньо платою.
Джон

3

Додаткові щити не потрібні.

Вам потрібна лише бібліотека проводів і пара проводів для підключення пристрою до SDA та SCL .

Положення цих штифтів різне на різних Arduinos, будь ласка, подивіться тут .


2

Для майбутніх читачів: використовуйте бібліотеку Adafruit_MCP23017.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.