55. I2C Programming

Question.4

What will be printed on the Master’s Serial Monitor?

Master Arduino Code:

#include <Wire.h>

void setup() {
  Wire.begin();      
  Serial.begin(9600);    
  delay(1000);           
}

void loop() {
  unsigned long startTime = millis();  
  
  for (int i = 1; i <= 1000; i++) {
    Wire.beginTransmission(8);  
    Wire.write(i);              
    Wire.endTransmission();     
  }

  unsigned long endTime = millis();  
  unsigned long transmissionTime = endTime - startTime;  
  
  Serial.print(transmissionTime);
  Serial.println(" ms");
  while(1);
}

 

Slave Arduino Code:


#include <Wire.h>

void setup() {
  Wire.begin(8); 
  Wire.onReceive(receiveData);  
}

void loop() {
}

void receiveData(int byteCount) {
  while (Wire.available()) {
    byte receivedData = Wire.read();  
  }
}

 

 

 

Select Answer