Controle de velocidade com driver MOSFET para motor DC

Eletrônica Arduino 17 de Novembro de 2019 às 12:36

Os motores DC estão presentes em diversos equipamentos eletrônicos de nosso dia a dia, como brinquedos e ferramentas. Utilizando a eletrônica e microcontroladores podemos desenvolver um sistema capaz de controlar o sentido de rotação e velocidade de um motor DC conhecido como driver Ponte H, não entrando em seus respectivos detalhes pois a explanação de seus conceitos e prática estão presentes no artigo Analisando e projetando drivers Ponte H, mas podemos desenvolver um sistema mais simples que os demais para acionar e controlar a velocidade de um motor utilizando a tecnologia MOSFET (Metal-Oxide-Semiconductor Field Effect Transistor), como o próprio nome diz, um transistor de efeito de campo.

Vale ressaltar que este tutorial não aborda a construção de uma Ponte H com MOSFET, e sim uma introdução ao acionamento de motor DC utilizando transistores desta tecnologia e microcontroladores.

Conceitos básicos do transistor MOSFET

Existem diversos tipos de transistores que podemos utilizar em nossos projetos, no artigo de Criando portas lógicas com transistores foi abordado o conceito funcional de um transistor de junção bipolar ou TBJ de polaridade NPN ou PNP, com seus respectivos pinos de Coletor, Base e Emissor, como também os seus estados de Corte e Saturado. Entendendo estes conceitos é fácil de compreender o transistor MOSFET de canal N e canal P, onde seus pinos recebem os nomes de Gate (Porta), Drain (Dreno) e Source (Fonte) conforme a imagem abaixo.

A característica mais distinta entre estes tipos de transistores, é que o TBJ possui uma fonte de corrente controlada pela corrente, e o MOSFET é uma fonte de corrente controlada por tensão, isso significa que os TBJs necessitam de um sistema eletrônico de tratamento para entradas de baixa corrente e refrigeração, e os MOSFETs normalmente possuem um sistema mais simples, e capacidade de dissipação de controle de cargas de alta potência em um tempo médio de 1ns.

Representação esquemática do transistor MOSFET de canal N e P.

A explicação das partes físicas de um transistor de canal N pode auxiliar no entendimento de seu funcionamento que será útil para os próximos itens.

Um transistor MOSFET trabalha com tensões aplicadas em suas regiões específicas:

  • Vgs - Tensão entre Gate e Source
  • Vds - Tensão entre Drain e Source
  • Vgs(th) ou Vt - Tensão de limiar (threshold)

O Gate reveste a região entre Drain e Source com uma camada de dióxido de silício e uma placa de metal. O isolamento entre Gate e esta região é vantajosa, permitindo uma alta impedância e baixa capacitância de entrada. Entre Drain e Source existe uma resistência elevada, que não permite a passagem de corrente entre esta região quando o Gate possui 0V. Um número adequado de elétrons que se acumulam na região do canal é capaz de criar o canal de condução, que se comporta como um gatilho, onde chamamos de tensão de limiar positiva entre Gate e Source.

Transistor MOSFET e suas regiões internas.

As operações do transistor MOSFET configurado como switch/chave se assemelham com os modos do TBJ, onde o modo Corte representa o nível LOW ou chave aberta, e o modo Triodo representa nível HIGH ou chave fechada.

Para cortar um transistor MOSFET é necessário que Vgs < Vt e Id = 0, ou seja, a tensão de Gate e Source seja menor que a tensão de limiar, onde a corrente do Drain será igual a zero. Para entrar no modo triodo, a condição é Vsg > Vt e Vds =< Vgs - Vt, ou seja, a tensão de Gate e Source deve ser maior que a tensão de limiar, e Vds seja igual ou menor que Vds - Vt, lembrando o comportamento de uma porta inversora do TBJ.

Aplicando a teoria

Entendendo o funcionamento de um transistor MOSFET de canal N, podemos aplicar a teoria acima em um projeto real, com o intuito de visualizar os modos de operação utilizando um multímetro e um LED como carga. Então separe a lista de materiais necessários para a montagem.

  • 1 Transistor de potência MOSFET IRFZ44N
  • 1 Resistor de 15kΩ
  • 1 Resistor de 1KΩ
  • 1 LED
  • 1 micro chave de 2 posições
  • Fonte de alimentação de 12V
  • Fios jumper
Esquema para teste do transistor MOSFET IRFZ44N
Acionando um LED com transistor MOSFET.

Analisando o datasheet do transistor de potência IRFZ44N, ele possui importantes parâmetros para a aplicação em temperatura ambiente (25°C), sendo:

  • Vds máximo 60V
  • Vgs máximo aprox. 20V
  • Vgs = 10V onde Id = 50A e Rds(on) = 0,028Ω
  • Vgs (th) entre 2V e 4V

Estipulando alguns valores podemos aplicar de forma correta suas regiões de operação, onde Vgs e Vds = 12V. Utilizando um multímetro setado em DC Volts é possível analisar as tensões do Gate, Drain e da carga com a chave desligada e ligada. Os resultados obtidos conforme a montagem e diagrama esquemático são:

  1. Chave desligada (Corte) = Gate = 0V, Drain = 12V e a carga = 0V
  2. Chave ligada (Triodo) = Gate = 12V, Drain = 0V e a carga = 12V

