Поръчано в работни дни преди 14:00 ч. = изпратено същия ден и в 98% от случаите пристига на следващия ден. Безплатно връщане 30 дни за размисъл 1 година гаранция

Схема на свързване и примерен код

Ето как да свържеш CAN-bus модул MCP2515 SPI 5V към Arduino UNO или ESP32, с примерен sketch, който можеш да качиш веднага.

Комуникация по CAN шината с MCP2515

Свързва модул MCP2515 за CAN шина към Arduino Uno чрез hardware SPI. Sketch-ът инициализира CAN контролера на 500 kbps, изпраща тестово CAN съобщение на всеки 2 seconds и отпечатва всички получени frames в Serial Monitor.

Схема на свързване: CAN-bus модул MCP2515 SPI 5V на Arduino UNO
Схема на свързване · Кликни, за да увеличиш
Таблица на свързване: CAN-bus модул MCP2515 SPI 5V на Arduino UNO
Таблица на свързване · Кликни, за да увеличиш
CAN_Bus_Communication_with_MCP2515.ino · компилирано и тествано
/*
 * ==================================================================
 *  Generated by Codey.online  —  https://www.codey.online
 * ==================================================================
 *  Project   : CAN Bus Communication with MCP2515
 *  Board     : Arduino UNO (arduino:avr:uno)
 *  Parts     : CAN-bus module MCP2515 SPI 5V
 *  Libraries : mcp_can 1.5.1
 *
 *  Codey Online is an AI-powered browser IDE for Arduino and ESP32.
 *  Describe your project and Codey writes the code, draws the wiring
 *  diagram and uploads it to your board, straight from the browser.
 *  This code is free to use, modify and share, without warranty.
 * ==================================================================
 */

#include <SPI.h>
#include <mcp_can.h>

const byte CAN_CS_PIN = 10;
const byte CAN_INT_PIN = 2;

MCP_CAN CAN(CAN_CS_PIN);

unsigned long lastSend = 0;

void setup() {
  Serial.begin(115200);
  pinMode(CAN_INT_PIN, INPUT);

  // Initialize MCP2515 with standard 8MHz crystal at 500 kbps
  if (CAN.begin(MCP_ANY, CAN_500KBPS, MCP_8MHZ) == CAN_OK) {
    Serial.println(F("MCP2515 initialized successfully!"));
  } else {
    Serial.println(F("MCP2515 initialization failed!"));
    while (1);
  }

  CAN.setMode(MCP_NORMAL);
  Serial.println(F("CAN controller ready in normal mode."));
}

void loop() {
  // Check for received CAN messages
  if (CAN.checkReceive() == CAN_MSGAVAIL) {
    unsigned long rxId;
    byte len = 0;
    byte rxBuf[8];

    CAN.readMsgBuf(&rxId, &len, rxBuf);

    Serial.print(F("RX -> ID: 0x"));
    Serial.print(rxId, HEX);
    Serial.print(F(" DLC: "));
    Serial.print(len);
    Serial.print(F(" Data: "));
    for (byte i = 0; i < len; i++) {
      if (rxBuf[i] < 0x10) Serial.print('0');
      Serial.print(rxBuf[i], HEX);
      Serial.print(' ');
    }
    Serial.println();
  }

  // Send a test packet every 2 seconds
  if (millis() - lastSend >= 2000) {
    lastSend = millis();
    byte txData[4] = {0xDE, 0xAD, 0xBE, 0xEF};
    byte sndStat = CAN.sendMsgBuf(0x100, 0, 4, txData);

    if (sndStat == CAN_OK) {
      Serial.println(F("TX -> Sent frame (ID: 0x100, Data: DE AD BE EF)"));
    } else {
      Serial.println(F("TX -> Error sending message"));
    }
  }
}

Необходими библиотеки: mcp_can 1.5.1

Wiring diagram and example code generated by Codey.online — https://www.codey.online

ESP32 CAN Bus комуникация с MCP2515

Тази схема свързва ESP32 към MCP2515 CAN-bus модул чрез SPI, като използва 4-канален двупосочен level shifter, за да предпази 3.3V логиката на ESP32 от 5V модула. Sketch-ът инициализира CAN контролера на 500 kbps, изпраща тестова CAN data frame на всеки две секунди и извежда всички получени съобщения от CAN bus в Serial Monitor.

