An Arduino library for sending and receiving data using CAN bus.
- Microchip MCP2515 based boards/shields
- Espressif ESP32's built-in SJA1000 compatible CAN controller with an external 3.3V CAN transceiver
Microchip MCP2515 | Arduino |
---|---|
VCC | 5V |
GND | GND |
SCK | SCK |
SO | MISO |
SI | MOSI |
CS | 10 |
INT | 2 |
CS
and INT
pins can be changed by using CAN.setPins(cs, irq)
. INT
pin is optional, it is only needed for receive callback mode. If INT
pin is used, it must be interrupt capable via attachInterrupt(...)
.
NOTE: Logic level converters must be used for boards which operate at 3.3V.
Requires an external 3.3V CAN transceiver, such as a TI SN65HVD230.
CAN transceiver | ESP32 |
---|---|
3V3 | 3V3 |
GND | GND |
CTX | 5 |
CRX | 4 |
CTX
and CRX
pins can be changed by using CAN.setPins(rx, tx)
.
As this is a fork of https://github.com/sandeepmistry/arduino-CAN with additional patches, you have to use git to install this version of the library:
cd ~/Documents/Arduino/libraries/ # ~/Arduino/libraries on Mac OS
git clone https://github.com/timurrrr/arduino-CAN CAN
See API.md.
See examples folder.
This library is licensed under the MIT Licence.