Ich möchte meinem kleinen Projekt ein Echtzeituhrmodul hinzufügen. Ich möchte Uhrzeit und Datum auf meinem vorhandenen i2c 2x16 LCD-Modul anzeigen.
Sowohl das i2c-Schnittstellen-Echtzeituhrmodul als auch das 2x16-LCD-Modul verwenden den gleichen Pin A4 (SDA) und A5 (SCL) auf Arduino Uno. Nach stundenlangem Suchen im Internet kann der i2c-Bus tatsächlich viele serielle Geräte aufnehmen. Dies ist möglich, da jedes Gerät eine eigene eindeutige Adresse hat.
Meine Frage ist, wie man die zwei i2c-Schnittstellenvorrichtungen in ein einzelnes A4 und ein A5 physikalisch verdrahtet? Vielen Dank.
Antworten:
Einigen fällt es schwer, miteinander verbundene Dinge zu visualisieren. Hier ist ein Bild:
(Serviervorschlag)
simulieren Sie diese Schaltung - Das mit CircuitLab I2C erstellte Schema ist ein Bus, sodass gleichnamige Signale miteinander verbunden werden. Mit dem Adressierungsschema kann der Mikrocontroller auswählen, mit welchem Gerät er spricht. Auf dem Arduino gehen die 10k Pull-Up-Widerstände auf "VDD", was den 5V- oder 3,3V-Pins entspricht.
quelle
Wenn für I2C alle Slave-Geräte unterschiedliche Geräteadressen haben, sollten alle SDA-Pins miteinander verbunden sein und alle SCL-Pins sollten miteinander verbunden sein. So einfach ist das.
Natürlich sollten Sie auch Pull-up-Widerstände in beide Leitungen einbauen, wie dies für I2C erforderlich ist. Wie der Widerstandswert zu wählen , wurde hier diskutiert vor .
quelle
Verbinden Sie zwei Stifte A4-sda mit A5-scl (auf beiden Platinen uno-uno) und verbinden Sie den Widerstand von 5 V mit den entsprechenden sda-scl-Leitungen.
quelle
I2C ist ein von Philips entwickeltes Datenübertragungsprotokoll. Wird auch als Zweidrahtschnittstelle bezeichnet, da für die Kommunikation zwei Drähte verwendet werden. SCL-Serial Clock Line. SDL-Serial Data Line. Sie müssen also die entsprechenden Pins der i2c-Geräte verbinden, sei es ein EEPROM oder ein LCD mit den SCL- und SDL-Pins des verwendeten Mikrocontrollers, und einen Pullup-Widerstand mit VDD. Da es sich um ein Adressprotokoll mit einer 7-Bit-Adresse für jedes angeschlossene Gerät handelt, können Sie bis zu 2 ^ 7 verschiedene Geräte adressieren. Normalerweise ist die I2C-Adresse eines Slave-Geräts jedoch mit einigen Bits vordefiniert, die vom Entwickler fest verdrahtet werden müssen. Dies hilft beim Anschließen der gleichen Art von Geräten mit unterschiedlichen festverdrahteten Adressteilen an den gleichen Bus.
quelle