Motor DC com Arduino e Transistor: Controle a Velocidade! - MakerHero
Controle a velocidade de um motor DC com o Arduino utilizando transistor

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

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

Faça seu comentário

Acesse sua conta e participe

6 Comentários

  1. Posso alimentar o arduino com 48V?

    1. Olá Pedro!

      Não, o limite de alimentação de entrada do Arduino é 12 V.

      Abraços!
      Vinícius – Equipe MakerHero

  2. Olá, posso nesse circuito controlar um motor de 12Vcc alimentado com uma fonte externa?

    1. Olá Dan!

      Pode sim, sem problemas!

      Felipe Santos do Nascimento
  3. 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.