Det er canOpen og nej, der er ikke noget du skal være bekymret over så længe du ikke sende data til netværket.
Husk at køre dit canbus shield med 125 KBPS. Der sker ikke noget hvis du køre hurtigere eller langsommere. Du vil blot ikke se noget data som du kan bruge.
Hvilke canbus shield har du?
Du kan måske bruge denne kode
Kode: Vælg alt
#include <SPI.h>
const unsigned long BAUD_RATE = 115200; // Set BR på Serial porten
// Opsæt CanBUS
#include "mcp_can.h" // CanBUS Lib.
INT32U canId = 0x000; // Sæt CanBUS modul ID
MCP_CAN CAN(9); // Sæt CanBUS interface PIN - Normalt 9 eller 10
unsigned char len = 0; // Til LEN af CanBUS data
unsigned char buf[8]; // Buffer til CanBUS data
char str[20]; // CanBUS LEN af hele data.
int fanspeed;
void setup() //
{
Serial.begin(BAUD_RATE);
// Opret forbindelse til CanBUS
Serial.println ("initialiser CanBUS kortet");
START_INIT:
if (CAN_OK == CAN.begin(CAN_125KBPS))
{
Serial.println ("CanBUS OK");
}
else
{
Serial.println ("CanBUS Fejl");
delay(100);
goto START_INIT;
}
}
void loop()
{
if (CAN_MSGAVAIL == CAN.checkReceive())
{
CAN.readMsgBuf(&len, buf);
canId = CAN.getCanId();
/* <- Fjern denne linje hvis du vil se alt data
// Udskriv alt data Ex.
Serial.print(canId);
Serial.print(" : ");
for(int i = 0; i<len; i++)
{
Serial.print(buf[i]);
Serial.print("\t");
}
Serial.println();
// Udskriv alt data
Fjern denne linje hvis du vil se alt data -> */
// Check data Ex.
/* <- Fjern denne linje hvis du vil se Check data
// Fyr ON eller Pause START - Update = 250ms
if (canId == 464)
{
if (buf[0] > 0)
{
Serial.println("Fyr On - ");
}
else
{
Serial.println("Fyr Off - ");
}
}
// Fyr ON eller Pause STOP
// FanSpeed START - Update = 2000 ms
if (canId == 513)
{
fanspeed = omregn_bit_xy( buf[3], buf[2]);
fanspeed = fanspeed / 25;
Serial.print("Fan Speed : ");
Serial.println(fanspeed);
}
// FanSpeed STOP
Fjern denne linje hvis du vil se Check data -> */
// Check data Ex.
} // STOP IF CANBUS OK
} // STOP LOOP
int omregn_bit_xy (int x, int y) // Omregner data 1 og 2 til summa.
{
int summa_xy = ( x * 256 ) + y;
return summa_xy;
}
Da jeg er i USA på job lige nu, så husk hvis du har nogle spørgsmål at jeg er 6 timer efter DK tid.
//Kim