Авто определение I2C
- Войдите на сайт для отправки комментариев
Сб, 04/04/2020 - 11:08
byte error, address; int nDevices; Serial.println("Scanning..."); nDevices = 0; for(address = 1; address < 127; address++ ) { Wire.beginTransmission(address); error = Wire.endTransmission(); if (error == 0) { String stringOne = String(address, HEX); Serial.print("0x"); Serial.print(stringOne); Serial.print(" - "); if(stringOne=="3C") Serial.println("'OLED 3C'"); if(stringOne=="3D") Serial.println("'OLED 3D'"); nDevices++; } else if (error==4) { Serial.print("Unknow error at address 0x"); if (address<16) Serial.print("0"); Serial.println(address,HEX); } } if (nDevices == 0) Serial.println("No I2C devices found\n"); else Serial.println("done\n"); }
Как сделать определение экрана только 1 раз чтобы когда экран подключили выполнялася команда myOLED.begin(); 1 раз
if(stringOne=="3C") Serial.println("'OLED 3C'");
if(stringOne=="3D") Serial.println("'OLED 3D'"); - определяет когда экран включен
i2c шина не предназначена для горячего включения.
i2c шина не предназначена для горячего включения.
Но всеже можно это сделать.. Делал 2 экрана ssd1306 с указанием пинов SCL SDA для каждого так они сами определяюся, а через адрес 0x3C, 0x3D нет.. нужно выполнить meOLED.begin в цикле 1 раз
Думал не додумаюсь... сам сделал автоопридиление все работает.