Paso 4: Más sobre I2C
Para pasar brevemente por la teoría, I2C requiere dos líneas digitales: línea de datos serie (SDA) para transferir datos y Línea de reloj serie (SCL) para mantener el reloj. Cada conexión I2C puede tener un maestro y varios esclavos. Un maestro puede escribir a esclavos y solicitar los esclavos a dar datos, pero ningún esclavo puede escribir directamente al maestro o a otro esclavo. Cada esclavo tiene una dirección única en el bus, y el maestro debe saber las direcciones de cada esclavo que quiere acceder.
Cada bus I2C puede soportar hasta 112 dispositivos. Todos los dispositivos necesitan compartir GND. La velocidad es alrededor de 100 kb/s, no muy rápido pero todavía respetable y muy usable. Es posible tener más de un maestro en un bus, pero tiene realmente complicado y generalmente evitado.
Un montón de sensores utilizar I2C para comunicarse, típicamente inercial unidades de medida, barómetros,
sensores de temperatura y algunos sonares. Recuerde que el I2C es no está diseñada para longitudes de cable largas. Dependiendo del tipo de cable utilizado, 2 metros ya podría causar problemas.
I2C es un protocolo de transmisión complicado, pero es muy útil. Los Arduinos implementarlo, con algunas diferencias en las asignaciones de pin:
Tablero de pins de I2C
Uno, A4 Pro Mini (SDA), A5 (SCL)
Mega, por 20 (SDA), 21 (SCL)
Leonardo, Yun 2 (SDA), 3 (SCL)