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

PHP 8.4.1: Atualização da API DOM
O PHP, uma das linguagens de programação mais populares...
IA está revolucionando os testes em DevOps
A Inteligência Artificial encontrou seu lugar no desenvolvimento de...
Inteligência Artificial que transforma a Justiça Brasileira
A tecnologia está cada vez mais presente em nosso...
Cachaça criada por Inteligência Artificial custa R$ 697
Nos últimos anos, a Inteligência Artificial (IA) vem revolucionando...
Estratégias comprovadas para manter sua Equipe Remota Produtiva e Focada
O trabalho remoto não é mais uma tendência —...
7 Métodos de Análise de Riscos para Garantir a Segurança de Pessoas, Ativos e Operações
Quando falamos de segurança, o gerenciamento de riscos é...
Como a Inteligência Artificial está Revolucionando a Pesquisa Empresarial
A inteligência artificial (IA) está revolucionando o campo da...
Ascensão da IA Acionável: Transformando Vendas e Operações
A IA está avançando muito. Não estamos mais apenas...
Assistente de Inteligência Artificial: Redução de Custos e Eficiência Empresarial
A evolução tecnológica tem impactado significativamente a forma como...
A Revolução da IA Generativa: Moldando o Futuro da Criatividade e Inovação
Em 2025, a IA generativa está prestes a transformar...
Ascensão da IA Colaborativa: Unindo Forças para um Futuro Mais Inteligente
Em 2025, a colaboração entre humanos e inteligência artificial...
Agentes Autônomos de IA: A Próxima Fronteira da Tecnologia
Em 2025, a promessa de agentes autônomos de IA...
O Papel Transformador da IA nas Redes de Telecomunicações do Futuro
Em 2025, a inteligência artificial (IA) desempenhará um papel...
Inteligência Artificial Preditiva para a Sustentabilidade
A inteligência artificial (IA) está revolucionando a maneira como...
Integração de IA com IoT: Rumo a Dispositivos Inteligentes e Autônomos
Em 2025, a integração entre Inteligência Artificial (IA) e...
Atendimento ao Cliente Proativo com IA: Revolucionando a Experiência do Usuário
A era digital transformou a forma como as empresas...
Logística: Como a IA está Transformando as Operações
A logística é o coração pulsante de qualquer cadeia...
Segurança Cibernética com IA Autônoma: O Futuro da Proteção Digital
A segurança cibernética é um desafio constante em um...
Educação Personalizada com IA: Transformando o Aprendizado do Futuro
A educação está passando por uma transformação significativa, impulsionada...
Automação Inteligente com IA Transformando a Eficiência Operacional
A era da automação inteligente chegou e está transformando...
Retour au blog

Laisser un commentaire

Veuillez noter que les commentaires doivent être approuvés avant d'être publiés.