En el diseño de circuitos electrónicos y automatización con placas como Arduino, ESP32 o Raspberry Pi Pico, conectar sensores no es simplemente tirar cables analógicos. Los sensores modernos —de temperatura de alta precisión, acelerómetros, lectores de tarjetas RFID o pantallas OLED— se comunican de forma digital.
Para transferir datos binarios (ceros y unos) de manera rápida y sin errores entre el chip central y sus periféricos, la industria electrónica utiliza buses de comunicación estandarizados. Los dos protocolos más populares son I2C y SPI. En este artículo te explicamos cómo funciona cada uno, sus diferencias y cómo elegir el adecuado para tu hardware.
¿Qué son los buses de comunicación digital en electrónica?
Un bus de comunicación es un sistema digital que permite transferir datos entre los componentes de una placa de desarrollo. En lugar de utilizar un cable dedicado para cada componente (lo que agotaría rápidamente los pines de entrada/salida del microcontrolador), un bus permite que múltiples sensores compartan las mismas líneas físicas de comunicación de forma ordenada.
Para evitar que los dispositivos hablen al mismo tiempo y se genere ruido, ambos protocolos operan bajo una arquitectura de Maestro/Esclavo (actualmente denominados Controlador/Periférico), donde el microcontrolador central controla el ritmo de la comunicación y decide a qué sensor consultar en cada momento.
Protocolo I2C (Inter-Integrated Circuit): Simplicidad de dos cables
Desarrollado originalmente por Philips en 1982, el bus I2C destaca por su increíble ahorro de cables. Permite conectar hasta 127 dispositivos diferentes utilizando únicamente dos líneas de señal:
- SDA (Serial Data Line): La línea a través de la cual viajan los datos en ambas direcciones (lectura y escritura).
- SCL (Serial Clock Line): La línea de reloj que sincroniza el ritmo de transmisión de los datos.
¿Cómo distingue el microcontrolador a cada sensor en I2C?
Como todos los sensores están colgados físicamente de los mismos dos cables, cada dispositivo I2C tiene una dirección hexadecimal única grabada de fábrica (por ejemplo, 0x27 o 0x3C). Al iniciar la comunicación, el microcontrolador envía la dirección del sensor con el que desea hablar; solo el sensor que coincida con esa dirección responderá, ignorando los demás la comunicación.
Ventajas: Solo requiere dos pines de conexión, permitiendo crear sistemas con decenas de sensores sin saturar el microcontrolador.
Desventajas: Es un bus semidúplex (los datos viajan en un solo sentido a la vez) y su velocidad es moderada (típicamente de 100 kHz a 400 kHz).
Protocolo SPI (Serial Peripheral Interface): Velocidad sin rival
Desarrollado por Motorola a finales de los años 80, SPI es el protocolo preferido cuando la prioridad absoluta es la velocidad de transferencia de datos. A diferencia de I2C, SPI es un bus dúplex completo (los datos se envían y reciben simultáneamente) y utiliza cuatro líneas de comunicación:
- MOSI (Master Out Slave In): Línea por donde el microcontrolador envía datos al sensor.
- MISO (Master In Slave Out): Línea por donde el sensor envía datos al microcontrolador.
- SCK (Serial Clock): La señal de reloj de sincronización.
- CS / SS (Chip Select / Slave Select): Una línea física dedicada a cada sensor para activarlo.
¿Cómo distingue el microcontrolador a cada sensor en SPI?
A diferencia de I2C, SPI no utiliza direcciones de software. Para hablar con un sensor específico, el microcontrolador debe poner en estado «bajo» (0V) la línea física CS (Chip Select) correspondiente a ese sensor. Esto significa que requieres un cable adicional de Chip Select por cada sensor que agregues a tu circuito.
Ventajas: Es extremadamente rápido (puede superar los 10 MHz), ideal para transferir imágenes a pantallas TFT de color o leer tarjetas MicroSD en milisegundos.
Desventajas: Utiliza más cables y satura los pines del microcontrolador a medida que añades más sensores (requiere una línea CS dedicada por dispositivo).
Comparativa rápida: ¿Cuándo usar I2C y cuándo usar SPI?
| Criterio | Protocolo I2C | Protocolo SPI |
|---|---|---|
| Pines requeridos | 2 pines (fijos, sin importar el n° de sensores) | 3 pines comunes + 1 dedicado por sensor |
| Direccionamiento | Por software (direcciones hexadecimales) | Por hardware (cable Chip Select dedicado) |
| Velocidad | Moderada (adecuada para sensores térmicos) | Muy alta (adecuada para pantallas y memoria) |
| Modo de transmisión | Semidúplex (envía o recibe a la vez) | Dúplex completo (envía y recibe simultáneamente) |
Regla práctica de selección:
- Elige I2C para conectar pequeños sensores ambientales (humedad, barómetros), relojes en tiempo real (RTC) o pantallas OLED monocromáticas sencillas donde quieras ahorrar pines de tu ESP32 o Arduino.
- Elige SPI para pantallas gráficas de color de alta resolución, lectores de tarjetas de memoria MicroSD, módulos de radiofrecuencia (LoRa, transceptores) y sensores de velocidad ultra rápidos.
Diseña Proyectos de Automatización Profesional y Seguros
El uso de buses de comunicación digital permite centralizar y optimizar la lectura de datos físicos de manera sorprendente. Sin embargo, I2C y SPI son señales débiles de muy bajo voltaje (3.3V o 5V) altamente sensibles al ruido electromagnético que generan los cables de corriente alterna (220V) cercanos en tableros y ductos residenciales e industriales. Un mal trazado de cables puede congelar tus sensores.
En Electricidad Paine contamos con especialistas listos para ayudarte.
Te ofrecemos soporte en el diseño de proyectos eléctricos y de automatización estructurando y aislando correctamente tus sistemas de control de potencia, y te asistimos frente a interferencias de red con nuestro servicio de detección y solución de fallas eléctricas. ¡Integra tecnología en tus espacios con profesionales!

