Ten artykuł obejmuje:
Co to jest komunikacja I2C w Arduino
Piny komunikacyjne I2C odnoszą się do konkretnych połączeń PIN na płycie Arduino, które są używane do komunikacji z urządzeniami I2C. Na większości płyt Arduino piny komunikacyjne I2C znajdują się odpowiednio na pinach A4 i A5 i są oznaczone odpowiednio SDA (dla danych) i SCL (dla zegara).
Niektóre główne atrakcje komunikacji I2C obejmują:
Możliwość wielu mistrzów i wielu niewolników: I2C obsługuje wiele urządzeń głównych i wielu urządzeń niewolników w jednym autobusie, umożliwiając jednocześnie komunikację między wieloma urządzeniami.
Niska liczba pinów: I2C używa tylko dwóch linii, SDA i SCL, do komunikacji, co zmniejsza liczbę wymaganych połączeń i upraszcza okablowanie.
Urządzenia adresowalne: Każde urządzenie I2C w autobusie ma unikalny adres, umożliwiający łatwą identyfikację i komunikację z określonymi urządzeniami.
Wysoka prędkość: Specyfikacja I2C obsługuje szybkości transferu danych do 3.4 Mbps, co czyni go odpowiednim do szybkich aplikacji do przesyłania danych.
Oszczędzanie energii: I2C pozwala na komunikację o niskiej mocy między urządzeniami, umożliwiając umieszczenie urządzeń w trybie niskiej mocy, gdy nie komunikuje się i budzą na żądanie.
I2C szpilki w Arduino Uno
W komunikacji I2C wykorzystywane są dwie linie:
Urządzenie główne jest odpowiedzialne za kontrolowanie linii zegara i inicjowanie komunikacji, podczas gdy urządzenia niewolników są odpowiedzialne za odpowiedź na żądania Mistrza.
Piny I2C w Arduino Mega
Arduino Mega ma wiele pinów komunikacyjnych I2C. Te szpilki to:
Te piny mogą być używane do łączenia urządzeń I2C, takich jak czujniki lub inne mikrokontrolery.
Piny I2C w Arduino nano
Piny I2C na Arduino nano to A4 (SDA) i A5 (Scl), Piny te mogą być używane do komunikacji z urządzeniami I2C, takimi jak czujniki, wyświetlacze LCD i inne mikrokontrolery. Aby użyć tych pinów, musisz użyć biblioteki drutu, która jest wbudowana w Arduino IDE:
Należy zauważyć, że szpilki I2C w Arduino nano mogą być również używane jako standardowe cyfrowe piny we/wy, jeśli nie są używane do komunikacji I2C. Ważne jest jednak, aby upewnić się, że komunikacja I2C jest wyłączona lub zatrzymana przed użyciem tych pinów jako cyfrowych we/wy, ponieważ może to powodować konflikty i błędy.
Krótkie porównanie pinów Arduino I2C
Oto lista popularnych tablic Arduino i odpowiadających im pinów I2C:
Tablica | Piny I2C |
---|---|
Arduino nano | SDA-A4 | SCL-A5 |
Arduino Mega | SDA-A4 | SCL-A5 i SDA-20 | SCL-21 |
Arduino Leonardo | SDA-A4 | SCL-A5 |
Arduino Uno | SDA-A4 | SCL-A5 |
Arduino Micro | SDA-02 | SCL-03* |
Arduino Leonardo | SDA-02 | SCL-03 |
Arduino Micro | SDA-02 | SCL-03 |
Arduino Pro Mini | SDA-A4 | SCL-A5 |
Arduino należne | SDA-20 | SCL-21 |
Arduino 101 | SDA-20 | SCL-21 |
*Pinsy I2C mogą się różnić w zależności od wersji płyty, której używasz uprzejmie, aby zobaczyć odpowiedni arkusz danych, aby uzyskać więcej informacji.
Należy pamiętać, że niektóre płyty mogą mieć więcej niż jedną SDA, Scl piny, w takim przypadku możesz użyć dowolnego z nich zgodnie z wymaganiami i dostępnością. Dobrze jest również odwołać się do oficjalnej dokumentacji używanej przez tablicę, aby potwierdzić pinout I2C.
Łączenie dwóch płyt Arduino za pomocą I2C jako mistrza i niewolnika
Aby ustanowić komunikację I2C między dwoma tablicami Arduino, SDA I Scl Piny obu płyt muszą być połączone i dzielić wspólną płaszczyznę. Komunikację można osiągnąć za pomocą wbudowanej biblioteki drutu w Arduino, która zawiera funkcje konfigurowania i komunikacji w magistrali I2C.
Schematyczny
Poniżej obrazu pokazuje dwie połączone płyty Arduino UNO Mistrz-niewolnik konfiguracja:
Aby podłączyć Arduino UNO z Arduino Nano za pomocą protokołu niewolników Master I2C, postępuj zgodnie z poniższą konfiguracją:
Arduino Mega Connection z Arduino Uno za pomocą I2C:
Wniosek
Tablice Arduino można skonfigurować do komunikowania się ze sobą za pomocą I2C poprzez podłączenie pinów SDA i SCL i konfigurowanie płyt jako master i niewolnika za pomocą biblioteki drutu w Arduino. Pozwala to na wydajną i łatwą komunikację między wieloma urządzeniami w dowolnym projekcie opartym na Arduino.