Sensor de Velocidade e Arduino: Medindo a Rotação de Motor DC
Medindo Rotação de Motor DC com Sensor de Velocidade Arduino

Medindo a rotação de Motor DC com Sensor de velocidade e Arduino 2

Neste tutorial, vamos mostrar como medir a velocidade de um motor DC utilizando um sensor de velocidade e um Arduino. Vamos explicar os componentes necessários, como funciona o sensor de velocidade, e suas principais aplicações.

sensor de velocidade Arduino

Objetivos

O objetivo principal deste projeto é implementar um sensor de velocidade encoder com Arduino para monitorar a rotação do motor. Dessa forma, iremos contar os pulsos gerados pelo encoder e calcular a velocidade do motor em rotações por minuto (RPM). Além disso, neste tutorial você irá aprender:

  • Controlar a Velocidade do Motor DC: Utilizar um potenciômetro para ajustar a velocidade do motor DC de maneira precisa e eficiente. Converter o valor analógico lido do potenciômetro em um valor PWM, que será usado para controlar a potência enviada ao motor.
  • Fornecer Feedback em Tempo Real: Exibir os valores do potenciômetro, PWM e RPM no monitor serial para monitoramento e ajuste em tempo real. Garantir que o sistema responda rapidamente a mudanças no valor do potenciômetro, ajustando a velocidade do motor de forma dinâmica.

Materiais Necessários

Para seguir com este tutorial, você irá precisar dos seguintes componentes:

Materiais Necessários

Além dos itens mencionados acima, você também precisará ter a Arduino IDE instalada em seu computador ou uma conta cadastrada na Arduino Cloud.

Como funciona o Sensor de Velocidade?

O sensor de velocidade é composto por dois componentes principais: o MOCH22A e o LM393.

Sensor de Velocidade Arduino

O MOCH22A é um sensor optoeletrônico que consiste em um emissor de luz (LED infravermelho) e um detector de luz (fototransistor) posicionados em frente um do outro com uma abertura entre eles. O funcionamento segue os seguintes passos:

  • Emissor de Luz: O LED infravermelho emite luz continuamente.
  • Detecção: Quando uma abertura no disco passa pelo caminho da luz, a luz do LED atinge o fototransistor, que gera um sinal elétrico.
  • Sinal de Interrupção: Quando uma parte opaca do disco bloqueia a luz, o sinal do fototransistor é interrompido.

Este processo gera um sinal pulsante conforme o disco gira.

Já o LM393 é um comparador de tensão que converte o sinal analógico do fototransistor em um sinal digital limpo. Ele compara a tensão do sinal do fototransistor com uma tensão de referência.

Dessa forma, o funcionamento do sensor de velocidade segue o seguinte princípio:

princípio do sensor

  • Geração de Pulsos: Conforme o disco do encoder gira, as aberturas e partes opacas do disco passam pelo caminho da luz do MOCH22A, gerando um sinal pulsante no fototransistor.
  • Sinal Analógico para Digital: O LM393 converte o sinal pulsante em um sinal digital limpo de pulsos.
  • Medição de Velocidade: O número de pulsos por unidade de tempo é contado para determinar a velocidade do movimento rotacional do disco. A frequência dos pulsos está diretamente relacionada à velocidade de rotação do eixo ao qual o disco está acoplado.

Para que serve um Sensor de Velocidade?

Um sensor de velocidade para Arduino é um dispositivo usado para medir a velocidade de um objeto em movimento, como um motor ou uma roda. Esses sensores são essenciais em várias aplicações de controle e automação devido à necessidade de monitorar e ajustar a velocidade para otimizar desempenho, segurança e eficiência. 

Aqui estão algumas das principais finalidades e aplicações de um sensor de velocidade:

  • Controle de Motores: Permite medir a velocidade de rotação de motores DC, motores de passo e outros tipos de motores. Ajuda a ajustar a velocidade dos motores em tempo real, garantindo que operem dentro dos parâmetros desejados.
  • Automação Industrial: Usado para monitorar e controlar a velocidade de maquinários e sistemas automatizados. Essencial para processos que requerem precisão e consistência, como linhas de produção e sistemas de transporte.
  • Robótica: Crucial para controlar a velocidade e a movimentação precisa de robôs. Garante que robôs executem tarefas de forma coordenada e eficiente.
  • Veículos e Velocímetros: Utilizado em sistemas de medição de velocidade de veículos, exibindo essa informação no painel para o motorista. Integrado em sistemas de controle de tração e estabilidade para melhorar a segurança do veículo.
  • Sistemas de Navegação e Controle de Voo: Empregado em aeronaves para medir a velocidade e ajudar na navegação e controle de voo. Importante para evitar situações de perda de sustentação (stall) e para manter a estabilidade do voo.
  • Turbinas Eólicas e Energia Renovável: Monitora a velocidade de rotação das hélices das turbinas eólicas. Permite ajustes para maximizar a geração de energia e proteger o equipamento em condições adversas de vento. Especificamente, um sensor de velocidade do vento Arduino pode ser usado para medir a velocidade do vento, fornecendo dados essenciais para otimizar a operação das turbinas e aumentar a eficiência na geração de energia.
  • Transporte Ferroviário: Utilizado para monitorar e controlar a velocidade de trens. Garante operações seguras e eficientes, evitando acidentes e melhorando o desempenho.

