Verwendung der I²C-Schnittstelle
Ziel
Sie können Sensoren mit einer I²C-Schnittstelle an einen MC koppeln und Daten übertragen.
Überblick
Die I²C/TWI-Schnittstelle basiert auf einer 2-Draht-Verbindung (Daten + Takt) und ist geeignet für die Anschluss von Peripherie wie z.B. Sensoren, Speicher etc. Angewendet wird das Master-Slave-Prinzip, bei dem der Bus-Master die Kommunikation steuert und die Slave-Geräte antworten. In der Regel werden Open-Collector- bzw. Open-Drain-Ausgänge für die Kommunikation verwendet, wobei i.d.R. externe Pullup-Widerstände benötigt werden.
Basics
- 100 kbit/s Standard
- 112 Knoten (7 Bit Adressen)
Verständnisfragen I²C
- Welche seriellen Schnittstellen (Busse) kennen Sie?
- Welche Leitungen benötigen Sie für die I2C/TWI-Schnittstelle?
- Welche Pins werden beim Arduino Uno für I²C verwendet? Könnte man auch andere Pins verwenden?
- Hat der Arduino Uno Pullups an den I²C-Pins? Wenn ja mit welchem Wert?
- Welcher Duplex-Modus wird verwendet?
- Welche Datenraten können Sie mit I²C erreichen?
- Welche Bedeutung haben Master und Slave und Adressen?
- Wie funktioniert ein I²C-Buszugriff für das Lesen bzw. Schreiben?
- Welche Geräte mit I²C gibt es?
- Verschaffen Sie Sich einen Überblick über die vorhandenen Methoden der Wire-Bibliothek für I²C!
- Welcher Logikverknüpfung entspricht die Zusammenschaltung mehrerer Ausgänge?
Verständnisfragen Sensor
- Verschaffen Sie sich einen Überblick über die elektrischen Werte der Sensoren SHT21 und TSL2561.
- Bei welcher Betriebsspannung können diese Sensoren verwendet werden?
- Welche Spannung vertragen die Pins SCL und SDA?
- Wie kann ein Anschluss an den Arduino Uno erfolgen? Siehe auch Pegelwandler unter Ressourcen!
I²C-Sensor
- Messen Sie auf dem Breakout-Modul des TSL2561 die Pullup-Widerstände durch!
- Verbinden Sie den SHT21 bzw. TSL2561 mit dem 3,3V-Pin des Arduino und die I²C-Pins über einen Pullup mit 10k. Welche Spannung resultiert damit auf dem I²C-Bus?
- Schreiben Sie ein kurzes Demoprogramm, welches die Rohdaten des Temperaturwertes bzw. die Helligkeitswerte ausliest unter Zuhilfenahme der Wire-Bibliothek. Verwenden Sie dazu zunächst den Hold-Modus des Sensors.
- Nutzen Sie ein Messsgerät zur Anzeige der Daten auf dem I²C-Bus.
- Verbinden Sie zusätzlich den Helligkeitssensor mit dem Bus.
- Verwenden Sie die SHT21/TSL2561-Bibliotheken zur Anzeige der Sensorwerte. (Adafruit TSL2561, Adafruit Unified Sensor, SHT2x)
- Nutzen Sie den I²C-Scanner, um die Adressen der angeschlossenen I²C-Geräte und die Taktfrequenz zu erkennen!
I²C-MC-MC
- Verwenden Sie die Wire-Bibliothek für I²C! Verschaffen Sie Sich einen Überblick über die vorhandenen Methoden!
- Verbinden Sie zwei Arduinos mittels I²C schreiben Sie vom Master ein Byte und lesen anschließend ein Byte! (siehe Ressourcen, bzw. Examples -> Wire)
- Nutzen Sie die serielle Konsole zur Anzeige.
- Nutzen Sie ein Messsgerät zur Anzeige der Daten auf dem I²C-Bus.
Ressourcen I2C-Bus
- Übersicht
- I2C-Software
- Wire-Bibliothek
- I2C-Hardware
- Pegelwandler
- Pullup-Berechnung
- I2C-Messgerät-Picotech
- OpenDrain vs CMOS
- IO-Ports
Ressourcen Sensor / Receiver
Letzte Änderung: 11. April 2025 18:12