Comunicación I²C entre dos Arduinos

Publicado el 11 marzo 2016 por Villalba2006

Hoy vamos a conectar dos Arduinos UNO Rev.3 a través de comunicación I²C (Inter-Circuitos Integrados), que es un bus de comunicaciones serie síncrono, con 2 líneas para transmitir la información, es decir, el pin SDA para transmitir los datos y el pin SCL para el reloj quesincroniza la comunicación. Este tipo de comunicación utiliza un direccionamiento de 7 bits, con lo que podrían comunicarse hasta 127 dispositivos simultáneamente a una velocidad de unos 100 Kbits por segundo, aunque es recomendable conectar resistencias PULL-UP de un valor comprendido entre 1 y 10KΩ tanto en el pin SDA como en el pin SCL para no perder potencia en la comunicación. Hoy en día es muy fácil de encontrar dispositivos ya sean sensores, pantallas LCD… etc. que se conecten por medio de comunicación I2C a nuestro Arduino, cada uno con una dirección diferente previamente asignada (0-126).Esta vez nos vamos a ayudar de la librería para poder trabajar con comunicación I²C y Arduino. Es necesario realizar dos montajes, el del “Arduino Maestro I²C”, que va a ser el que tiene conectado el pulsador (pin digital 4) y está alimentado a través del puerto USB de nuestro PC, y el del Arduino Esclavo I²C” que es el que tiene conectado el zumbador (pin digital 5) y que está alimentado directamente a través del pin Vin mediante los +5V que entrega el “Arduino Maestro I²C”. Las masas (GND) de ambos Arduinos deben estar conectadas entre sí.


Diagrama de conexión I²C entre los Arduinos


Para realizar una comunicación I²C unidireccional satisfactoria entre los dos Arduinos, simplemente tenemos que conectar los pines SDA y SCL de los dos Arduinos entre sí, para posteriormente cargar los correspondientes programas. Si todo está correcto el zumbador conectado al “Arduino Esclavo I²C” sonará mientras estemos presionando el pulsador conectado al “Arduino Maestro I²C”. Es un ejemplo muy sencillo al cual vosotros podéis ir añadiendo mayor número de componentes y que se ejecuten muchas más funciones (podéis intentar realizar una comunicación bidireccional I²C entre los dos Arduinos). Para mayor información consultar los comentarios del código del programa.
Lista de Materiales:
·   2 Arduinos UNO Rev.3.·   Cable USB tipo A-B.·   Zumbador piezoeléctrico (activo).·   Pulsador.·   Resistencia de 10KΩ.·   Protoboard.·   Cables de conexión.
Programa:
·   Maestro I²C:Descarga del programa para el Maestro I²C
·   Esclavo I²C:Descarga del programa para el Esclavo I²C  Video: