VELOCÍMETRO USANDO ARDUINO E PROTOCOLO CAN

Resumo:

Este artigo tem como objetivo fazer com que os leitores explorem como o velocímetro funciona nos carros modernos. Aqui você pode ter uma ideia do Barramento CAN que é utilizado na Comunicação de Sensores, Atuadores e Controladores em um carro.

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, airbags, controle de iluminação, ar condicionado, travamento central etc. Para mais aprendizados, consulte este artigo.

Protótipo de velocímetro baseado em Arduino usando interface CAN

Fig. 1: Protótipo de velocímetro baseado em Arduino usando interface CAN

Descrição:

Pré-requisitos e equipamentos:

Você vai 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. LCD, Sensor de Proximidade, Motor DC e Servo Motor.

  4. Arduino IDE para a programação.

  5. Dois PODEM Tranciever.

Aqui para simular a medição de RPM do motor, estamos usando um sensor de proximidade industrial usado para medir a velocidade de objetos giratórios e um motor DC cuja velocidade é controlada pelo Preset.

Sensor de proximidade indutivo:

Para detecção sem contato de alvos metálicos em distâncias inferiores a 50 mm (2 polegadas), sensores de proximidade indutivos são usados ​​principalmente. Esses sensores possuem área de detecção onde um campo eletromagnético alternado é emitido, quando um alvo metálico entra na área de detecção, correntes parasitas são induzidas no alvo, o que resulta em uma mudança de estado na saída do sensor.

Aqui a saída do sensor será alta quando um metal for colocado próximo à área de detecção e vice-versa. Usando isto podemos fazer um arranjo que fornece apenas um pulso alto para cada rotação do motor. Contar os pulsos por um minuto pode fornecer as rotações por minuto.

Medição de velocidade:

Este projeto utiliza um sensor de proximidade indutivo para detectar a presença de um metal. Sempre que um metal se aproxima do sensor, ele pode detectá-lo. Conseqüentemente, esse tipo de sensor pode ser usado para fazer muitas coisas. Por exemplo, se precisarmos detectar quando uma porta está fechada, podemos fixar um metal na porta e o sensor na moldura da porta. Sempre que a porta se fecha, o metal fica próximo ao sensor e assim conseguimos detectar que a porta está fechada.

Este mesmo princípio pode ser usado para fazer um velocímetro para uma bicicleta ou qualquer outro veículo sem contato, fixando um metal na roda e um sensor é colocado em algum lugar no quadro da bicicleta, o tempo necessário para uma revolução pode ser medido contando o intervalo de tempo entre as duas detecções.

A configuração é feita da seguinte forma, um parafuso é conectado à parte rotativa do motor e é projetado a uma pequena distância. O motor é alimentado por fonte de alimentação de 12V.

O sinal fica alto quando o parafuso está próximo do sensor colocado perto do motor.

Os números…

RPM = 60000000/timerrevCalc;

Onde:

60 = segundos em um minuto.

Duração = quantidade de tempo na área de detecção exposta ao metal nos EUA.

1,4574 = o entalhe metálico é 1,4574 vezes menor que o restante da roda, esse número precisa ser calculado e ajustado por aplicação.

60000000 é uma conversão de nós para segundos simples.

Isso parece ser MUITO rápido na leitura de RPM. O RPM é calculado com CADA pulso. Portanto, em vez de usar uma interrupção e ter que esperar o intervalo de interrupção para atualizar os dados, os dados chegam após cada pulso ser cronometrado. Além disso, ao usar interrupções, você tem resolução limitada. Exemplo, 1 pulso contado em 250 ms, então 4 pulsos por segundo ou 240 RPM e 2 pulsos por 250 ms, então 8 pulsos por segundo ou 480 RPM!!! 1 aumento de pulso levará a um aumento de 240 RPM. Para obter uma resolução melhor, você precisa de um intervalo de interrupção mais longo. Mas, ao mesmo tempo, intervalos de interrupção mais longos levarão a uma resposta mais lenta.

Imagem mostrando conexões CAN Bus com velocímetro baseado em Arduino

Fig. 2: Imagem mostrando conexões CAN Bus com velocímetro baseado em Arduino

Conexões para Arduino e Sensor no lado TX:

O sensor usado aqui possui três fios onde, Vermelho e preto são VCC e GND e o fio Verde é a saída Digital do sensor. Conforme afirmado anteriormente, a saída aumentará quando o metal estiver próximo da área de detecção.

O VCC do sensor está conectado a 5V. O GND do sensor está conectado ao pino GND do Arduino. E a saída Vout ou Digital do sensor é conectada ao pino de interrupção do Arduino (pino 2).

Executando o programa:

Carregue o programa TX.ino depois de salvá-lo em seu computador e abra-o no Arduino IDE.

  • Compile o programa no Arduino IDE

A função a seguir é usada para enviar os valores ao barramento CAN. Instruções detalhadas podem ser encontradas aqui.

CAN.sendMsgBuf(0x70,0, 2, stmp);

Recebendo dados CAN e exibindo em um LCD no lado RX:

Carregue o programa RX.ino depois de salvá-lo em seu computador e abra-o no Arduino IDE.

  • Compile o programa no Arduino IDE

A função a seguir é usada para receber os valores do barramento CAN e exibi-los em um LCD. Instruções detalhadas podem ser encontradas aqui.

CAN.readMsgBuf(&len, buf);

Carregando software para Arduino:

Se você é novo no Arduino, pode começar aqui. Você deve começar com o Arduino IDE (Integrated Development Environment) do Arduino. Baixe o código no link abaixo e carregue-o na placa Arduino.

O funcionamento do sistema é o seguinte:

  • O processador DISPLAY que aguarda a mensagem RPM atual enviada pelo processador COLLECTOR pelo barramento CAN.

  • O processador COLLECTOR mede o RPM, formata e envia ao processador DISPLAY pelo barramento CAN.

  • O processador DISPLAY lê a mensagem do barramento CAN e a exibe no LCD que é repetida.​​​​

    Montagem de ferragens:

Imagem mostrando o conjunto do sensor no motor DC para detectar sua velocidade de rotação

Fig. 3: Imagem mostrando o conjunto do sensor no motor DC para detectar sua velocidade de rotação

Imagem mostrando a fiação do sensor de proximidade indutivo

Fig. 4: Imagem mostrando o sensor de proximidade indutivo conectado próximo ao conjunto do motor

Imagem mostrando a fiação do sensor de proximidade indutivo

Fig. 5: Imagem mostrando a fiação do Sensor de Proximidade Indutivo

Imagem típica de sensor de proximidade indutivo

Fig. 6: Imagem típica de Sensor de Proximidade Indutivo

Faça o circuito conforme mostrado no diagrama de circuito. Faça o circuito com as peças selecionadas e conecte os motores ao circuito.

Diagramas de circuito

Diagrama de circuito-Velocímetro baseado em Arduino usando interface CAN

Vídeo do projeto

Conteúdo Relacionado

Voltar para o blog

Deixe um comentário

Os comentários precisam ser aprovados antes da publicação.