Em resumo, um sensor de velocidade para Arduino é um componente versátil e indispensável em diversos projetos e aplicações onde a medição e o controle preciso da velocidade são críticos. Ele permite não apenas a coleta de dados de velocidade, mas também a implementação de feedback em tempo real para ajustar e otimizar sistemas de acordo com as necessidades específicas.

Como conectar o Sensor de Velocidade ao Arduino?

O sensor de velocidade possui quatro pinos principais: VCC, GND, D0 e AO Veja a descrição de cada um:

  • VCC: Alimentação do sensor (5V).
  • GND: Conexão de terra.
  • D0: Saída digital
  • A0: Saída analógica

Para conectar o sensor de velocidade ao Arduino, siga o passo a passo abaixo:

  • Conecte o VCC do sensor de velocidade ao 5V do Arduino
  • Conecte o GND do sensor de velocidade ao GND do Arduino
  • Conecte a saída digital D0 ao Pino digital D2 do Arduino

Como conectar o Sensor de Velocidade

O código abaixo configura o pino digital 2 como entrada para ler os pulsos do sensor de velocidade e calcula a velocidade com base na contagem de pulsos.

Rotação de um motor DC com sensor de velocidade e Arduino: Circuito

O esquema de ligações para medir a rotação de um motor DC com sensor de velocidade e Arduino está representado abaixo:

Circuito de Rotação de um motor DC com sensor de velocidade

As ligações realizadas são as seguintes:

Sensor de Velocidade <-> Arduino Uno R4 Minima
VCC<-> 5V
GND <-> GND
D0 <-> D2

Motor DC <-> Mini Driver de Motor
Pino 1 <-> Motor A+
Pino 2 <-> Motor A-

Mini Driver de Motor <-> Arduino Uno R4 Minima
“+” <-> 5V
“-” <-> GND
IN1 <-> D3
IN2 <-> D4

Potenciômetro 100K <-> Arduino Uno R4 Minima
Pino 1 <-> 5V
Pino 2 <-> A0
Pino 3 <-> GND

Rotação de um motor DC com sensor de velocidade e Arduino: Código

para medir a rotação de um motor DC com sensor de velocidade e Arduino, carregue o código abaixo para a placa:

Rotação de um motor DC com sensor de velocidade e Arduino: Funcionamento

Este projeto controla a velocidade de um motor DC utilizando um potenciômetro e mede a velocidade do motor em RPM (rotações por minuto) usando um sensor de velocidade. A leitura do potenciômetro ajusta a velocidade do motor, e o encoder fornece feedback sobre a velocidade atual do motor.

 

O valor lido do potenciômetro ajusta a velocidade do motor. O valor analógico lido do potenciômetro é convertido em um valor PWM. Esse valor PWM é usado para controlar a potência enviada ao motor, ajustando sua velocidade.

O encoder gera pulsos conforme o motor gira. Esses pulsos são contados por uma interrupção configurada no pino do encoder. A cada segundo, o número de pulsos é usado para calcular a velocidade do motor em RPM. O cálculo leva em consideração o número de pulsos por rotação do disco do encoder (16 pulsos por rotação). Este projeto fornece um exemplo prático de controle e feedback em sistemas de automação, onde a velocidade de um motor precisa ser ajustada e monitorada com precisão.


Se você tiver dúvidas, sugestões ou experiências para compartilhar, fique a vontade para deixar um comentário abaixo. E para não perder nenhum conteúdo como este, não deixe de nos seguir no Instagram.

Faça seu comentário

Acesse sua conta e participe

2 Comments

  1. Olá, qual o rpm máximo que este dispositivo com este código fonte pode ler?
    pois a velocidade de resposta interfere na medição e resposta, vejo que o motor que esta usando tem um redutor e o rpm esta baixo coisa de 20 voltas minuto, seria possível nesta configuração “ler” velocidades maiores como 1800 RPM (que é a velocidade média de um motor AC Trifásico de 4 polos)?
    Sei que se colocar algumas polias, engrenagens ou pegando em pontos diferentes, usando um fator multiplicador e claro conhecendo o diâmetro dos eixos, polias e engrenagens (e seu perímetro claro), pode-se chegar com este código a uma adaptação até funcional, mas gera mais peças, partes e cálculos, que gostaria de dispensar.

    1. Olá!

      Sim, com essa configuração o Arduino consegue ler velocidades bem maiores que as mostradas no exemplo do tutorial. No código, o sensor gera 16 pulsos por rotação, então para um motor a 1800 RPM temos cerca de 480 pulsos por segundo, o que é fácil de processar. O Arduino lida tranquilamente com milhares de pulsos por segundo.

      Abraço!
      Rosana – Equipe MakerHero