Diferencias entre los 3 periféricos de comunicación en Arduino

La captura o transferencia de datos vía los pines digitales y analógicos en el Arduino para proyectos pequeños es suficiente, pero, no pasará mucho tiempo antes de que el uso de los periféricos se vuelva obligatorio.

Aquí entran los protocolos de comunicación serial:

UART significa recepción y transmisión asíncronas universales y es un protocolo de comunicación simple que permite que Arduino se comunique con dispositivos serie. El sistema UART se comunica con el pin digital 0 (RX), el pin digital 1 (TX) y con otra computadora a través del puerto USB.

Este periférico, que se encuentra en todas las placas Arduino, permite que Arduino se comunique directamente con una computadora gracias al hecho de que Arduino tiene un convertidor de USB a serie incorporado. Por lo tanto, los programas escritos en un sistema operativo Windows, Mac o Linux se pueden usar con un Arduino conectado a un puerto USB como si fuera un puerto serie (la comunicación del puerto serie es trivial en comparación con la comunicación USB).

I2C que significa circuito integrado, es un protocolo de comunicaciones en serie especialmente diseñado para microcontroladores.

Si bien este periférico casi nunca se usa para la comunicación entre dispositivos de PC, es increíblemente popular entre los módulos y sensores, lo que lo hace útil para proyectos que requieren muchas partes trabajando juntas. De hecho, ¡I2C le permite conectar potencialmente hasta 128 dispositivos a su placa principal!

Es posible mantener una vía de comunicación clara porque I2C utiliza un sistema de direcciones y un bus compartido, lo que significa que muchos dispositivos pueden conectarse exactamente a los mismos cables. Sin embargo, el Arduino primero debe seleccionar un dispositivo específico transmitiendo una dirección única antes de enviar datos. Esto le proporciona a cada dispositivo esclavo lo que necesita y también admite varios maestros. I2C usa menos cables y todos los datos se transmiten en un solo cable, lo que mantiene el número de pines bajo.

SPI significa Interfaz Periférica Serial. Al igual que I2C, SPI es una forma diferente de protocolo de comunicaciones en serie especialmente diseñado para que los microcontroladores se comuniquen entre sí. Sin embargo, tiene algunas diferencias clave con respecto a su contraparte I2C.

La diferencia más notable desde el principio es que, si bien puede usar múltiples maestros y esclavos con I2C, SPI permite un solo dispositivo maestro con un máximo de cuatro dispositivos esclavos.

Normalmente, SPI es mucho más rápido que I2C debido al protocolo simple y, aunque las líneas de datos / reloj se comparten entre dispositivos, cada dispositivo requiere un cable de dirección único. SPI se encuentra comúnmente en lugares donde la velocidad es importante, como con las tarjetas SD y los módulos de pantalla, o cuando la información se actualiza y cambia rápidamente, como con los sensores de temperatura.