Stap 1: Stap 1: de Code
Hiervoor voor werkzaamheden u moet helaas een schild van het SeeedStudio genaamd het schild van de CAN-BUS. Je krijgt ook ene Skpang maar de onderstaande code zal niet werken voor Skpang tenzij u het licht wijzigt.
Als je al niet weet, moet u ook de SeeedStudion CAN-BUS bibliotheek geladen in de Arduino IDE.
Upload de onderstaande code, hebt u niet van de bibliotheek van de CAN-BUS Shield geladen de hieronder zal meest waarschijnlijk fout uit.
//This Arduino UNO Sketch requires the Seeed CAN-BUS Shield Libraries//https://github.com/yexiaobo-seeedstudio/CAN_BUS_Shield #include #include "mcp_can.h"
INT32U canId = 0x000;
//2024 4 65 12 18 248 185 147
unsigned char len = 0; unsigned char buf[8]; char str[20];
String BuildMessage=""; int MSGIdentifier=0;
void setup() { Serial.begin(38400);
START_INIT:
if(CAN_OK == CAN.begin(CAN_500KBPS)) { 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; } }
void loop() { char rndCoolantTemp=random(1,200); char rndRPM=random(1,55); char rndSpeed=random(0,255); char rndIAT=random(0,255); char rndMAF=random(0,255); char rndAmbientAirTemp=random(0,200); char rndCAT1Temp=random(1,55); //GENERAL ROUTINE unsigned char SupportedPID[8] = {1,2,3,4,5,6,7,8}; unsigned char MilCleared[7] = {4, 65, 63, 34, 224, 185, 147}; //SENSORS unsigned char CoolantTemp[7] = {4, 65, 5, rndCoolantTemp, 0, 185, 147}; unsigned char rpm[7] = {4, 65, 12, rndRPM, 224, 185, 147}; unsigned char vspeed[7] = {4, 65, 13, rndSpeed, 224, 185, 147}; unsigned char IATSensor[7] = {4, 65, 15, rndIAT, 0, 185, 147}; unsigned char MAFSensor[7] = {4, 65, 16, rndMAF, 0, 185, 147}; unsigned char AmbientAirTemp[7] = {4, 65, 70, rndAmbientAirTemp, 0, 185, 147}; unsigned char CAT1Temp[7] = {4, 65, 60, rndCAT1Temp, 224, 185, 147}; unsigned char CAT2Temp[7] = {4, 65, 61, rndCAT1Temp, 224, 185, 147}; unsigned char CAT3Temp[7] = {4, 65, 62, rndCAT1Temp, 224, 185, 147}; unsigned char CAT4Temp[7] = {4, 65, 63, rndCAT1Temp, 224, 185, 147}; if(CAN_MSGAVAIL == CAN.checkReceive()) { CAN.readMsgBuf(&len, buf); canId = CAN.getCanId(); Serial.print("<");Serial.print(canId);Serial.print(",");
for(int i = 0; i
BuildMessage="";
} }