Crescer (fundo transparente)_Negativo_pn

Arduino e ESP32 comunicando via protocolo CAN BUS

Atualizado: 7 de jul.

O CAN Bus é um padrão de comunicação muito aplicado em sistemas veiculares e como em outros tipos de equipamentos, também existem projetos sendo desenvolvidos com Arduino e ESP32 para veículos.

A aplicação do CAN bus não está restrita a veículos, podendo ser aplicada onde for necessário.


Neste post queremos fazer um linha de comunicação entre CPB32 e CPBUno que poderá ser facilmente replicada com módulos de ESP32 e Arduinos Compatíveis.


Avalie-nos no Google para que possamos alcançar e auxiliar cada vez mais pessoas a fazerem seus projetos e produtos! Contamos com você!



Sumário

  1. Hardware

  2. Software


Existem muitos materiais explicando as aplicações, características físicas e de softwares, então vamos nos deter a fazer funcionar o CAN BUS neste artigo.


Abaixo temos um circuito comumente usado no mundo do Arduino para CAN Bus.



Temos 2 formas de encontrar este hardware no mercado, conforme figura abaixo:



Ambas funcionam bem, mas a primeira é mais simples de montar na CPB e também nos Arduinos Uno e Mega.


Um cuidado importante é que a esquerda tem cristal de 16MHz e a da direita de 8MHz e isto deve ser informado no momento da programação, sendo possível usar inclusive uma combinação entre elas, então sempre fique atento ao cristal das placas.



1. HARDWARE


A topologia que implementaremos tem...



Para este teste, usamos um cabo de 8 metros modelo: Cabo CCI 50 1 Par.

Um ponto importante também é que para alguns projetos, será importante usar a CPB32 que é baseada no ESP32 e usa 3,3 volts de alimentação, sendo limitada a 3,6 volts de máximo.


Teríamos 2 formas de compatibilizar um hardware alimentado por 5volts com um hardware de 3,3, a primeira é utilizar conversores de nível lógico nos pinos interconectados, e outra maneira e que será a opção da Crescer, já que o objetivo é prototipar um possível futuro produto e isto é o que faríamos, vamos estudar os CIs que compõem a placa e ver como eles podem ser alimentados.


Fazendo esta avaliação, encontramos que o MCP2515 pode ser alimentado em 3,3 e 5 Volts então não tem problema usar no ESP32, já o MCP2551 da placa preta assim como o TJA1050 da placa azul somente podem usar 5V.


Sendo assim, sempre que formos usar estas placas com a CPB32, faremos as seguintes adaptações, para esta:



Primeiro cortaremos a alimentação do MCP2551 ou TJA1050, sinalizado no traço vermelho...



Depois precisaremos ter um 5 volts disponível para colocar no ponto abaixo, podendo ser no pad do capacitor mesmo:



No caso da CPB32 utilizei o ponto Vin e GND da barra de pinos de Shields e liguei em um conversor que converte 12v para 5v, aí soldei um fio do 5v para o conversor CAN.


E se for esta:



Primeiro faça um corte conforme a linha vermelha abaixo e depois meça continuidade, já que não testei este corte ainda, não pode ter continuidade do 5v até o pino 3 do MCP2551 ou TJA1050.


Para depois também soldar os 5volts no capacitor abaixo:


E por fiz, ambas as placas tem uma estratégia para o resistor de 120 Ohm para os extremos da rede CAN, e neste teste deixamos ambos com o resistor ligado.




2. SOFTWARE


Estando com hardware pronto, vamos para o código, usamos a biblioteca do link https://github.com/autowp/arduino-mcp2515 tanto para CPBnano como a CPB32.


E partimos ambos os códigos do exemplo CAN_write, nossos códigos estão mais comentados e podem ser obtidos em nosso repositório de exemplos.


Neste link tem todos nossos códigos de exemplos:

https://drive.google.com/drive/folders/1bFclLN667SrEDbC_dzOepFDTMhFjO_KZ

Neste aqui tem o CAN da CPB Nano ou Uno:

https://drive.google.com/drive/folders/1EhgIYuLZZ8-cRk8XAIZjGIUuMbmCs-Sk

Neste tem da CPB32:

https://drive.google.com/drive/folders/1hIi_rqkw_NZnsivRQs_hw5NZrRyfUMyf


Quais são os pontos de atenção nos códigos?



O primeiro é o pino que ativa o CAN, que na CPB Nano e Uno é o 10, já na CPB32 é o pino 5.


Depois temos que deixar a mesma velocidade de comunicação para os 2 mas temos que ter atenção no cristal que está na placa de CAN.


Se tudo foi feito corretamente, é para funcionar parecido como o nosso vídeo:




648 visualizações

Posts recentes

Ver tudo