ArduinoでCAN通信をやってみた。
必要な部品
時間がない人はシールドを買ってくるのが手っ取り早い。
SeeedStudio CAN-BUSシールド V2
https://www.switch-science.com/catalog/3435/
等価の回路を自分で作る方法もある。秋月電子で手に入る部品は下記の通り。
CANコントローラ MCP2515-I/P
https://akizukidenshi.com/catalog/g/gI-12030/
MCP2515は、CAN V2.0Bのスタンドアロンコントローラです。標準・拡張データ、リモートフレームの送受信を行うことができます。MCP2515は2個の受信マスタと6個の受信フィルタを持っていて不要なメッセージをふるい落としホストMCUのオーバーヘッド負荷を減らします。MCUとはSPIで通信します。 |
CANトランシーバ MCP2561-E/P
https://akizukidenshi.com/catalog/g/gI-12483/
Microchip Technology社の第2世代ハイスピードCANトランシーバです。CANプロトコルコントローラと2線式CAN物理バスの間のインターフェイスとして機能します。
ちなみにMCP2515より性能が高くて1チップ化されているものは下記だが、今回入手できなかった。
CANトランシーバー MCP25625
https://akizukidenshi.com/catalog/g/gI-12663/
ハードウェア
ブレッドボードでちょいちょいっと組み立てます。解説は後日書かせていただきます。
ソフトウェア
Arduino IDEでちょいちょいっと書きます。こちらも解説は後日書かせていただきます。
ライブラリ
https://www.arduino.cc/reference/en/libraries/mcp_can/
送信用のプログラム
https://github.com/catalyst-yuki-k/Arduino_sample/tree/main/CAN_bus/CAN_Transmit
受信用のプログラム
https://github.com/catalyst-yuki-k/Arduino_sample/tree/main/CAN_bus/CAN_Receive