Chcę dodać moduł zegara czasu rzeczywistego do mojego małego projektu. Chcę wyświetlać godzinę i datę na moim istniejącym module LCD i2c 2x16.
Zarówno moduł zegara czasu rzeczywistego z interfejsem i2c, jak i moduł LCD 2x16 wykorzystują ten sam pin A4 (SDA) i A5 (SCL) w Arduino Uno. Po wielu godzinach wyszukiwania w sieci magistrala i2c może w rzeczywistości zająć wiele urządzeń szeregowych. Jest to możliwe, ponieważ każde urządzenie ma swój unikalny adres.
Moje pytanie brzmi: jak fizycznie połączyć dwa urządzenia interfejsu i2c w jedno A4 i A5? Dzięki.
Odpowiedzi:
Niektórzy ludzie mają trudności z wizualizacją rzeczy połączonych ze sobą, więc oto zdjęcie:
(Sugestia podania)
symuluj ten obwód - Schemat utworzony za pomocą CircuitLab I2C jest magistralą, więc sygnały o podobnych nazwach są ze sobą połączone. Schemat adresowania pozwala mikrokontrolerowi wybrać urządzenie, z którym rozmawia. W Arduino 10k rezystory podciągające mają „VDD”, czyli piny 5 V lub 3,3 V.
źródło
W przypadku I2C, jeśli wszystkie urządzenia podrzędne mają różne adresy urządzeń, wszystkie piny SDA powinny być połączone razem, a wszystkie piny SCL powinny być połączone razem. To takie proste.
Oczywiście należy również uwzględnić rezystory podciągające na obu liniach, zgodnie z wymaganiami dla I2C. Jak wybrać wartości rezystorów zostały omówione tutaj wcześniej .
źródło
Podłącz dwa piny A4-sda do A5-scl (na obu płytkach uno-uno) i podłącz rezystor od 5v z każdej odpowiedniej linii sda-scl.
źródło
I2C to protokół przesyłania danych opracowany przez firmę Philips. Znany również jako interfejs dwuprzewodowy, ponieważ wykorzystuje dwa przewody do komunikacji. Linia zegara szeregowego SCL. Linia danych szeregowych SDL. Musisz więc podłączyć odpowiednie styki urządzeń i2c, czy to eeprom, czy lcd do styków SCL i SDL mikrokontrolera, którego używasz z rezystorem podciągającym do VDD. Ponieważ jest to protokół adresowy mający 7-bitowy adres dla każdego podłączonego urządzenia, można adresować do 2 ^ 7 różnych urządzeń. Ale zwykle adres I2C urządzenia podrzędnego jest wstępnie zdefiniowany z pewnymi bitami, które programista powinien podłączyć na stałe. Pomaga to w podłączeniu tego samego typu urządzeń z inną częścią adresu przewodowego na tej samej magistrali.
źródło
Powinieneś również sprawdzić rezystory podciągające. Jeśli używasz już wykonanych płyt, nie tylko układu, płyty te zwykle mają rezystory podciągające na płycie między magistralą a vcc. Kiedy więc połączysz wszystko równolegle, rezystory również są równoległe, więc całkowita wartość rezystora spadnie, a komunikacja może się nie powieść.
źródło