// Wire Slave Receiver // by Nicholas Zambetti // 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 // This example code is in the public domain. #include byte ledPin = 13; boolean ledState = 0; void setup() { Wire.begin(10); // join i2c bus with address #8 Wire.onReceive(receiveEvent); // register event Serial.begin(9600); // start serial for output pinMode(ledPin, OUTPUT); digitalWrite(ledPin, ledState); } 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(Wire.available()){ Wire.read(); } ledState = !ledState; digitalWrite(ledPin, ledState); /*while (Wire.available()) { // loop through all but the last char c = Wire.read(); // receive byte as a character Serial.println(c, DEC); // print the character ledState = !ledState; digitalWrite(ledPin, ledState); Serial.println(ledState, DEC); // print the character }*/ }