車両のCAN信号を読む為にArduinoで使えるCAN BUS シールドを購入しました。
SFE-DEV-13262
https://www.switch-science.com/catalog/2493/
ソフトはArduionoが無償で提供してくれているAPI使いました。
https://github.com/Seeed-Studio/CAN_BUS_Shield
しかし
ID: 0 Data: ID: 0 Data: ID: 0 Data: ID: 0 Data: ID: 0 Data:
と表示されたままCANが表示されません。
ソースは以下の通りです。
C
1// ライブラリヘッダのインクルード 2#include <mcp_can.h> 3#include <SPI.h> 4 5//設定値 6#define CS_PIN (10) // CSを10ピンとする(変更可能) 7#define INT_PIN (9) // INTを9ピンとする(変更可能) 8 9long unsigned int rxId; 10unsigned char len = 0; 11unsigned char rxBuf[8]; 12 13MCP_CAN CAN0(CS_PIN); 14 15void setup() { 16 Serial.begin(115200); 17 CAN0.begin(CAN_STDID, CAN_500KBPS, MCP_8MHZ); // CANの通信速度を500kbpsにする 18 pinMode(INT_PIN, INPUT); // 割り込みのためのピンを設定 19 CAN0.setMode(MCP_NORMAL); 20 Serial.println("MCP2515 Library Receive Example..."); 21} 22 23byte data[8] = {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07}; 24 25void loop(){ 26 //受信 27 if(!digitalRead(INT_PIN)) { // 受信割り込みが発生したら、CANデータをReadする 28 CAN0.readMsgBuf(&rxId, &len, rxBuf); 29 Serial.print("ID: "); 30 Serial.print(rxId, HEX); 31 Serial.print(" Data: "); 32 for(int i = 0; i<len; i++) { 33 if(rxBuf[i] < 0x10) { 34 Serial.print("0"); 35 } 36 Serial.print(rxBuf[i], HEX); 37 Serial.print(" "); 38 } 39 Serial.println(); 40 } 41}
D-SUB9のピン配列はこちらを参考にしました。
ご存知の方がおりましたら是非ご回答をお願いいたします。

回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/06/27 05:56