55. I2C Programming

Question.1

What is the last line printed on the slave’s serial monitor?

Master Arduino Code:

#include <Wire.h>
void setup() {
  Wire.begin();
  Serial.begin(9600);
  delay(1000);  
}


void loop() {
  Wire.requestFrom(8, 10);  
  Wire.beginTransmission(8);
  for(uint8_t i = 1; i <= 100; i++) {
    Wire.write(i);
  }
  Wire.endTransmission();
  Serial.println((String) "Master received: " + Wire.read());
  
  while(1);
}

 

Slave Arduino Code:

#include <Wire.h>
void setup() {
  Wire.begin(8); 
  Serial.begin(115200);
  Wire.onRequest(sendData); 
  Wire.onReceive(receiveData); 
}

void loop() {
}

void sendData() {
  for (byte i = 0; i < 10; i++) {
    Wire.write(i + 100);  
  }
}

void receiveData(int byteCount) {
  while (Wire.available()) {
    byte receivedData = Wire.read();
    Serial.print("Slave received: ");
    Serial.println(receivedData); 
  }
}

Select Answer