¿Qué es el protocolo SPI?
SPI (Serial Peripheral Interface) es un protocolo de comunicación sincrónico que usa 4 líneas: MOSI (Master Out Slave In), MISO (Master In Slave Out), SCK (reloj) y SS/CS (Chip Select, uno por dispositivo). Es más rápido que I2C (hasta varios MHz) y permite transfers de datos continuos, ideal para pantallas que necesitan refrescar muchos píxeles o almacenamiento de datos rápido.
En el Arduino Uno los pines SPI son: MOSI=11, MISO=12, SCK=13, y cualquier pin digital para CS. Los módulos SD y pantallas TFT disponibles en Especificar.cl usan SPI.
Pines SPI del Arduino
- MOSI: Pin 11 (o encabezado ICSP pin 4)
- MISO: Pin 12 (o encabezado ICSP pin 1)
- SCK: Pin 13 (o encabezado ICSP pin 3)
- SS (esclavo): Pin 10 (hardware) o cualquier pin digital (software CS)
- Múltiples dispositivos comparten MOSI, MISO, SCK pero cada uno tiene su propio CS
SD Card con Arduino
El módulo lector de SD usa SPI. Con la librería SD.h incluida en Arduino IDE puedes crear, leer y borrar archivos. SD.begin(CS_PIN) inicializa la tarjeta. File dataFile = SD.open("datos.txt", FILE_WRITE) abre o crea el archivo. dataFile.println(temperatura) escribe una línea. Ideal para datalogging de sensores sin necesidad de conexión WiFi.
Pantalla TFT ILI9341 con Arduino
La pantalla TFT ILI9341 de 2.8" con 320×240 píxeles y 65.536 colores usa SPI. Con la librería Adafruit_ILI9341 puedes dibujar píxeles, líneas, rectángulos y texto de colores. La velocidad SPI de 8 MHz permite refrescar la pantalla completa en ~200ms, suficiente para interfaces de usuario básicas. Combínala con el touch screen XPT2046 para crear una HMI completa.