Wire.h Library [ HOT ]
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
Always add pull-up resistors (2.2kΩ to 10kΩ) on both SDA and SCL lines to 3.3V or 5V. Basic Functions Master Mode (Most Common) #include <Wire.h> void setup() Wire.begin(); // Join I2C bus as master Serial.begin(9600); wire.h library
void loop() | Function | Description | Example | |----------|-------------|---------| | Wire.begin() | Initialize as master | Wire.begin() | | Wire.begin(address) | Initialize as slave | Wire.begin(0x08) | | Wire.beginTransmission(addr) | Start transmission | Wire.beginTransmission(0x3C) | | Wire.write(data) | Queue data to send | Wire.write(0xFF) | | Wire.endTransmission() | Send queued data | Wire.endTransmission() | | Wire.requestFrom(addr, bytes) | Request data from slave | Wire.requestFrom(0x3C, 6) | | Wire.available() | Check available bytes | if(Wire.available()) | | Wire.read() | Read a byte | byte b = Wire.read() | Complete Example: Scanning for I2C Devices #include <Wire.h> void setup() Wire.begin(); Serial.begin(9600); Serial.println("I2C Scanner"); void loop() Wire
void loop() float temp = readTemperature(); Serial.print("Temperature: "); Serial.print(temp); Serial.println("°C"); delay(1000); void loop() Wire.beginTransmission(0x3C)
#include <Wire.h> void setup() Wire.begin(0x08); // Join bus as slave with address 0x08 Wire.onReceive(receiveEvent); // Register receive handler Wire.onRequest(requestEvent); // Register request handler Serial.begin(9600);
void receiveEvent(int bytes) while(Wire.available()) char c = Wire.read(); Serial.print(c);