Communication CAN avec protocole OBD-2

Bonjour à tous !
Je travaille sur un projet où le but final est de permettre la communication entre 2 Arduino (MEGA et UNO) via bus CAN grâce aux modules MCP2515.
Pour cela je souhaite utiliser la librairie mcp_can.h.
J'essaye actuellement de tester les codes fournis par la librairie comme le CAN_loopback.ino , le CAN_send.ino et le CAN_receive.ino . Pour tester ces codes, j'utilise seulement un module MCP2515 et l'arduino MEGA.
Avec le code du CAN_loopback j'obtiens bien le message indiquant que c'est ok :

Message Sent Successfully!
Standard ID: 0x100 DLC: 8 Data: 0xAA 0x55 0x01 0x10 0xFF 0x12 0x34 0x56

Concernant le code du CAN_send.ino, j'obtiens ce message :

Error Sending Message...

Mais lorsque je change CAN0.setMode(MCP_NORMAL); en CAN0.setMode(MCP_LOOPBACK); j'obtiens bien :

Message Sent Successfully!

Je ne comprends pas pourquoi cela ne fonctionne pas en mode normal... Si quelqu'un peut m'éclaircir dessus je suis preneuse.

Et enfin pour le code CAN_receive.ino, j'obtiens ce message même en changeant le mode :

Entering Configuration Mode Successful!
Settingaudrate Successful!
MCP2515 Initialized Successfully!
MCP2515 Library Receive Example...
Entering Configuration Mode Successful!
Setting Baudrate Successful!
MCP2515 Initialized Successfully!
MCP2515 Library Receive Example...

Il n'arrive donc pas à recevoir le message.

C'est la première fois que je travaille sur le CAN et j'aimerais vraiment comprendre où sont mes erreurs et comprendre aussi ce que sont les modes (NORMAL, LOOPBACK...).
Merci pour votre aide ! :slight_smile:
Si vous avez besoin de plus d'informations, n'hésitez pas :wink:
PS: j'ai connecté le cs sur le pin 10 de mon arduino MEGA et le int sur le pin 2

Re-bonjour,
J'ai testé avec une autre librairie : mcp2515.h et l'envoi et la réception du message fonctionnent. Je ne comprends donc toujours pas pourquoi cela ne marchait pas avec l'autre librairie... :thinking:
Malheureusement cette librairie ne propose pas de protocole OBD-2.
Je vais donc implémenter moi-même les PID dont j'ai besoin, sachant que j'aimerais que cela fonctionne pour voiture électrique. Avez-vous des recommandations ou connaissez-vous des librairies compatibles avec la mcp2515.h ?

Merci encore pour votre aide :blush:

Loopback cela veut dire que l'émetteur lit les messages qu'il envoie. Il n'y a pas besoin d'un bus fonctionnel.
Pour send et receive il faudrait qu'il y ait un émetteur et un récepteur sur un bus pour établir un échange.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.