Hallo Arduino-Freunde,
ich heiße Jan und mache gerade meine ersten Arduino "Gehversuche". Ich habe vor auf dem CAN Bus eines Fahrzeugs auf Knopfdruck 6 Frames zu senden. Es handelt ein 500kBaud Standard Frame (11Bit ID) Highspeed-CAN.
Als Hardware habe ich von der Firma Longan-Labs den CANbed v1.2 beschafft. Dieser ist für meinen Einsatz denke ich die idealste, schlankste Lösung.
In der Bibliothek war ein Beispiel zum Senden einer Botschaft. Jetzt ist das für mich leider etwas undurchsichtig und ich weiß nicht recht wo ich meine Daten entsprechend einfügen muss. Und zudem noch wie ich meinen Taster an einem Digitaleingang in die Operation einfüge.
Dies ist das Script:
// send a frame from can bus
#include <SPI.h>
#include "mcp_can.h"
#include <mcp_can.h>
#include <SPI.h>
const int SPI_CS_PIN = 17; // CANBed V1
// const int SPI_CS_PIN = 3; // CANBed M0
// const int SPI_CS_PIN = 9; // CAN Bus Shield
MCP_CAN CAN(SPI_CS_PIN); // Set CS pin
void setup()
{
Serial.begin(115200);
while(!Serial);
while (CAN_OK != CAN.begin(CAN_500KBPS)) // init can bus : baudrate = 500k
{
Serial.println("CAN BUS FAIL!");
delay(100);
}
Serial.println("CAN BUS OK!");
}
unsigned char stmp[8] = {0, 0, 0, 0, 0, 0, 0, 0};
void loop()
{
// send data: id = 0x00, standrad frame, data len = 8, stmp: data buf
stmp[7] = stmp[7]+1;
if(stmp[7] == 100)
{
stmp[7] = 0;
stmp[6] = stmp[6] + 1;
if(stmp[6] == 100)
{
stmp[6] = 0;
stmp[5] = stmp[6] + 1;
}
}
CAN.sendMsgBuf(0x00, 0, 8, stmp);
delay(100); // send data per 100ms
}
// END FILE
Ich erkenne wie die Baudrate festgelegt wird und die Anzahl der Daten Bytes sowie die Festlegung der ID.
Ich würde gerne an einen Digitaleingang eine Spannung von einem Taster anlegen als Trigger. Wie muss ich das dort einfügen?
Wäre super wenn mir jemand eine Hilfestellung geben kann wie ich meine Frames dort einfüge und die Operation mit meinem Taster
Vielen Dank!
Gruß Jan