// Wire Slave Receiver // by Nicholas Zambetti #include uint32_t i = 0; int answer = 0; void receiveEvent(int howMany){ i= 0; while(Wire.available()) { i += Wire.read(); i = i << 8; } i= i>> 8; Serial.println(i); } void requestEvent() { Wire.write(char(i)); } void setup() { Wire.begin(4); // join i2c bus with address #4 Wire.onReceive(receiveEvent); // register event Wire.onRequest(requestEvent); Serial.begin(115200); // start serial for output analogWriteResolution(12); pinMode(11, OUTPUT); } void loop() { delay(100); answer= map(i,0,4096,0,255); analogWrite(A11,answer); } // function that executes whenever data is received from master // this function is registered as an event, see setup()