#include #include "mcp_can.h" #include #define DEBUG true #define RST_CAN A3 #define CS_CAN A4 #define IRQ_CAN 8 #define CS_RFID 12 #define LED_BUTTOM 3 #define BUZZER 5 #define BUTTOM 7 #define LAMP 6 #define STATUS_LED 13 #define RST_RFID 11 MCP_CAN CAN(CS_CAN); // Set CS pin MFRC522 mfrc522(CS_RFID, RST_RFID); // Crear instancia del MFRC522 unsigned char flagRecv = 0; void setup() { // initialize the digital pin as an output. pinMode(LED_BUTTOM, OUTPUT); pinMode(BUZZER, OUTPUT); pinMode(LAMP, OUTPUT); pinMode(STATUS_LED, OUTPUT); pinMode(BUTTOM, INPUT); pinMode(RST_CAN, OUTPUT); digitalWrite(BUTTOM, HIGH); digitalWrite(LED_BUTTOM, HIGH); digitalWrite(BUZZER, LOW); digitalWrite(LAMP, LOW); digitalWrite(STATUS_LED, LOW); digitalWrite(RST_CAN, HIGH); Serial.begin(115200); delay(4000); while (CAN_OK != CAN.begin(CAN_500KBPS)) // init can bus : baudrate = 500k { Serial.println("CAN init failed, retry"); delay(100); } attachInterrupt(IRQ_CAN, MCP2515_ISR, FALLING); // start interrupt Serial.println("CAN init ok"); mfrc522.PCD_Init(); //FunciĆ³n que inicializa RFID Serial.println("RFID init ok"); // Wire.setClock(400000); } unsigned char len = 0; unsigned char buf[8]; void loop() { read_buttom(); // if (!auto_mode) pot(); if (mfrc522.PICC_IsNewCardPresent()) { if (mfrc522.PICC_ReadCardSerial()) { Serial.print(F("Card UID:")); printArray(mfrc522.uid.uidByte, mfrc522.uid.size); Serial.println(); // Finalizar lectura actual mfrc522.PICC_HaltA(); } } if (flagRecv) { if(CAN_MSGAVAIL == CAN.checkReceive()) // check if data coming { CAN.readMsgBuf(&len, buf); // read data, len: data length, buf: data buf unsigned long canId = CAN.getCanId(); Serial.println("-----------------------------"); Serial.print("Get data from ID: 0x"); Serial.println(canId, HEX); for(int i = 0; i