top of page
Crescer (fundo transparente)_Negativo_pn
Você sabia que a Crescer ensina, fornece e faz soluções de automação e IoT com Arduino e ESP32?

Fale com um especialista

2.png
3.png
1.png
Foto do escritorCristiano Zanini Nazário

Arduino e ESP32 comunicando via protocolo CAN BUS

Atualizado: 6 de mar.

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.



Sumário


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:

Neste aqui tem o CAN da CPB Nano ou Uno:

Neste tem da CPB32:


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:


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




ícone do whatsapp

Fale com um
especialista:

Mapa do site
Páginas úteis
Conteúdos
Contatos

Sobre a Crescer

Política de privacidade

Perguntas frequentes

E-mail:

comercial@crescerengenharia.com

Telefone:

(51) 3239 0553

Endereço:

José do Patrocínio, nº 701 - Sala 108

Rio Branco, Novo Hamburgo - RS

Redes sociais
  • Whatsapp
  • YouTube
  • LinkedIn
  • Instagram
  • Facebook

 Copyright © Crescer Indústria de Automação 2022. Todos os direitos reservados. Todo o conteúdo do site, todas as fotos, imagens, logotipos, marcas, layout, aqui veiculados são de propriedade exclusiva da Crescer Indústria de Automação. É vedada qualquer reprodução, total ou parcial, de qualquer elemento de identidade, sem expressa autorização. A violação de qualquer direito mencionado implicará na responsabilização cível e criminal nos termos da Lei.

bottom of page