Stap 2: Zie dit instructable in actie
Ive gemaakt een voorbeeld prototype op youtube van dit.
Het controleert de CAN-BUS voor het bericht dat de lichten ingeschakeld, en klik vervolgens DigitalWrite naar de pin van uw keuze.
IO pin van de Arduino is aangesloten op een 8Channel relais boord die kan worden gebruikt voor het inschakelen van accessoires.
In de video ben ik het controleren van de estafette door te draaien op de belangrijkste balken.
Geniet van! Gelukkig CAN-BUS hacken!
Meer informatie over dit project kan worden bekeken in deze forumthread op techtinker.co.za
http://techtinker.co.za/forum/viewtopic.php?f=14&t...
De Code van de Arduino.
#include <br>#include "mcp_can.h"
INT32U canId = 0x000;
unsigned char len = 0; unsigned char buf[8]; char str[20];
String CanMessage=""; int HeadLightsDetected=0; int RelayCHN01=7;
void setup() { //INIT RELAY PIN pinMode(RelayCHN01, OUTPUT); //TEST RELAY PIN TESTRElay(); Serial.begin(115200);
START_INIT:
if(CAN_OK == CAN.begin(CAN_125KBPS)) { 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() { if(CAN_MSGAVAIL == CAN.checkReceive()) { CAN.readMsgBuf(&len, buf); CanMessage=""; canId = CAN.getCanId(); //Detect Main Beam HeadLisghts if (canId==680) { //Build Complete Message Without CAN ID From BUS for(int i = 0; i
void TESTRElay() { digitalWrite(RelayCHN01, HIGH); delay(200); digitalWrite(RelayCHN01, LOW); delay(200); digitalWrite(RelayCHN01, HIGH); delay(200); digitalWrite(RelayCHN01, LOW); delay(200); digitalWrite(RelayCHN01, HIGH); delay(200); digitalWrite(RelayCHN01, LOW); delay(200); digitalWrite(RelayCHN01, HIGH); delay(200); digitalWrite(RelayCHN01, LOW); delay(200);
}