Hallo,

ich hab da mal was gehört von den internen Pullups am AVR Board, dass man die aktiviert, sobald man den Pin auf 1 also Eingang stellt. Brauchst du da noch die externen Widerstände für den IIC _ Bus?? Genaueres kann ich dir aber nicht sagen, da ich kein AVR Board benutze und nur mit PICs arbeite.

Aber da könnte auch ein Problem in deiner Routine sein.
Versuchs mal so:

i2c_init();
i2c_start();
i2c_write(0xE0);
i2c_write(0x00);
i2c_write(0x51);
i2c_stop();

_delay_ms(70);

i2c_start();
i2c_write(0xE0);
i2c_write(0x02);
i2c_stop();
i2c_start();
i2c_write(0xE1);

Lbyte=i2c_readNak();

Hbyte=i2c_readAck();

distance=(Hbyte*256)+Lbyte;

i2c_stop();

Kannst Du bei deinen Routinen generell schon bei i2c_start() eine Geräteadresse übergeben? Bist du da sicher? Das mit dem Restart vor dem Auslesen würde ich durch einen i2c_stop() ersetzten(wie oben im Codestück). Blinkt beim Messen eigentlich die Led, damit man davon ausgehen kann, dass der Senor auch misst?