[ master_write / slave_receiver ] 쌍을 변경하여 Master에서 Slave에 1Byte 데이터를 보내고, Slave는 수신된 데이터를 시리얼 모니터에 출력한다.

// Master Writer
#include <Wire.h>
void setup() {
Wire.begin();
Serial.begin(9600);
}
byte x=0;
void loop() {
Wire.beginTransmission(8); // Master에서 전송하기위해 Slave의 주소 값을 지정
Wire.write("x is "); // sends five bytes
Wire.write(x); // sends one byte
Wire.endTransmission(); // 데이터 버퍼에 저장된 데이터를 전송
x++;
delay(500);
Serial.println(x);
}
#include <Wire.h>
void setup()
{
Wire.begin(8); // I2C 버스가 ID #8로 연결
Wire.onReceive(receiveEvent); // register event
Serial.begin(9600); // 시리얼 시작
}
void loop()
{
delay(100);
}
void receiveEvent(int howMany)
{
while(1 < Wire.available()) // loop through all but the last
{
char c = Wire.read(); // receive byte as a character
Serial.print(c); // print the character
}
int x = Wire.read(); // receive byte as an integer
Serial.println(x); // print the integer
}

