Вы находитесь на странице: 1из 2

CanHacker (lawicel) CAN адаптер на

Arduino + MCP2515
Используется эту Библиотеку для связи с MCP2515
Возможности
Резлизует взаимодействие с CAN шиной через микросхему
MCP2515 по протоколу CanHacker (lawicel).
 передача и прием can фреймов

 поддержка стандартных (11 бит) и расширенных (29 бит)


фреймов
 поддержка remote фреймов (RTR)
 поддержка фильтра по ID (маска + код)

 интерфейс, работающий со Stream: возможность работы с


Serial, SoftwareSerial, Ethernet и другими интерфейсами
 поддерживаемые скорости can шины от 10Kbps до 1Mbps
 поддерживаются модули с разными кварцами - 8, 16, 20 МГц.

По умолчанию установлена частота 16 МГц, используйте


функцию setClock если у вас модуль с другим кварцем.
 поддержка CanHacker (приложение для Windows)
 поддержка CANreader (приложение для Android)

Установка библиотеки
1. Установите библиотеку MCP2515
2. Скачайте ZIP архив https://github.com/autowp/arduino-
canhacker/archive/master.zip
3. В меню Arduino IDE: Sketch -> Include Library... -> Add .ZIP
Library...
4. Перезапустите Arduino IDE, чтобы увидеть "canhacker" в
списке библиотек и примеров
Протестировано с Arduino Nano. На Arduino Uno при работе через
CanHacker для Windows, есть проблема с слишком долгой
перезагрузкой и потерей первой комманды
Использование
Пример
#include <can.h>
#include <mcp2515.h>
#include <CanHacker.h>
#include <CanHackerLineReader.h>
#include <lib.h>

#include <SPI.h>

const int SPI_CS_PIN = 10;


const int INT_PIN = 2;

CanHackerLineReader *lineReader = NULL;


CanHacker *canHacker = NULL;

void setup() {
Serial.begin(115200);
while (!Serial);
SPI.begin();
softwareSerial.begin(115200);

Stream *interfaceStream = &Serial;

canHacker = new CanHacker(interfaceStream, null, SPI_CS_PIN);


lineReader = new CanHackerLineReader(canHacker);

pinMode(INT_PIN, INPUT);
}

void loop() {
canHacker->processInterrupt();
lineReader->process();
}
Протокол
Протокол CanHacker (lawicel) описан в документации к
приложению CanHacker
Библиотека реализует его не полностью. Поддерживаемые
комманды приведены здесь.
Содействие
Приветствуются любые способы участия в коде.