Hi, i am trying to get up to 60 nano's to talk to one leonardo, i have purchased some can bus modules, see picture. i have found some code that most people seem to use with the shields but id keeps throwing an error
CAN BUS Shield init fail
Init CAN BUS Shield again
here is the code i found, this is for the send node
// demo: CAN-BUS Shield, send data
#include <mcp_can.h>
#include <SPI.h>
// the cs pin of the version after v1.1 is default to D9
// v0.9b and v1.0 is default D10
const int SPI_CS_PIN = 9
;
MCP_CAN CAN(SPI_CS_PIN); // Set CS pin
void setup()
{
Serial.begin(115200);
START_INIT:
if(CAN_OK == CAN.begin(CAN_500KBPS)) // init can bus : baudrate = 500k
{
Serial.println("CAN BUS Shield init ok!");
}
else
{
Serial.println("CAN BUS Shield init fail");
Serial.println("Init CAN BUS Shield again");
delay(100);
goto START_INIT;
}
}
unsigned char stmp[8] = {0, 1, 2, 3, 4, 5, 6, 7};
void loop()
{
// send data: id = 0x00, standrad frame, data len = 8, stmp: data buf
CAN.sendMsgBuf(0x00, 0, 8, stmp);
delay(100); // send data per 100ms
}
/*********************************************************************************************************
END FILE
*********************************************************************************************************/
so the error is in the argument if(CAN_OK == CAN.begin(CAN_500KBPS))
also most forums suggest that the SPI_CS_PIN may be incorrect but i cannot find any notes on that this is exactly.
send.ino (1.09 KB)