Das hab ich noch garnicht gesehen aber du initialisierst in deinem Code nie den I2C Takt. Dafür gibt es zwei register die die CPU Clock teilen. Ich weiß grad nicht auswendig die Register, aber du solltest mal im Datenblatt nachschauen, da wird es am Anfang des TWI Kapitels erklärt.
Ich hab grad doch nochmal nachgeschaut. Füge diese Zeile Code am Anfang deines Programms ein.
TWBR=10;
TWPS nicht ändern das bleibt 1, also 00.
Damit kommst du bei einem CPU Takt von 16Mhz auf 166,7kHz, das dürte auch für alle nicht fast I2C Devices reichen. Die Formel ist übrigens
I2C Frequenz= CPU Frequenz/(16+2*TWBR*4<hoch>TWPS)
wobei TWPS die Prescaler Bits sind.
I2C Frequenz=16MHz/(16+2*10*4)=166,7 kHz.
Hoffe konnte dir nochmal helfen
Gruß Muraad