Can anyone help me find a software imlementation of I2C slave for arduino? I need one like this Stepper-Motor-Controller/UnipolarStepperDriver/usi_i2c_slave.c at master · CalcProgrammer1/Stepper-Motor-Controller · GitHub which is for ATtiny and for the slave it checks the address sent by the master first to decide if the slave should answer or no. The wire library doesn't offer that functionnality so I need to know if there's another library independent of the Atmega I2C hardware for arduino that can act this way.
Why don't you just use an ATtiny (there are other tinys than the 8-pin ATtiny85)?
Your problem is so special that probably no one else had to solve it before. You either have to write that library yourself or change the hardware. I don't think that a software implementation is that hard as CrossRoads seems to think but it's quite a lot of work. I would not use the SoftwareSerial library as an example because there the author switches off interrupts for longer times, stopping all activity for the duration of the transmission (or reception). You could use the TinyWireS library as an example of how to implement it, just use the external interrupt (pins 2 or 3 on the UNO) to get an interrupt for every clock signal the master sends, the take the state of the data signal and act accordingly. If coded correctly you could even live without external hardware because you can switch between input and output/LOW directly. Just be cautious and test with another Arduino first, otherwise you may blow your I2C master device with a faulty implementation.
Another possibility is to use for example an ATtiny1634 which offers the USI hardware as well as a UART. So you can have the ATtiny be the I2C slave which then talks to an Arduino (or PC) over the serial interface.