Jak korzystać z urządzeń I2C w Arduino?

12

Mam kilka użytecznych komponentów I2C, takich jak 16-bitowy ekspander portów (MCP23017), który chciałbym wykorzystać w różnych projektach.

Co muszę zrobić, aby działały z Arduino? Czy będzie działać z dowolnym Arduino, czy też potrzebuję konkretnej planszy lub tarczy?

Peter Bloomfield
źródło

Odpowiedzi:

9

Arduino ma Wire Library, która komunikuje się z I2C.

Ta biblioteka umożliwia komunikację z urządzeniami I2C / TWI. Na płytach Arduino z układem R3 (1.0 pinout) SDA (linia danych) i SCL (linia zegara) znajdują się na nagłówkach pinów blisko pinu AREF. Arduino Due ma dwa interfejsy I2C / TWI SDA1 i SCL1 znajdują się blisko styku AREF, a dodatkowy jest na stykach 20 i 21. Jako odniesienie w poniższej tabeli pokazano, gdzie styki TWI znajdują się na różnych płytach Arduino.

Styki płytki I2C / TWI

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

Możesz spojrzeć na te przykłady.

Jak @TheDoctor powiedział:

Obie linie danych I2C potrzebują rezystorów do 3,3 V. Dzięki temu nie będą dryfować, jeśli zostaną wyłączone. Wartość rezystora Andy powinna działać, ale zaleca się stosowanie jednego między 10k omem a 47k omem.

Butzke
źródło
1
Nie zapomnij o rezystorach podciągających na liniach I2C
TheDoctor
1
Aby to rozwinąć, obie linie danych i2c potrzebują rezystorów do 5v. Dzięki temu nie będą dryfować, jeśli zostaną wyłączone. Wartość rezystora Andy powinna działać, ale zaleca się stosowanie jednego między 10k omów a 47k omów
TheDoctor
Należy powiedzieć, że jeśli użyjesz podciągnięć 5 V na Arduino z powodu (który został wymieniony w odpowiedzi), uszkodzisz płytę. Arduino Due wykorzystuje logikę 3.3V i NIE potrzebuje podciągania 5V, również SDA i SCL są już wewnętrznie podciągane przez płytkę.
Jan
3

Dodatkowe tarcze nie są potrzebne.

Do połączenia urządzenia z SDA i SCL potrzebna jest tylko biblioteka Wire i kilka przewodów .

Położenie tych pinów jest różne w różnych Arduinos, spójrz tutaj .

Klaus-Dieter Warzecha
źródło
2

Dla przyszłych czytelników: skorzystaj z biblioteki Adafruit_MCP23017.

Gordon
źródło