I2C Scanner mit variablen Pins
Soll der I2C und der SPI Bus gleichzeitig verwendet werden, so entstehen bei dem Wemos Lolin32 Lite einige Probleme. Leider überschneiden sich die Standard Pins. SDA währe bei diesem Board Pin 19 und SCL Pin 23, die aber schon durch den SPI Bus belegt sind. Somit bleibt nur noch eine Variante, die I2C Pins zu ändern. Das folgende Beispiel zeigt einen angepassten I2C Scanner mit variablen Pins.
#include "Wire.h" #define i2c_sda 0 //hier den sda port definieren #define i2c_scl 4 //hier den scl port definieren void setup() { Serial.begin(115200); //serielle Schnittstelle erzeugen while (!Serial) {;} //auf die serielle schnittstelle warten Wire.begin(i2c_sda, i2c_scl); } void loop() { byte error, address; int nDevices = 0; delay(5000); Serial.println("scannen nach i2c geraeten ..."); for(address = 0x01; address < 0x7f; address++){ Wire.beginTransmission(address); error = Wire.endTransmission(); if (error == 0){ Serial.printf("i2c geraet an adresse: 0x%02X\n", address); nDevices++; } else if(error != 2){ Serial.printf("fehler %d an adresse: 0x%02X\n", error, address); } } if (nDevices == 0){ Serial.println("keine i2c geraete gefunden ..."); } }