I2C ist ein weit verbreitetes Protokoll für die Kommunikation mit Sensoren, Displays und anderen Peripheriegeräten. CodeCell vereinfacht die I2C-Kommunikation, indem es den I2C-Bus bei der Initialisierung automatisch konfiguriert, sodass Sie ihn sofort nutzen können.
Die SDA- und SCL-Pins des I2C befinden sich auf der Unterseite der CodeCell-Platine.
CodeCell konfiguriert I2C automatisch in der Init()
Funktion und diese Konfiguration kann nicht geändert werden, wenn Sie die integrierten Licht- und Bewegungssensoren verwenden möchten, da diese an denselben I2C-Bus angeschlossen sind.
Die folgenden Onboard-Sensoren verwenden bereits I2C. Achten Sie daher darauf, beim Anschließen anderer I2C-Geräte wie Displays, zusätzlicher Sensoren oder Module nicht dieselben Adressen zu verwenden :
Sensor | Adresse |
---|---|
VCNL4040 (Lichtsensor) | 0x60 |
BNO085 (IMU – Bewegungssensor) | Version: 0x4A |
Hinweis: Wenn ein neues I2C-Gerät dieselbe Adresse wie einer dieser Onboard-Sensoren hat, kommt es zu Konflikten und Sie erhalten möglicherweise falsche oder gar keine Daten.
Um eine stabile I²C-Kommunikation zu gewährleisten, verfügt CodeCell bereits über 2-kΩ-Pull-up-Widerstände, die an die SDA- und SCL-Leitungen angeschlossen sind. Das bedeutet, dass Sie bei Verwendung externer I²C-Sensoren keine externen Pull-ups hinzufügen müssen .
Verwenden Sie zur Kommunikation mit einem externen I2C-Gerät die Standardbibliothek „Wire.h“.
Im Gegensatz zu Standard-Arduino-I2C-Geräten verfügt CodeCell über mehrere integrierte Sensoren auf demselben I2C-Bus. Der Aufruf Wire.endTransmission(false);
stellt sicher, dass der Bus aktiv bleibt und die integrierten Sensoren ordnungsgemäß funktionieren.
Wire.beginTransmission(SLAVE_ADDRESS); // Start communication with the device
Wire.write(SLAVE_REG); // Send the register we want to read
Wire.endTransmission(false); // Don't release the bus (needed for onboard sensors)
Wire.requestFrom(SLAVE_ADDRESS, 1); // Request 1 byte from the slave
if (Wire.available()) {
uint8_t data = Wire.read(); // Read received byte
Serial.println(data);
}
CodeCell konfiguriert den I2C-Bus automatisch, sodass keine manuelle Einrichtung erforderlich ist. Außerdem konfiguriert es automatisch die integrierten Sensoren und unterstützt zusätzliche I2C-Geräte!
Erfahren Sie als Erster von neuen Projekten und sichern Sie sich spannende Angebote!
© 2025 Microbots.