El bus I2C en Arduino

Esta tecnología desarrollada por Philips, actualmente abierta, permite conectar entre sí no solo placas sino también componentes individuales dentro de las mismas. Por ejemplo un microcontrolador con el regulador de carga de batería en un dispositivo portable.

¿Cómo funciona?

El dispositivo MASTER (Maestro) iniciará a comunicación con los SLAVE (Esclavos) enviando o recibiendo datos de los mismos. En esta Arquitectura MASTER-SLAVE, los SLAVE no pueden iniciar la comunicación (el MASTER tiene que preguntarles) ni pueden hablar entre sí los dispositivos SLAVE

El bus I2C es un sistema síncrono, lo que significa que utiliza un reloj para que coincida con el intercambio de datos. El master fija esta velocidad y los demás dispositivos se sincronizan a la frecuencia.

Este bus trabaja con resistencias Pull-Up en sus dos líneas de transmisión de datos (SCK y SDA).

Conexión

Este bus solo requiere dos cables de señal para transmitir información: SDA y SCL. Sumando el cable de alimentación y el ground, la conexión entre una placa de desarrollo / Arduino y un dispositivo SPI, por ejemplo un LCD se hará con 4 cables.

Arduino cuenta con soporte I2C por hardware en un par de pines. También se pueden emplear otros pares como bus I2C por Sofware, pero la velocidad puede disminuir dramáticamente.

Los pines a los que está asociado varían. La siguiente tabla muestra la disposición en alguno de los principales modelos. Para otros modelos, consultar el esquema de patillaje correspondiente.

Según la placa de desarrollo o Arduino que se use, los pines pueden cambiar.

MODELO SDA SCK
Uno A4 A5
Nano A4 A5
Mini / Pro A4 A5
Mega 20 21
D1 Mini / ESP8266 D2 / GPIO D1
ESP32 GPIO 21 21

Para otros modelos y como regla general fijarse en el Datasheet

Otros Proyectos realizados en España:

1 Respuesta

HUE CAT

PROGRAMACIÓN Y DISEÑO

GDPR