Ref : https://github.com/autowp/arduino-mcp2515


Code Reception
include SPI.H
include mcp2515.h
struct can_frame canMsg;
MCP2515 mcp2515(10);
void setup()
{
Serial.begin(115200);
SPI.begin();
mcp2515.reset();
mcp2515.setBitrate(CAN_500KBPS, MCP_8MHZ);
mcp2515.setNormalMode();
}
void loop()
{
if (mcp2515.readMessage(&canMsg) == MCP2515::ERROR_OK)
{
int x = canMsg.data[0];
int y = canMsg.data[1];
Serial.print(« can_id: »);
Serial.print( canMsg.can_id,HEX );Serial.print( » — « );
Serial.print(« Humi: « );
Serial.print(x);Serial.print( » — « );
Serial.print(« Temp: « );
Serial.println(y);
delay(50);
}
}
Code Emission
include SPI.h
include mcp2515.h
struct can_frame canMsg;
MCP2515 mcp2515(10);
void setup()
{
while (!Serial);
Serial.begin(115200);
SPI.begin();
mcp2515.reset();
mcp2515.setBitrate(CAN_500KBPS, MCP_8MHZ);
mcp2515.setNormalMode();
}
void loop()
{
canMsg.can_id = 0x040;
canMsg.can_dlc = 8;
canMsg.data[0] = 2;
canMsg.data[1] = 5;
canMsg.data[2] = 0x00;
canMsg.data[3] = 0x00;
canMsg.data[4] = 0x00;
canMsg.data[5] = 0x00;
canMsg.data[6] = 0x00;
canMsg.data[7] = 0x00;
mcp2515.sendMessage(&canMsg); //Sends the CAN message
delay(200);
}

