Control digital de sistemas mediante bus CAN

Para el control de los sistemas de alumbrado y de maniobras de un vehículo, emplearemos cuatro microcontroladores Arduino UNO R3 o compatible.

Como materiales para el control electrónico, emplearemos:

Los receptores que emplearemos son:
Montaremos una caja de fusibles para parcializar los siguientes circuitos:

Las funcionalidades que vamos a conseguir con el empleo del microcontrolador programado son:

Asimismo, se dispondrá de un aviso luminoso mediante mensaje en pantalla LCD de la activación/desactivación de la llave de contacto (terminal 15), del olvido de luces encendidas tras la desconexión de la llave de contacto y de la selección de la función confort para las luces de maniobras (permite varios parpadeos repetidos con un solo toque del mando selector).

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

En dos de los módulos MCP2515 deberemos establecer un puente entre los pines del conector J1 para poder implementar dos resistencias terminales de 120 Ω en el bus.

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

Tabla. Conexionado de pines de la unidad de control de mandos
Pin
Entrada/Salida
D2
Entrada señal baja para función warning
D3
Entrada señal baja para luces de posición
D4
Entrada señal baja para luces de cruce
D5
Entrada señal baja para luces de carretera
D6
Entrada señal baja para intermitente izquierdo
D7
Entrada señal baja para intermitente derecho
D8
Entrada señal baja para claxon
D9
Entrada señal baja para luces antiniebla
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
D14=A0
Entrada señal baja para activación de terminal +15
D19=A5
Entrada señal baja para función confort de intermitentes


Tabla. Conexionado de pines de la unidad de interface de pantalla LCD
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


Para el conexionado de los pines del módulo de relés, se sugiere el orden mostrado en la siguiente tabla, aunque cualquier otro orden puede ser igualmente válido. El orden sugerido se corresponde con la asignación de relés que se observa en los pictogramas de la imagen.
 
Relés


Tabla. Conexionado de pines de la unidad de control de actuadores
Pin
Entrada/Salida
D2
Salida señal baja para activación de luces de posición (relé INT1)
D3
Salida señal baja para activación de luces de posición (relé INT2)
D4
Salida señal baja para activación de luces de cruce (relé INT3)
D5
Salida señal baja para activación de luces de carretera (relé INT4)
D6
Salida señal baja para activación de intermitente izquierdo (relé INT5)
D7
Salida señal baja para activación de intermitente derecho (relé INT6)
D8
Salida señal baja para activación de claxon (relé INT7)
D9
Salida señal baja para activación de luces antiniebla (relé INT8)
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


Tabla. Conexionado de pines de la unidad de monitoreo con pantalla LCD
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


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).

En el caso de optar por una pantalla OLED SSD1331 para la unidad de monitoreo del bus, necesitaremos las librerías correspondientes a dicha pantalla (Arduino Adafruit_GFX y Adafruit_SSD1331) y el conexionado de pines será el mostrado en la siguiente tabla.


Tabla. Conexionado de pines de la unidad de monitoreo con pantalla LCD
Pin
Entrada/Salida
D1
Conexión a pin CS de pantalla OLED
D2
Conexión a pin DC de pantalla OLED
D3
Conexión a pin RES de pantalla OLED
D4
Conexión a pin SDA de pantalla OLED
D5
Conexión a pin SCL de pantalla OLED
D6
Conexión a pin Vcc de pantalla OLED
D7
Conexión a pin GND de pantalla OLED
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