Identificador de tramas CAN con microcontrolador y LCD

Para identificar los datos de las tramas circulantes a través de un bus CAN (ID, DLC y bytes) emplearemos un microcontrolador Arduino UNO R3 o compatible. Como materiales para el control electrónico, emplearemos:

Un esquema del conexionado necesario puede verse en la siguiente imagen.
 
Esquema

Sólo se muestran valores en pantalla cuando se detecta una trama en el bus, permaneciendo la pantalla en reposo si el bus se encuentra en reposo.

Además de los pines de alimentación Vcc y GND del módulo de relés y de la pantalla LCD, en la siguiente tabla mostramos todos los pines de conexión del PIC.

Pin
Entrada/Salida
D10
Conexión a pin CS de MCP215
D11
Conexión a pin SI de MCP2515
D12
Conexión a pin SO de MCP2515
D13
Conexión a pin SCK de MCP2515
D18=A4
Conexión a pin SDA de módulo I2C de pantalla LCD
D19=A5
Conexión a pin SCL de módulo I2C de pantalla LCD


El conexionado que debe realizarse entre los pines del microcontrolador y los del módulo MCP2515 es el mostrado en la siguiente figura.

Esquema

La programación del microcontrolador mediante el IDE necesita tener instalado las librerías correspondientes al módulo I2C (Wire), a la pantalla LCD (LiquidCrystal_I2C) y al bus CAN (SPI y mcp_can).