Wire.h Library -

void loop() byte error, address; int devices = 0;

| Device | Typical Address | |--------|----------------| | OLED Display (SSD1306) | 0x3C | | RTC DS3231 | 0x68 | | Temperature Sensor (BMP280) | 0x76 or 0x77 | | EEPROM (24LC256) | 0x50 | | LCD Backpack (PCF8574) | 0x27 or 0x3F | Advanced Usage: Multiple Bytes // Sending multiple bytes Wire.beginTransmission(0x50); Wire.write(0x00); // Address high byte Wire.write(0x00); // Address low byte Wire.write("Hello"); Wire.endTransmission(); // Reading multiple bytes Wire.requestFrom(0x50, 10); while(Wire.available()) char data = Wire.read(); wire.h library

void loop() Wire.beginTransmission(0x3C); // Start transmission to device address 0x3C Wire.write(0x00); // Send command byte Wire.write(0x01); // Send data byte Wire.endTransmission(); // Stop transmission void loop() byte error, address; int devices =

for(address = 1; address < 127; address++) Wire.beginTransmission(address); error = Wire.endTransmission(); void loop() byte error

void requestEvent() Wire.write("Hello from slave");

Wire.requestFrom(LM75_ADDR, 2); if(Wire.available() >= 2) byte msb = Wire.read(); byte lsb = Wire.read(); int tempRaw = (msb << 8) return -999;