COMEÇANDO COM O CAN INTERFACE COM O ARDUINO

COMEÇANDO COM O CAN INTERFACE COM O ARDUINO

Este artigo tem como objetivo fazer com que os leitores explorem como fazer a interface do CAN Bus com o Arduino, que é usado na comunicação de sensores, atuadores e controladores em um carro.

Este projeto ajuda a compreender os insights da interface do protocolo CAN com o Arduino. Controller Area Network ou protocolo CAN é uma metodologia de comunicação entre diversos dispositivos eletrônicos como sistemas de gerenciamento de motor, controle de marcha, suspensão ativa, ABS, controle de iluminação, ar condicionado, airbags, travamento central etc. Para mais aprendizados, consulte este artigo.

Aqui você terá uma ideia sobre a programação do Arduino para fazer interface com o Controlador CAN (MCP2515) para atuar como um transceptor.

DESCRIÇÃO:

Pré-requisitos e equipamentos:

Você precisará do seguinte:

  1. Duas placas Arduino ou clone do Arduino (aqui está um guia se você precisar)

  2. Um módulo Bluetooth 5v TTL-UART.

  3. Arduino IDE para a programação.

  4. Dois MCP2515 PODEm Tranciever.

Características MCP2515 PODE Transiever:

  1. Implementa CAN V2.0B em até 1 Mb/s

  2. Interface SPI de até 10 MHz

  3. Dados padrão (11 bits) e estendidos (29 bits) e quadros remotos

  4. Dois buffers de recebimento com armazenamento de mensagens priorizado

  5. Dois indicadores LED

Demonstração:

Protótipo de circuitos transmissores e receptores baseados em Arduino para comunicação através de interface CAN

Fig. 1: Protótipo de circuitos transmissores e receptores baseados em Arduino para comunicação pela interface CAN

1. Baixe o arquivo de código da biblioteca CAN-BUS para Arduino 1.0 e descompacte-o no diretório de bibliotecas da pasta Arduino IDE. Para a configuração do meu computador, está neste diretório

Bibliotecas XXXarduino-1.0.1

Depois de copiar os arquivos, o diretório

XXXarduino-1.0.1bibliotecasDHT

2. Abra o Arduino-1.0 e navegue até Exemplos onde você encontrará exemplos: recebe_blink, recebe_check, recebe_interrupção, Enviar, Send_blink. Aqui usaremos send e receiver_check para verificar nosso barramento CAN.

Captura de tela da navegação para o código de amostra do receptor CAN no Arduino IDE

Fig. 2: Captura de tela da navegação para o código de exemplo do receptor CAN no Arduino IDE

3. Carregar Envie exemplos para uma placa Arduino. Escolha a placa navegando até: Ferramentas -> Porta serial -> COMX.

Nota: Lembre-se de qual placa você selecionou como nó de “envio” e qual placa você selecionou como nó de “recebimento”.

4. Abra o “Serial Monitor” selecionando a porta Com que você selecionou para o receptor, você receberá a mensagem predefinida “0 1 2 3 4 5 6 7” que é enviada do nó “send”. Isso pode ser visto na imagem a seguir.

Captura de tela da porta serial do Arduino recebendo mensagens predefinidas pela interface CAN

Fig. 3: Captura de tela da porta serial do Arduino recebendo mensagens predefinidas pela interface CAN

Funções na biblioteca CAN:

1. Defina a taxa de transmissão

Para inicializar a taxa de transmissão do sistema CAN Bus, use as seguintes funções.

As taxas de transmissão disponíveis são:

CAN_5KBPS, CAN_10KBPS, CAN_20KBPS, CAN_40KBPS, CAN_50KBPS, CAN_80KBPS, CAN_100KBPS, CAN_125KBPS, CAN_200KBPS, CAN_250KBPS, CAN_500KBPS e CAN_1000KBPS

2. Verifique Receber

O MCP2515 possui dois modos de verificação de recebimento, um é Polling, onde o código verifica o quadro recebido e o outro modo é o modo de interrupção, onde o pino de interrupção separado é usado para notificar o quadro recebido.

A seguir está o método Polling para obter o quadro recebido.

INT8U MCP_CAN::checkReceive(void);

A função retornará 1 se um quadro for recebido e 0 se nada for recebido.

3. Obtenha o CAN ID

Se você quiser saber o CAN ID do nó remetente quando uma mensagem for recebida, você pode usar a seguinte função.

INT32U MCP_CAN::getCanId(void)

4. Enviar dados

A função abaixo é enviar dados para o barramento:

CAN.sendMsgBuf (ID INT8U, ramal INT8U, len INT8U, data_buf);

Onde,

“eu ia” fornece CAN ID dos nós emissores.

“ext” '0' significa quadro padrão. '1' significa quadro estendido.

“len” fornece o comprimento deste quadro.

“dados_buf” é o conteúdo principal desta mensagem.

Por exemplo, no exemplo 'enviar', temos:

caractere não assinado stmp(8) = {0, 1, 2, 3, 4, 5, 6, 7};

CAN.sendMsgBuf(0x00, 0, 8, stmp); //envia a mensagem 'stmp' para o barramento e informa aos outros dispositivos que este é um quadro padrão de 0x00.

5. Receba dados

A seguinte função é usada para receber dados do barramento:

CAN.readMsgBuf (unsigned char len, unsigned char buf);

“len” fornece o comprimento dos dados.

“bom” é o conteúdo principal desta mensagem.

Protótipo de circuito transmissor CAN baseado em Arduino projetado em uma placa de ensaio

Fig. 4: Protótipo de circuito transmissor CAN baseado em Arduino projetado em uma placa de ensaio

Protótipo de circuito receptor CAN baseado em Arduino projetado em uma placa de ensaio

Fig. 5: Protótipo de circuito receptor CAN baseado em Arduino projetado em uma placa de ensaio

Diagramas de circuito

circuito_30

Vídeo do projeto

Conteúdo Relacionado

ESP32-CAM é um módulo de câmera compacto que combina...
Uma rede de sensores é incorporada em todos os...
O controlador do motor é um dos componentes mais...
A evolução dos padrões USB foi fundamental para moldar...
A SCHURTER anuncia um aprimoramento para sua conhecida série...
A Sealevel Systems anuncia o lançamento da Interface Serial...
A STMicroelectronics introduziu Diodos retificadores Schottky de trincheira de...
Determinar uma localização precisa é necessário em várias indústrias...
O novo VIPerGaN50 da STMicroelectronics simplifica a construção de...
A Samsung Electronics, fornecedora de tecnologia de memória avançada,...
O mercado embarcado tem uma necessidade de soluções de...
Se você desempenhar o papel de um Ventilador transformadorInicialmente...
Você provavelmente já se deparou com o termo 'arrastar'...
Você provavelmente tem um Isolador de suporte Se você...
Você provavelmente já viu permanecer um isolante sente-se em...
Você provavelmente já viu Isoladores de manilha entronizados em...
Vissza a blogba

Hozzászólás írása

Felhívjuk a figyelmedet, hogy a hozzászólásokat jóvá kell hagyni a közzétételük előtt.