本篇選用Arduino UNO 、CAN Bus Shield 做示範
使用CAN Bus Shield 方便與Arduino 進行連接。
CAN Bus Shield 接腳 對應 Arduino
INT ——> 2
MISO ——> 12
MOSI ——> 11
SCK ——> 10
CS ——> 9
在IDE上安裝MCP2515的Library
方法1.
草稿碼→匯入程式庫→管理程式庫
搜尋MCP2515的library → 安裝
方法2.
下載Arduino-Can library
解壓縮 → 放到IDE的libraries資料夾
安裝完後
開啟IDE 範例
介紹一下CAN封包
CAN Controller(MCP2515)將收到的訊息轉成CAN Bus的格式
Transceiver(TJA1050)負責電壓準位轉換
終端電阻120歐姆防止信號反射影響接收
依據你所要連接的單元做選擇
CAN.sendMsgBuf(0x001, 0, 8, stmp); //短ID
實際傳輸
用2塊UNO互傳資料...
第一塊ID = 0x10
第二塊ID = 0x11
第一塊發送出去
byte Mdata0[8] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02}; //Data
CAN0.sendMsgBuf(0x010, 0, 8, Mdata0); //Send
第二塊接收
while (CAN_MSGAVAIL == CAN0.checkReceive())
{
CAN0.readMsgBufID(&id, &len, buf);
if((id) != 16){ // 判斷接收的ID是否正確
Serial.println("WRONG REQUEST");
}
else {
Serial.print(id, HEX);
Serial.print(" [ ");
for(int i=0; i<8; i++)
{
char buffer1[3];
sprintf (buffer1, "%02x", buf[i]);
Serial.print(buffer1);
Serial.print(" ");
}
Serial.println("]");
}
用序列埠監控視窗印出收到的封包 |
緩慢更新中...
沒有留言:
張貼留言