Cómo funciona la comunicación I2C y cómo usarlo con Arduino

En este artículo, aprenderemos sobre el protocolo de comunicación I2C y cómo se puede implementar con Arduino y sensores. El bus de comunicación I2C se usa ampliamente para la comunicación entre un dispositivo maestro y múltiples dispositivos esclavos. Requiere solo dos cables para la comunicación entre hasta 128 dispositivos con direccionamiento de 7 bits o hasta 124 dispositivos con direccionamiento de 10 bits.

Los dos cables utilizados para la comunicación son las líneas de reloj serie (SCL) y de datos serie (SDA). La línea SCL es la señal de reloj que sincroniza la transferencia de datos, generada por el dispositivo maestro. La línea SDA transporta los datos. Ambas líneas son de drenaje abierto y requieren resistencias pull-up para mantenerlas altas. Los valores de resistencia comúnmente utilizados varían desde 2K para velocidades más altas (hasta 400 kilobits por segundo) hasta 10K para velocidades más bajas (alrededor de 100 kilobits por segundo).

Protocolo de datos

La señal de datos se transfiere en secuencias de 8 bits. Después de una condición de inicio, la primera secuencia de 8 bits indica la dirección del esclavo. Cada secuencia va seguida de un bit de confirmación. Dependiendo del modo seleccionado, puede haber secuencias de direccionamiento adicionales para los registros internos del dispositivo esclavo. Después de las secuencias de direccionamiento, las secuencias de datos se transfieren hasta que se envían todos los datos, finalizando con una condición de parada.

Condición de inicio

BISSELL SpotClean Pet Pro | Limpiador de Manchas de Mascotas | Ideal para Escaleras, Tapicería, Autos y Alfombras
BISSELL SpotClean Pet Pro | Limpiador de Manchas de Mascotas | Ideal para Escaleras, Tapicería, Autos y Alfombras

La condición de inicio ocurre cuando la línea de datos baja mientras la línea de reloj aún está alta.

Secuencia de direccionamiento

La secuencia de direccionamiento del dispositivo comienza con el bit más significativo y termina con el bit menos significativo, utilizando 7 bits para la dirección y 1 bit para indicar la operación de lectura/escritura. Sigue un bit de reconocimiento.

Direccionamiento de Registros Internos

Los registros internos en un dispositivo esclavo contienen información o datos diversos. Las direcciones de estos registros se pueden encontrar en la hoja de datos del sensor. Después del direccionamiento comienzan las secuencias de transferencia de datos.

Condición de parada

La condición de parada ocurre cuando la línea SDA va de bajo a alto mientras la línea SCL está alta.

Ahora demostremos cómo usar el protocolo I2C con Arduino y sensores. Para comunicarnos con los sensores, necesitamos conocer sus direcciones únicas, que se pueden encontrar en sus hojas de datos.

Después de encontrar las direcciones, el siguiente paso es encontrar las direcciones de sus registros internos para poder leer datos de ellos. Una vez que tengamos las direcciones, podemos escribir el código para comunicarnos con los sensores usando la biblioteca Arduino Wire. El código iniciará la comunicación, solicitará y recibirá datos de los registros y los mostrará en el monitor serie.

Tenga en cuenta que es posible que los datos sin procesar necesiten un procesamiento adicional para obtener valores significativos. Se pueden encontrar más detalles sobre esto en tutoriales posteriores específicamente sobre el uso de acelerómetros con Arduino.

Por favor síguenos y suscríbete:

Autor

  • Manuel Mascus

    Soy un ingeniero y periodista con una amplia experiencia en ambos campos, y aquí, en mi sitio web, encontrarás una variedad de artículos y análisis rigurosos que buscan fomentar la comprensión y el entusiasmo por estas disciplinas.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Esta web utiliza cookies propias para su correcto funcionamiento. Contiene enlaces a sitios web de terceros con políticas de privacidad ajenas que podrás aceptar o no cuando accedas a ellos. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Más información
Privacidad