arduino-CAN
arduino-CAN copied to clipboard
An Arduino library for sending and receiving data using CAN bus.
Arduino CAN
An Arduino library for sending and receiving data using CAN bus.
Compatible Hardware
- Microchip MCP2515 based boards/shields
- Espressif ESP32's built-in SJA1000 compatible CAN controller with an external 3.3V CAN transceiver
Microchip MCP2515 wiring
| 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.
Espressif ESP32 wiring
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).
Installation
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
API
See API.md.
Examples
See examples folder.
License
This library is licensed under the MIT Licence.