#include #define BUFFER_SIZE 32 char receivedMessage[BUFFER_SIZE]; void setup() { Wire.begin(8); // slave address from the master Wire.onReceive(receiveEvent); Serial.begin(9600); while (!Serial); Serial.println("Slave ready to receive messages..."); } void loop() { // Nothing here; work happens in receiveEvent() } void receiveEvent(int howMany) { if (howMany > 0 && howMany < BUFFER_SIZE) { for (int i = 0; i < howMany; i++) { receivedMessage[i] = Wire.read(); } receivedMessage[howMany] = '\0'; Serial.print("Received from master: "); Serial.println(receivedMessage); } else { // If message too big or empty, clear buffer while (Wire.available()) { Wire.read(); } Serial.println("Received invalid or oversized message."); } }