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.
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.
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: