Der I²C-Bus (Inter Integrated Circuit) wurde ursprünglich von Philips entwickelt, er sollte die Kommunikation mit einem Controller (dem Arduino) und den verschiedenen Peripherie-Geräten ermöglichen.
Wenn mehrere Peripherie-Geräten verwendet werden, können die Anschlüsse SCL und SDA auf das Steckbrett hinaus geführt werden und die Peripherie-Geräten werden an den horizontalen Pins angeschlossen.
Beispiel Arduino UNO
Der dazugehörige Schaltplan:
Der I²C-Bus kommt mit zwei Datenleitungen aus:
- die Taktleitung SCL (Serial Clock) ⇒ A5
- die Datenleitung SDA (Serial Data) ⇒ A4
Statt A4 (SDA) und A5 (SCL) kannst du auch die mit SCL und SDA beschrifteten Pins verwenden.
I²C-Pins anderer Mikrocontroller
Jedes Bauteil, das mit I2C angesteuert wird, hat eine eigene Adresse.
Diese kannst du mit einem Programm herausfinden:
#include "Wire.h"
void setup()
{
Wire.begin();
Serial.begin(9600);
delay(500);
Serial.print("I2C Scanner");
}
void loop()
{
byte Fehler, Adresse;
int Geraete = 0;
Serial.println("Starte Scanvorgang");
for (Adresse = 1; Adresse < 127; Adresse++ )
{
// Übertragung starten
Wire.beginTransmission(Adresse);
// wenn die Übertragung beendet wird
Fehler = Wire.endTransmission();
if (Fehler == 0)
{
Serial.print("I2C Gerät gefunden - Adresse: 0x");
if (Adresse < 16) Serial.print("0");
Serial.print(Adresse, HEX);
Serial.println("");
Geraete++;
}
}
if (Geraete == 0) Serial.println("Keine I2C Geräte gefunden\n");
else Serial.println("Scanvorgang abgeschlossen");
delay(10000);
}
SPI-Bus
Letzte Aktualisierung: