| Wire Slave Receiver by Nicholas Zambetti <http://www.zambetti.com> Demonstrates use of the Wire library Receives data as an I2C/TWI slave device Refer to the "Wire Master Writer" example for use with this Created 29 March 2006 Revised 30 August 2007 |

    // Wire Slave Receiver
    // by Nicholas Zambetti <http://www.zambetti.com>

    #include <TwoWire.h>

    void setup()
    {
      Wire.begin(4);                // join i2c bus with address #4
      Wire.onReceive(receiveEvent); // register event
      Serial.begin(9600);           // start serial for output
    }

    void loop()
    {
      delay(100);
    }

    // function that executes whenever data is received from master
    // this function is registered as an event, see setup()
    void receiveEvent(int howMany)
    {
      while(1 < Wire.available()) // loop through all but the last
      {
        char c = Wire.receive(); // receive byte as a character
        Serial.print(c);         // print the character
      }
      int x = Wire.receive();    // receive byte as an integer
      Serial.println(x);         // print the integer
    }