#include #define pushPin 1 #define copyPin 0 void setup() { pinMode(pushPin,INPUT); pinMode(copyPin,OUTPUT); Wire.begin(8); // join i2c bus with address #8 Wire.onRequest(requestEvent); // register event } void loop() { delay(10); } // function that executes whenever data is requested by master // this function is registered as an event, see setup() void requestEvent() { char data=digitalRead(pushPin); Wire.write(data); digitalWrite(copyPin,data); // as expected by master }