También, dado que estás golpeando a I2C en un microcontrolador que sin duda tiene "otras cosas que hacer" (wifi en el 8266, ¿verdad?), es posible que tu flujo de programas I2C sea interrumpido para manejar wifi (o quién sabe qué más), y posiblemente arruinar las cosas. Tal vez usted (la biblioteca I2C de Zarya que está utilizando) necesite desactivar las interrupciones durante la duración de cada byte I2C, o incluso cada transacción completa hacia / desde su periférico I2C. No desea que se le interrumpa en parte a través de un byte: el periférico I2C puede agotarse, pero su código de bit bit está todavía "en estado" en medio de un byte & no tiene idea de que xx mS acaba de pasar entre un par de sus transmisiones / recepciones de bits.