Uma explicação bem intuitiva desenvolvida por Vahid, demonstra no item (a) como um transistor MOSFET trabalha internamente em modo Triodo. Os itens (b) e (c) exemplificam os estados de Triodo e Corte do MOSFET canal N e P.

Transistor MOSFET canal N e P e seu funcionamento.

Acionando um motor DC

Utilizando a mesma montagem anterior podemos acionar uma carga maior que o LED, como um motor DC. Para isso é necessário retirar o LED e seu resistor limitador de corrente, e adicionar o motor e seu diodo "volante", que previne o fenômeno da indutância. Para a montagem siga o diagrama esquemático abaixo.

Esquema de acionamento de motor DC com transistor MOSFET
Acionando um motor DC com transistor MOSFET.

Motor DC e controle de velocidade com PWM

Com esta aplicação é possível expandir suas funcionalidades, como por exemplo um controle de velocidade com PWM gerado por um microcontrolador. É essencial o entendimento do sinal PWM para este projeto, então leia os conceitos básicos no artigo Utilizando PWM para controlar LED no Raspberry Pi com Guizero.

Utilizando a placa de desenvolvimento Arduino Uno podemos realizar este controle de velocidade a partir de suas portas digitais PWM, onde este sinal é enviado a um simples circuito integrado com a porta lógica AND.

A porta lógica AND/E precisa de duas entradas para obter uma saída, sua lógica funciona da seguinte maneira, as duas entradas devem ser verdadeiras para o resultado ser verdadeiro, caso contrário a saída é falsa.

- Criando portas lógicas com transistores - APM.

Para a montagem no protoboard separamos uma lista com novos materiais a serem utilizados e siga o diagrama esquemático abaixo.

  • 1 Transistor de potência MOSFET IRFZ44N
  • 1 Resistor de 15kΩ
  • 1 Motor DC
  • 1 Diodo 1N4007
  • 1 Arduino Uno com cabo USB
  • 1 CI 74HC08 - 4 Portas AND de 2 entradas.
  • 3 Capacitores de poliéster/cerâmico de 100nF
  • 2 Capacitores eletrolíticos de 470uF
  • Fios jumper
  • 1 Protoboard
  • 1 Fonte de alimentação 12V
Esquema de acionamento e controle de velocidade para motor DC com Arduino e transistor MOSFET
Acionamento e controle de velocidade com PWM para motor DC utilizando Arduino e transistor MOSFET

Cuidado: A tensão do Arduino é de +5V, e da fonte de alimentação é de 12V, portanto a conexão dos fios no protoboard devem ser separados com atenção, interligando somente o GND.

Depois de realizar a montagem no protoboard, conecte a porta digital 9 do Arduino no pino 2 do CI 74HC08. Abra a IDE oficial do Arduino e cole o código abaixo, compile e envie o firmware ao microcontrolador.

/*
 * Controle de velocidade com PWM para motor DC e MOSFET
 * 
 * Autora: Ana Paula Messina - tecdicas
 * https://tecdicas.com/
 * 
 * 28/05/2019
 */

// Pino PWM
#define CONTROLE 9 

// Valor máximo 255
int velocidade = 255;
int tempo = 30;

void setup()
{
  Serial.begin(9600);
  pinMode(CONTROLE, OUTPUT);
}

void loop()
{
  // Utilize o Monitor serial
  for(int x = 0; x < velocidade; x++)
  {
    analogWrite(CONTROLE, x);
    Serial.print("Aumentando..");
    Serial.println(x);
    delay(tempo);
  }

  for(int y = velocidade; y > 0; y--)
  {
    analogWrite(CONTROLE, y);
    Serial.print("Diminuindo..");
    Serial.println(y);
    delay(tempo);
  }
}

A lógica deste código é semelhante de um controle de brilho de um LED, gerando o efeito de Fade In e Out, onde se encaixa perfeitamente em nosso projeto de controle de velocidade para motor DC com MOSFET. Para desligar o motor retire o 5V conectado no pino 1 do CI 74HC08 e coloque no GND, ou se preferir programe uma porta do Arduino para controlar o acionamento do motor. Veja o video abaixo do projeto funcionando na bancada!

O mais interessante deste projeto é que não precisamos realizar uma compatibilização de tensões entre microcontrolador e transistor, como já foi feito no projeto de Ponte H com o transistor TBJ Darlington TIP122 da imagem abaixo, onde foi necessário implementar o circuito integrado 7407 e utilizar CIs CMOS que suportam entregar a tensão de 12V na Base de cada transistor. Sem dizer do tamanho do dissipador de calor e o sistema de refrigeração com um fan e termômetro né? Você pode conhecer este projeto no artigo de Drivers de controle para motores de passo e DC no item Driver Ponte H Dupla com transistores.

Ponte H Dupla TIP122 V2.0 em uma aplicação real em robótica.

Gostou? Então comente o que achou deste artigo, ou tire suas dúvidas!

Se inscreva no canal do YouTube para mais conteúdo de eletrônica digital e embarcados!

Referências

  1. MALVINO, A; BATES, D; Eletrônica: volume 1. 8 ed. AMGH Editora, 2016.
  2. Transistor de Efeito de Campo, Universidade Feevale.
  3. VAHID, F: Sistemas digitais: projeto, otimização e HDLs. 1 ed, Bookman, 2008.

Ana Paula Messina

Analista de sistemas e membro do tecdicas.