Controlando velocidade de motor DC com Arduino e Potenciômetro – Projeto

Controle de velocidade de motor DC com Arduino e Potenciômetro

Por Fábio dos Reis

Em nosso projeto anterior mostramos como acionar um pequeno motor DC usando o Arduino, transístor e um relé. Agora, vamos dar um passo adiante, criando um controle de velocidade para o motor, por meio de um potenciômetro.

Podemos controlar a velocidade de um motor variando a tensão aplicada a ele. Quanto menor a tensão, nais devagar o motor gira, e aumentando a tensão, ele passa a girar mais rápido. Para variar a tensão podemos usar um potenciômetro, funcionando como um divisor de tensão.

Porém, essa não é a técnica mais adequada para controlar a velocidade de motores de corrente contínua, pois é muito ineficiente – uma grande quantidade de energia é perdida na forma de calor dissipado pela resistência do potenciômetro. Uma forma melhor é usar a técnica de PWM para controlar a quantidade de energia que irá acionar o motor.

Para simplificar um pouco o circuito, iremos usar apenas o transistor para chavear o motor, sem o uso do relé. O transistor irá controlar a velocidade de rotação do motor por meio do controle de corrente que o atravessa, usando um sinal PWM fornecido pelo Arduino, por meio da função analogWrite().

O ciclo ativo (duty cicle) do sinal PWM será, por sua vez, controlado por um potenciômetro, que poderemos ajustar para variar a velocidade do motor.

Vamos à listagem de materiais necessários:

Lista de materiais:

  • 1 Arduino Uno
  • 1 Potenciômetro de 1kΩ
  • 1 Resistor de 1kΩ
  • 1 Transistor 2N2222 (NPN) ou equivalente
  • 1 Diodo 1N4004 ou equivalente
  • 1 Fonte de 6 a 9V (dependendo do motor controlado)
  • 1 Motor DC 6 a 9V
  • Matriz de contatos
  • Fios diversos

Diagrama esquemático do circuito

A seguir temos o diagrama esquemático de nosso projeto. Note que o resistor R1 está conectado ao pino 6 do Arduino, que é capaz de fornecer o sinal PWM necessário. Porém, nem todos os pinos digitais do Arduino fornecem saída em PWM, e você deve prestar atenção nesse detalhe, pois se usar um pino errado, o controle de velocidade não será possível. 

Confira a pinagem de um Arduino Uno aqui, para descobrir quais pinos podem fornecer saída PWM.

Como controlar velocidade de motor DC com Arduino e potenciômetro

Código do sketch

A seguir temos o código-fonte de nosso sketch. Trata-se de um código bem simples, no qual declaramos duas constantes, MOTOR e POT para ajustarmos os pinos de ligação do motor e do potenciômetro, respectivamente, e uma variável valor que irá receber o valor lido a partir do potenciômetro.

const int MOTOR = 6;
const int POT = 0;
int valor = 0;

void setup() {
  pinMode(MOTOR, OUTPUT);
}

void loop() {
  valor = analogRead(POT);
  valor = map(valor,0,1023,0,255);
  analogWrite(MOTOR,valor);
}

Ajustamos o pino do motor para ser saída de sinal, e na função loop() realizamos a leitura do valor atual da tensão fornecida a partir do divisor de tensão formado com o potenciômetro. Esse valor é mapeado para o intervalo entre 0 e 255, que é o intervalo de valores válidos para o PWM (pois a entrada analógica fornece valor de tensão em resolução de 10 bits, portanto, entre 0 e 1023), e, finalmente, o valor lido e mapeado é enviado, via PWM, para o controle eletrônico do motor, via transistor no circuito.

Testando o circuito

Após montar e revisar o circuito, e criar o código e enviá-lo para o Arduino, basta ligar a fonte do motor, e girar o eixo do potenciômetro para ver o motor girar com maior ou menor velocidade.

Caso o motor não gire, ou não mude de velocidade ao rotacionar o potenciômetro, verifique tanto as ligações na matriz de contatos quanto o código-fonte do circuito.

A imagem a seguir mostra o circuito de controle de velocidade de motor DC com Arduino montado em matriz de contatos:

Controle de velocidade de motor DC com arduino e transistor

Em nosso próximo projeto vamos controlar a direção de rotação do motor DC, usando uma ponte H.

Até mais!

Sobre Fábio dos Reis (1273 Artigos)
Fábio dos Reis trabalha com tecnologias variadas há mais de 25 anos, tendo atuado nos campos de Eletrônica, Telecomunicações, Programação de Computadores e Redes de Dados. É um entusiasta de Unix, Linux e Open Source em geral, adora Eletrônica e Música, e estuda idiomas, além de ministrar cursos e palestras sobre diversas tecnologias em São Paulo e outras cidades do Brasil.
Contato: Website

2 Comentários em Controlando velocidade de motor DC com Arduino e Potenciômetro – Projeto

  1. Bom dia eu gostaria de saber mais sobre o Kali Linux gostaria de fazer o curso Meus movimentos dos braços e das mãos são limitados tem como eu instalar teclado virtual no Kali Linux

  2. nazareno mariano simoes // 25/09/2017 em 8:03 // Responder

    Ola bom dia!gostaria de saber qual arduino posso comprar ?e acessórios que posso reduzir á velosidade de um motor de 110vts ?

2 Trackbacks & Pingbacks

  1. Controlando o brilho de um LED com Arduino e controle HScrollBar em C# - Bóson Treinamentos em Tecnologia
  2. Controlando direção de rotação de um motor DC com Arduino e Ponte H - Bóson Treinamentos em Tecnologia

Escreva um comentário

Seu e-mail não será divulgado


*