#include <SPI.h>
#include <mcp_can.h>
#define BTN 16
#define LED 16
MCP_CAN mcp2515(5);
void setup() {
pinMode(BTN, INPUT);
pinMode(LED, OUTPUT);
Serial.begin(115200);
if (mcp2515.begin(MCP_ANY, CAN_125KBPS, MCP_16MHZ)) {
Serial.println("MCP2515 success");
} else {
Serial.println("MCP2515 Failed");
while (1);
}
}
void loop() {
byte canData[8];
unsigned long canId;
byte len;
if (!digitalRead(BTN)) {
Serial.println("Button pressed");
canData[0] = 0x01;
Serial.println("Sending message");
mcp2515.sendMsgBuf(0x01, 0, 1, canData);
delay(500);
}
if (mcp2515.readMsgBuf(&canId, &len, canData)) {
if (canId == 0x01 && canData[0] == 0x01) {
digitalWrite(LED, HIGH);
} else {
digitalWrite(LED, LOW);
}
}
}