/* CAN Bus Sender - see http://www.technoblogy.com/show?4H7H David Johnson-Davies - www.technoblogy.com - 30th August 2023 CC BY 4.0 Licensed under a Creative Commons Attribution 4.0 International license: http://creativecommons.org/licenses/by/4.0/ */ #include CANSAME5x CAN; void setup() { pinMode(LED_BUILTIN, OUTPUT); pinMode(PIN_CAN_STANDBY, OUTPUT); digitalWrite(PIN_CAN_STANDBY, false); // turn off STANDBY pinMode(PIN_CAN_BOOSTEN, OUTPUT); digitalWrite(PIN_CAN_BOOSTEN, true); // turn on booster // start the CAN bus at 250 kbps if (!CAN.begin(500E3)) { digitalWrite(LED_BUILTIN, HIGH); // Error - light LED for(;;); } } void loop() { // Send standard packet: id is 11 bits, packet 8 bytes of binary data CAN.beginPacket(0x765); for (int i=0; i<8; i++) CAN.write(i); CAN.endPacket(); // Send standard packet: id is 11 bits, packet 8 bytes of ASCII data CAN.beginPacket(0x432); CAN.print("Testdata"); CAN.endPacket(); // Send standard RTR packet: id is 11 bits, DLC (Data Length Code) is 6, no data CAN.beginPacket(0x789, 6, true); CAN.endPacket(); // Send extended packet: id is 29 bits, packet 8 bytes of binary data CAN.beginExtendedPacket(0x12345678); for (int i=0; i<8; i++) CAN.write(i+0x80); CAN.endPacket(); // Send extended packet: id is 29 bits, packet 8 bytes of ASCII data CAN.beginExtendedPacket(0x12345678); CAN.print("Extended"); CAN.endPacket(); // Send extended RTR packet: id is 29 bits, DLC (Data Length Code) is 7, no data CAN.beginExtendedPacket(0x09876543, 7, true); CAN.endPacket(); digitalWrite(LED_BUILTIN, HIGH); delay(1000); digitalWrite(LED_BUILTIN, LOW); delay(4000); }