Схема на свързване: CAN-bus модул MCP2515 SPI 5V на ESP32 DevKit V1
Схема на свързване · Кликни, за да увеличиш
Таблица на свързване: CAN-bus модул MCP2515 SPI 5V на ESP32 DevKit V1
Таблица на свързване · Кликни, за да увеличиш
ESP32_CAN_Bus_Communication_with_MCP2515.ino · компилирано и тествано
/*
 * ==================================================================
 *  Generated by Codey.online  —  https://www.codey.online
 * ==================================================================
 *  Project   : ESP32 CAN Bus Communication with MCP2515
 *  Board     : ESP32 DEVKIT V1 (esp32:esp32:esp32doit-devkit-v1)
 *  Parts     : CAN-bus module MCP2515 SPI 5V
 *  Libraries : mcp_can 1.5.1
 *
 *  Codey Online is an AI-powered browser IDE for Arduino and ESP32.
 *  Describe your project and Codey writes the code, draws the wiring
 *  diagram and uploads it to your board, straight from the browser.
 *  This code is free to use, modify and share, without warranty.
 * ==================================================================
 */

#include <SPI.h>
#include <mcp_can.h>

const int CAN_CS_PIN = 5;
MCP_CAN CAN0(CAN_CS_PIN);

void setup() {
  Serial.begin(115200);
  while (!Serial);

  // Initialize MCP2515 running at 8MHz clock and 500kbps CAN baud rate
  if (CAN0.begin(MCP_ANY, CAN_500KBPS, MCP_8MHZ) == CAN_OK) {
    Serial.println("MCP2515 Initialized Successfully!");
  } else {
    Serial.println("Error Initializing MCP2515...");
  }

  CAN0.setMode(MCP_NORMAL);
}

void loop() {
  // Prepare sample data payload (8 bytes)
  byte data[8] = {0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88};
  
  // Send CAN message with standard ID 0x100
  byte sndStat = CAN0.sendMsgBuf(0x100, 0, 8, data);
  if (sndStat == CAN_OK) {
    Serial.println("CAN Message Sent Successfully!");
  } else {
    Serial.println("Error Sending CAN Message...");
  }

  // Check for incoming CAN messages
  if (CAN0.checkReceive() == CAN_MSGAVAIL) {
    long unsigned int rxId;
    unsigned char len = 0;
    unsigned char rxBuf[8];
    
    CAN0.readMsgBuf(&rxId, &len, rxBuf);
    
    Serial.print("Received ID: 0x");
    Serial.print(rxId, HEX);
    Serial.print(" Data: ");
    for (byte i = 0; i < len; i++) {
      Serial.print("0x");
      if (rxBuf[i] < 0x10) Serial.print("0");
      Serial.print(rxBuf[i], HEX);
      Serial.print(" ");
    }
    Serial.println();
  }

  delay(2000);
}

Необходими библиотеки: mcp_can 1.5.1

Wiring diagram and example code generated by Codey.online — https://www.codey.online

CAN-bus модул MCP2515 SPI 5V

Модулът MCP2515 CAN-bus е подходящ за Arduino и други проекти с микроконтролери, при които искате да комуникирате с CAN-bus система чрез SPI протокола.

Поддържа CAN V2.0B с комуникационна скорост 1 Mb/s.

Захранващо напрежение: 5V
Интерфейс: управлява се със SPI
Размери: около 2,8 x 4,8 cm

Размери
Дължина: 4cm
Ширина: 2,8cm
Височина: 1,2cm

  • MCP2515
  • 5V захранване
  • SPI интерфейс
  • 2,8 x 4,8 cm

Защо да изберете този продукт?

  • За Arduino – Подходящ за Arduino проекти.
  • CAN V2.0B – Поддържа CAN V2.0B.
  • Висока скорост – Скорост на комуникация до 1 Mb/s.
  • SPI интерфейс – Управляем чрез SPI.
Спецификации
Ширина2,8 cm
Дължина4 cm
Захранващо напрежение5V
Височина1,2 cm
CAN версияV2.0B
Скорост на комуникация1 Mb/s

Често купувани заедно

Общо: € 19,20

Отзиви

Все още няма отзиви.

Напиши отзив
Твоята оценка

Доставка & връщане

Доставка

  • Пратка с track & trace€ 7,70В рамките на 24 часа
  • Вземане от локация на PostNL€ 7,40В рамките на 24 часа
  • Пратка за пощенската кутия€ 3,70В рамките на 2 работни дни
  • Пратка за пощенска кутия 24 часа€ 4,55В рамките на 24 часа
  • Вземане от магазинаБезплатно
Всичко за доставката

Връщане

Не си доволен? Имаш 30 дни след получаването, за да върнеш продукта.

Всичко за връщането

Наскоро разгледани