banner

Ir para o Forum

Super driver de 1 a 200 amperes para motor DC



Uma ponte H com Mosfet. Utilizamos muito para controlar motor, principalmente o DC, e por um motivo bastante simples: ele te permite inverter a polaridade. Ou seja, você faz o motor girar para direita e para a esquerda, o que te dá uma grande flexibilidade no controle destes motores. E, em especial, eu já queria usar faz tempo um transistor, o IRF1404, que considero um monstro que chega a 200 amperes. Ele é muito usado em módulos de potência de som automotor. Então, hoje, você vai ver como controlar um motor DC, aquele de dois fios, um positivo e um negativo. Isso tudo utilizando o ESP32 LoRa.


Vou, então, te apresentar um circuito de controle e polarização de uma ponte H usando MOSFET’s e aplicar a ponte H em uma carga para verificar seu funcionamento.



Demonstração





Recursos usados

·         Um ESP WiFi LoRa 32
·         Quatro IRF1404
·         Três BC337
·         Um CD4011
·         Resistores
·         Dois capacitores eletrolíticos 1uF
·         Dois diodo 1N4148
·         Cabo USB para o ESP
·         Fonte 12V para a carga utilizada
·         Carga (usamos um motor de vidro elétrico)
·         Protoboard
·         Fios





Ponte H


·         A ponte H é um circuito que permite a inversão da direção da corrente aplicada sobre uma carga.
·         Usada comumente para controlar a direção de motores DC, invertendo o sentido da corrente que flui por seus enrolamentos.
·         Como os motores tendem a ser cargas que consomem altas correntes, a ponte H utiliza-se de dispositivos chaveadores de potência (transistores, relés), para controlar a direção do fluxo.



IRF1404


·         A utilização de MOSFET’s de potência na comutação de cargas apresenta  vantagens, principalmente relacionadas a alta velocidade de comutação, baixo intervalo de desligamento, corrente de dreno (DRAIN) proporcional à tensão da porta (GATE), baixa resistência no modo ligado  permitindo altas correntes.
·         O IRF1404 é um MOSFET construído  com tecnologia HEXFET® da International Retifier.
·         Possui uma resistência muito baixa durante sua ativação
- RDS(on) = 0,004 ohms.
·         Pode suportar uma corrente continua de 202A respeitando-se a temperatura máxima da junção, mas é limitado em 75A para o encapsulamento TO-220.
·         Tensão máxima de dreno – fonte de 40V
·         Tensão limite  VGS de 2 a 4V.



Esquema


·         Este é o esquema utilizado neste exemplo, nele, podemos perceber 3 blocos: o dobrador de tensão, a lógica de controle e a ponte H em si.



Esquema - Ponte H

·         A ponte H terá quatro IRF1404 dispostos de modo que a ativação de um par deverá permitir o fluxo de corrente em um sentido e a ativação do par oposto deverá inverter o sentido.
·         Indicamos o par que deve ser ativado ao mesmo tempo pelas entrada DIR A e DIR B, indicando a mudança de direção do motor






·         Outro detalhe importante é que a tensão de ativação dos transistores devem ser maior que o Vgs(th).
·         Para Q9 e Q10, valores superiores a 4V já deveriam ser o suficiente para iniciar a condução. Mas para Q8 e Q11, o Vgs(th) deve ser esses 4V a mais que as tensões nos pontos A e B respectivamente.
·         Como na condução de Q11 a tensão em B deve idealmente ser a tensão da fonte, podemos imaginar que V deve ser de no mínimo 16V.
·         Para manter a montagem usando uma única fonte de alimentação, vamos recorrer a um dobrador de tensão.



Esquema – O dobrador de tensão


·         Este é um circuito baseado em diodos e capacitores bastante conhecido na eletrônica.
·         Funciona basicamente como um “bomba” de elétrons, empurrando elétrons pelos capacitores a fim de criar uma tensão superior pelo acúmulo de cargas.
·         A princípio, um dobrador de tensão deverá entregar em sua saída o dobro da tensão de entrada.
·         Na prática, devido às quedas de tensão, o valor obtido foi de 21,5V aproximadamente. Mas era o bastante para ativação dos MOSFET’s.


·         Um oscilador de 1kHz, vindo do ESP (3V3) ativa Q2 que passa a ser a fonte osciladora do circuito dobrador.
·         A cada ciclo, as cargas acumuladas em C3, são transferidas e somadas em C4.



Esquema – Ativação – Hardware


·         Um detalhe muito importante em qualquer ponte H é que os pares devem ser ativados de forma que o caminho da corrente seja sempre pela carga (no caso nosso motor).
·         Se os dois pares forem ativados ao mesmo tempo, um curto-circuito entre o positivo da fonte e o GND se estabelecerá, podendo danificar a ponte H e/ou a fonte de alimentação.
·         Para evitar isso, uma lógica de ativação deve ser implementada, seja via software, seja via hardware.
·         Aqui está uma sugestão usando portas lógicas NAND e sua tabela verdade.
·         NÃO HÁ ATIVAÇÃO SIMULTÂNEA DE DIR A E DIR B



Esquema – Ativação - Software

·         Outra forma de evitar isso, é controlar a ativação por software.
·         No exemplo de código, utilizamos esta abordagem.


NÃO DEVE HAVER ATIVAÇÃO SIMULTÂNEA DE DIR A E DIR B
·         As lógicas são invertidas pelos transistores. As ativações são em nível baixo.



Código-Fonte: Constantes e variáveis


//PWM usado como oscilador do dobrador de tensão
const int freq = 10000; //Frequencia do PWM
const int canal = 0; // canal do PWM
const int resolucao = 12; // Resolução (4096 estados)
const int ciclo = 2048; //ciclo de trabalho de 50%
const int pin_osc = 21; //GPIO utilizada para o oscilador

//Pinos de atuação na ponte
const int pin_A = 16; // Direção A
const int pin_B = 17; // Direção B
const int intervalo = 2000; //Intervalo para mudança de estados

// Variável usada para alternar a direção
boolean dir = false;


Setup


void setup()
{
  //seta a direção dos GPIO
  pinMode(pin_osc, OUTPUT);
  pinMode(pin_A, OUTPUT);
  pinMode(pin_B, OUTPUT);

  // Ajusta o PWM com as constantes
  ledcSetup(canal, freq, resolucao);
  ledcAttachPin(pin_osc, canal);
  ledcWrite(canal, ciclo);
}


Loop


void loop() 
{

  dir = !dir; //inverte o valor da direção

  //Desliga a ponte
  //note que a lógica é invertida pelos transistores Q15 e Q16

  digitalWrite(pin_A, HIGH); // desativa o par A
  digitalWrite(pin_B, HIGH); // desativa o par B

  delay(intervalo); //aguarda um intervalo

  digitalWrite(pin_A, dir); //ESTE é o pino que controla o DIR A
  digitalWrite(pin_B, !dir);// o DIR B sempre deve ser a NEGAÇÃO de DIR A

  delay(intervalo); //aguarda um intervalo

}





Faça o download dos arquivos:




Um comentário:

Tecnologia do Blogger.