Wie verwende ich I2C-Geräte mit Arduino?


12

Ich habe ein paar nützliche I2C-Komponenten, wie z. B. einen 16-Bit-Port-Expander (MCP23017), den ich in verschiedenen Projekten verwenden möchte.

Was muss ich tun, damit diese mit Arduino funktionieren? Funktioniert es mit jedem Arduino oder benötige ich ein bestimmtes Board oder einen Schild?

Antworten:


9

Arduino hat die Wire Library , die mit I2C kommuniziert.

Mit dieser Bibliothek können Sie mit I2C / TWI-Geräten kommunizieren. Auf den Arduino-Boards mit dem R3-Layout (1.0-Pinbelegung) befinden sich SDA (Datenleitung) und SCL (Taktleitung) auf den Pin-Headern in der Nähe des AREF-Pins. Der Arduino Due verfügt über zwei I2C / TWI-Schnittstellen SDA1 und SCL1 in der Nähe des AREF-Pins und die zusätzliche befindet sich auf den Pins 20 und 21. Als Referenz zeigt die folgende Tabelle, wo sich TWI-Pins auf verschiedenen Arduino-Boards befinden.

Board I2C / TWI-Pins

  • Uno, Ethernet A4 (SDA), A5 (SCL)
  • Mega2560 20 (SDA), 21 (SCL)
  • Leonardo 2 (SDA), 3 (SCL)
  • Fällig 20 (SDA), 21 (SCL), SDA1, SCL1

Sie können sich diese Beispiele ansehen .

Wie @TheDoctor sagte:

Beide I2C-Datenleitungen benötigen Widerstände bis 3,3V. Dies verhindert, dass sie driften, wenn sie deaktiviert sind. Der Andy-Widerstandswert sollte funktionieren, es wird jedoch empfohlen, einen Wert zwischen 10 kOhm und 47 kOhm zu verwenden.


1
Vergessen Sie nicht, Pullup-Widerstände auf den I2C-Leitungen
TheDoctor

1
Um dies zu erweitern, benötigen beide i2c-Datenleitungen Widerstände auf 5 V. Dies verhindert, dass sie driften, wenn sie deaktiviert sind. Andy Widerstandswert sollte funktionieren, aber es wird empfohlen, einen zwischen 10k Ohm und 47k Ohm zu verwenden
TheDoctor

Es sollte gesagt werden, dass, wenn Sie 5V-Pullups auf dem Arduino verwenden (was in der Antwort genannt wurde), Sie das Board beschädigt haben. Das Arduino Due verwendet eine 3,3-V-Logik und benötigt KEINE 5-V-Pullups. Auch SDA und SCL werden bereits intern von der Platine hochgezogen.
John

3

Zusätzliche Abschirmungen werden nicht benötigt.

Sie benötigen nur die Kabelbibliothek und ein paar Kabel, um das Gerät mit SDA und SCL zu verbinden .

Die Position dieser Stifte ist bei den verschiedenen Arduinos unterschiedlich, bitte schauen Sie hier .


2

Für zukünftige Leser: Verwenden Sie die Bibliothek Adafruit_MCP23017.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.