Kunkune

Cómo usar el módulo MCP2515 CAN Bus con Arduino

Cómo usar el módulo MCP2515 CAN Bus con Arduino

By Kunkune | Published: 2026-10-17

Category: Guías prácticas

Aprende a cablear y programar el módulo de bus CAN MCP2515 con Arduino para comunicación vehicular o industrial. Guía paso a paso con errores comunes.

Respuesta rápida

Para usar el módulo de bus CAN MCP2515 con Arduino, conecta sus pines SPI (CS, SCK, MOSI, MISO) y aliméntalo con 5 V, luego instala la librería MCP_CAN y envía o recibe tramas CAN con sketches sencillos. El transceptor TJA1050 del módulo maneja la señalización CAN física, por lo que solo necesitas conectar CANH y CANL a tu bus. Esta guía explica el cableado, la configuración de la librería y un ejemplo básico de envío/recepción.

Conexión del MCP2515 a Arduino

El módulo MCP2515 utiliza comunicación SPI, así que lo conectas a los pines SPI de Arduino: CS al pin 10 (por defecto), SCK al 13, MOSI al 11 y MISO al 12 en un Uno. Alimenta el módulo con 5 V y tierra. Para el lado del bus CAN, conecta CANH y CANL a tus líneas de bus; si estás probando con dos módulos, conecta CANH a CANH y CANL a CANL. Agrega una resistencia de terminación de 120 ohmios en cada extremo del bus para evitar reflejos.

Instalación de la librería CAN

La librería más común es MCP_CAN de coryj Fowler, disponible en el Gestor de Librerías de Arduino. Busca 'MCP_CAN' e instálala. Después de la instalación, incluye la librería en tu sketch e inicializa el controlador CAN con el pin CS SPI correcto y la velocidad en baudios, típicamente 500 kbps para OBD-II automotriz.

Envío y recepción de tramas CAN

Para enviar una trama, usa sendMsgBuf(id, ext, len, buf). Para recibir, verifica CAN_MSGAVAIL con checkReceive() y lee con readMsgBuf(). El MCP2515 maneja el protocolo CAN de bajo nivel, por lo que tu código solo trabaja con IDs de mensaje y bytes de datos. Recuerda que CAN es de difusión: cada nodo ve todos los mensajes, y filtras por ID en el software.

Configuración paso a paso

  1. Conecta el hardware: Cablea el módulo MCP__XSP_2f3933cf__ a Arduino: VCC a 5 V, GND a GND, CS al pin 10, SCK al 13, MOSI al 11, MISO al 12. Conecta CANH y CANL a tu bus. Verifica que no hayas intercambiado MOSI y MISO; es un error común.
  2. Instala la librería MCP_CAN: Abre el Gestor de Librerías de Arduino, busca 'MCP_CAN' e instala la última versión. Inclúyela en tu sketch con #include . Si no se encuentra la librería, revisa la ortografía y tu conexión a internet.
  3. Inicializa el controlador CAN: Crea un objeto MCP_CAN con el pin CS (ej., MCP_CAN CAN0(10)). En setup(), llama a CAN0.begin(CAN_500KBPS) y verifica el valor de retorno. La llamada begin() devuelve CAN_OK (0) en caso de éxito; si no, revisa el cableado y la velocidad en baudios.
  4. Envía un mensaje CAN: Prepara un búfer de datos y llama a CAN0.sendMsgBuf(0x123, 0, 8, data); donde 0x123 es el ID del mensaje y 8 es la longitud de los datos. Asegúrate de que el ID no entre en conflicto con otros nodos en el bus.
  5. Recibe mensajes CAN: En loop(), verifica si hay un mensaje disponible con CAN0.checkReceive() == CAN_MSGAVAIL, luego léelo con CAN0.readMsgBuf(&len, buf). Si no ves mensajes, verifica que el bus tenga la terminación adecuada y que todos los nodos compartan la misma velocidad en baudios.

Datos del producto

  • Módulo de bus CAN MCP2515 con receptor TJA1050 Módulo SPI: Ideal para monitoreo y control de OBDII / bus CAN para automóviles Este módulo está listo para diagnósticos automotrices, por lo que puedes conectarte al puerto OBD-II de un vehículo o construir nodos CAN personalizados para monitoreo y control.

Shop Related Products

Módulo MCP2515 Bus CAN con receptor TJA1050 y SPI

Módulo MCP2515 Bus CAN con receptor TJA1050 y SPI

$2.70 $3.85

Shop Now