ich hab jetzt alles mögliche versucht, habe die initialisierung wie auch die I2C-suche xmal hin und her verschoben, muss mich wohl damit abfinden, dass es wirklich nicht geht...
Code:#include <Wire.h> #include <LCD.h> #include <LiquidCrystal_I2C.h> byte I2CAdd; byte LCDadr = 0x27; //phantom_adresse byte fehler; boolean done = false; //0x3F = 63 //0x27 = 39 //vorinitialisierung mit phantom_adresse LiquidCrystal_I2C lcd(LCDadr, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); void setup() { Serial.begin(115200); Wire.begin(); lcd.begin(16, 2); lcd.clear(); // I2c_suche(); } void loop() { if (!done) { I2c_suche(); Serial.print(I2CAdd); Serial.print(" "); Serial.println(LCDadr, HEX); //initialisierung mit echter I2C adresse überschreiben LiquidCrystal_I2C lcd(LCDadr, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); LCD_meldung(); } //weiterer code } void I2c_suche() { Wire.setClock(100000L); for (I2CAdd = 39; I2CAdd < 63; I2CAdd++) { Wire.beginTransmission(I2CAdd); fehler = Wire.endTransmission(); if (fehler == 0) { LCDadr = I2CAdd; Serial.print("Baustein mit Adresse 0x"); Serial.print(I2CAdd, HEX); Serial.println(" gefunden!"); // I2CAdd_hex = (I2CAdd); // Serial.println(I2CAdd_hex, HEX); Serial.print(I2CAdd); Serial.print(" "); Serial.println(LCDadr, HEX); done = true; } } } void LCD_meldung () { lcd.setCursor(0, 0); lcd.setBacklight(HIGH); lcd.print("I2C scanner"); lcd.setCursor(0, 1); lcd.print("LCD lokal"); delay(2000); lcd.clear(); done = true; }







Zitieren

Lesezeichen