> Is it possible to use wire.h on an Arduino Uno to act as a slave for more than one address? The quick answer is: No! The ATmega328 2-Wire Serial Interface has a special register for the address match in slave mode. This only allows a single address to be matched. > 22.5.4 Address Match Unit > >The Address Match unit checks if received address bytes match the seven-bit address in the TWI Address > Register (TWAR). If the TWI General Call Recognition Enable (TWGCE) > bit in the TWAR is written to one, all incoming address bits will > also be compared against the General Call address. Upon an address > match, the Control Unit is informed, allowing correct action to be > taken. The TWI may or may not acknowledge its address, depending on > settings in the TWCR. The Address Match unit is able to compare > addresses even when the AVR MCU is in sleep mode, enabling the MCU to > wake up if addressed by a Master. [Reference, pp. 213][1] On an ATtiny with USI it is actually possible to implement multiple address matching as this is controlled by software. Last, a pure software approach could be used, i.e. implement the I2C protocol with external interrupt pin and fast pin access. See Amtel Application Note [AVR154][2]. The code for this app-note can be found on [github][3]. [This][4] could be modified to allow multiple slave address. Cheers! [1]: http://www.atmel.com/images/Atmel-8271-8-bit-AVR-Microcontroller-ATmega48A-48PA-88A-88PA-168A-168PA-328-328P_datasheet_Complete.pdf [2]: http://www.atmel.com/Images/doc8478.pdf [3]: https://github.com/AinonLynx/twi-slave-software-emulation [4]: https://github.com/AinonLynx/twi-slave-software-emulation/blob/master/TWI.c#L147