#include const int BUTTON_1_PIN = 2; const int BUTTON_2_PIN = 3; const int BUTTON_3_PIN = 4; void setup() { pinMode(BUTTON_1_PIN, INPUT_PULLUP); pinMode(BUTTON_2_PIN, INPUT_PULLUP); pinMode(BUTTON_3_PIN, INPUT_PULLUP); Wire.begin(0x08); // Join I2C bus with address #8 Wire.onRequest(requestEvent); // Register event } void loop() { // Nothing needed in the loop } void requestEvent() { byte buttonStates = 0; if (digitalRead(BUTTON_1_PIN) == LOW) bitSet(buttonStates, 0); if (digitalRead(BUTTON_2_PIN) == LOW) bitSet(buttonStates, 1); if (digitalRead(BUTTON_3_PIN) == LOW) bitSet(buttonStates, 2); Wire.write(buttonStates); // Send button states to master }