Controle a velocidade de um motor DC com o Arduino utilizando transistor

Controle a velocidade de um motor DC com o Arduino utilizando transistor 2

Neste tutorial você verá como é possível controlar a velocidade de um motor DC com o Arduino utilizando um transistor.

Os microcontroladores nos dão a possibilidade de controlar diversos atuadores como relés, válvulas e motores. Porém em alguns casos o microcontrolador não consegue interagir diretamente com o atuador dependendo do seu consumo de corrente. como por exemplo um motor DC, que consome uma corrente maior que a fornecida pelo do microcontrolador.

Para que o microcontrolador possa interagir com esse motor DC é necessário utilizar um componente que faz a junção dos dois sem prejudicar o microcontrolador. 

Figura 1 – Arduino, Circuito com TIP122 e Motor DC

Mas que componente é esse? Como eu iria utilizá-lo?  Pois então, através deste post você verá como utilizar o transistor TIP122 para fazer a interação entre um motor DC e um Arduino. Além disso, verá que também é possível controlar a velocidade do motor.

Se interessou? Então continue lendo!

Material necessário

 Para seguir com o tutorial você vai precisar dos seguintes componentes:

O que é o PWM?

O termo PWM que significa Pulse Width Modulation (Modulação em Largura de Pulso), consiste em modular um sinal aplicando somente os estados de ligado e desligado dentro de um período, que através da variação de tempo em estado ligado é possível alterar o valor da tensão média.

Para mais informações, acesse o post “Controle de velocidade de motor DC com PWM no Arduino UNO”.

Funcionamento do Circuito

O circuito basicamente irá controlar a velocidade do motor através do transistor TIP122, chaveando o motor de acordo com o PWM aplicado na base do transistor. Essa variação será alterada pelo  potenciômetro que por sua vez envia o sinal de PWM para a base do transistor através do Arduino.

Projeto completo
Figura 2 – Motor variando velocidade

Montagem do circuito

Com os componentes em mãos vamos à montagem do circuito. Abaixo temos o esquemático eletrônico montado em protoboard.

Obs.: O Arduino será alimentado pela conexão USB do computador, já o motor é alimentado pelas pilhas, isto é necessário por conta do motor utilizar uma corrente acima do que é fornecida pelo Arduino.

Esuqmeático para o motor Dc com Arduino e transistor
Figura 3 – Esquemático Eletrônico

Código

Com o circuito montado vamos ao código que será carregado no Arduino.

#define analogpin A0
#define base_transistor 3

int DutyCycle = 0;
int valor_pot = 0;

void setup()
{
  Serial.begin(115200);
  pinMode(base_transistor,OUTPUT); //Define pino como saida para chavear  o transistor
}

void loop()
{
  
  valor_pot = analogRead(analogpin); //Lê o valor do potenciômetro
  Serial.println(valor_pot);         //Imprime no monitor serial o valor lido do potenciômetro
  DutyCycle = map(valor_pot,0,1023,0,255); //faz o remapeamentro do valor para escala correta
  analogWrite(base_transistor,DutyCycle); //Liga e desliga o pino de acordo com o DutyCycle
  delay(100);
  
}

Conclusão

Bom após descarregado o código faça o teste variando o potenciômetro e note que o motor irá alterar a velocidade.

Gostou de aprender como controlar a velocidade de um motor DC com o Arduino utilizando um transistor? Deixe seu comentário logo abaixo. Para saber mais sobre o mundo maker, Arduino entre outros dispositivos acesse o blog

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

2 Comentários

  1. Oi Felipe,

    Ali na linha 18 onde você atribui valor à DutyCycle, o value não deveria ser substituído por valor_pot?

    []’s

    1. Olá hélio, verdade! obrigado pelo feedback, vou pedir a alteração.

      Felipe Santos do Nascimento