L9110H com ESP32: Como Controlar Motor DC e Inverter o Sentido de Rotação

L9110H na Prática: Controle de Motor DC e Módulo Fan com ESP32
Neste projeto, vamos conhecer o L9110H, entender como ele funciona como uma ponte H integrada e controlar o sentido de rotação de um motor DC.

L9110H: pequeno no tamanho, grande na utilidade — como usar o driver de motor em projetos com ESP32

Quando pensamos em uma ponte H para controlar um motor DC, é comum imaginar vários transistores, resistores e uma quantidade considerável de fios.

Mas existe uma solução muito menor.

O L9110H é um circuito integrado desenvolvido para o acionamento de motores e outras cargas, reunindo em um único componente a etapa de acionamento necessária para controlar um motor DC.

Neste artigo, vamos entender como ele funciona, qual é a relação entre o L9110H e o L9110S, como ele aparece em módulos de ventilador e como podemos utilizá-lo sozinho com um ESP32.


O que é o L9110H?

Como Ligar o L9110H a um Motor DC | Diagrama Prático
Diagrama de aplicação do L9110H para controle de um motor DC. 

O L9110H é um driver de motor baseado em ponte H.

Sua principal função é permitir que um circuito de controle, como um ESP32, controle uma carga que exige mais corrente do que um GPIO do microcontrolador pode fornecer diretamente.

Com ele podemos controlar, por exemplo:

  • motores DC;
  • pequenos atuadores;
  • solenoides;
  • mecanismos robóticos;
  • pequenos sistemas de ventilação;
  • projetos educacionais de eletrônica e robótica.

O L9110H possui uma ponte H integrada e pode controlar um motor DC nos dois sentidos. A Adafruit especifica alimentação de 2,5 V a 12 V e corrente de até 800 mA por canal, com pico de até 1,5 A por curto período.


Ponte H integrada

No projeto anterior, construímos uma ponte H utilizando quatro transistores BC337.

Naquela montagem, os transistores eram componentes individuais:

4 transistores → resistores → conexões → ponte H → motor

No L9110H, boa parte dessa estrutura está integrada dentro do próprio circuito integrado.

Podemos pensar de maneira simplificada:

L9110H → ponte H integrada → motor DC

Isso reduz bastante o tamanho do circuito e também a quantidade de componentes externos.

O L9110H possui duas meias-pontes que podem ser utilizadas como uma ponte H completa para controlar um único motor DC nos dois sentidos.


E quais transistores existem dentro do L9110H?

Essa é uma questão interessante.

É comum encontrar na internet a afirmação de que o L9110 utiliza "transistores bipolares" simplesmente por aparecer em algumas documentações a expressão bipolar motor driver.

Mas é importante não confundir os termos.

"Bipolar" nesse contexto também pode estar relacionado ao tipo de motor que o driver consegue controlar, como motores de passo bipolares.

As documentações encontradas para a família L9110 descrevem uma etapa de potência integrada, formada por circuitos de acionamento e potência dentro do CI. Uma documentação do L9110S, por exemplo, descreve o dispositivo como um amplificador de potência push-pull com os circuitos de controle e acionamento integrados em um único CI.

Também existem variantes comerciais da família L9110S cuja documentação descreve internamente uma ponte H utilizando MOSFETs. Por isso, para identificar exatamente a tecnologia dos transistores internos de um determinado L9110H, é necessário consultar o datasheet do fabricante específico daquela versão.

O mais importante para o projeto

Independentemente da tecnologia interna específica da variante utilizada, para quem está montando o projeto o conceito principal é:

ESP32 → entradas do L9110H → ponte H integrada → motor

O ESP32 não precisa controlar individualmente os transistores internos.

Ele simplesmente fornece os sinais de controle.


L9110H e L9110S são a mesma coisa?

Aqui também é preciso tomar cuidado.

Você encontrará componentes e módulos identificados como:

L9110

L9110H

L9110S

Eles pertencem à mesma família de drivers de motor e apresentam características funcionais muito semelhantes, mas a letra final pode estar relacionada à versão, encapsulamento ou fabricante.

Por exemplo, o L9110H comercializado pela Adafruit é fornecido em encapsulamento DIP-8, enquanto existem versões L9110S comercializadas em encapsulamentos como SOP-8.

Portanto, não é recomendável afirmar simplesmente que "L9110H e L9110S são exatamente o mesmo componente" sem verificar o fabricante e o datasheet da peça.

Para projetos, entretanto, eles aparecem frequentemente com a mesma finalidade: acionamento de pequenos motores DC e outras cargas.


O tamanho surpreende

Uma das características mais interessantes do L9110H é justamente o seu tamanho.

O encapsulamento DIP-8 utilizado pela versão apresentada pela Adafruit possui aproximadamente:

9,3 mm × 6,4 mm

sem considerar o comprimento dos terminais.

É muito pequeno.

No vídeo deste projeto, uma comparação simples ajuda a mostrar isso de maneira muito mais visual: colocamos o L9110H próximo a uma moeda de 10 centavos.

Essa comparação mostra imediatamente  que estamos diante de uma ponte H completa em um componente extremamente compacto.

Essa é uma das grandes vantagens dos circuitos integrados:

Aquilo que ocuparia vários componentes individuais pode ser integrado em um pequeno encapsulamento.


L9110H com ESP32

Outra característica muito interessante para projetos modernos é a possibilidade de utilizar sinais lógicos de baixa tensão.

A Adafruit informa que o L9110H pode trabalhar com alimentação do motor entre 2,5 V e 12 V e relata ter utilizado lógica de 3,3 V para controlar um motor alimentado com tensão maior.

Isso torna o componente interessante para microcontroladores como:

  • ESP32;
  • Raspberry Pi Pico;
  • outros sistemas com lógica de 3,3 V.

No caso do ESP32, podemos utilizar dois GPIOs para controlar as duas entradas da ponte H.

Por exemplo:

GPIO 25 → IN1

GPIO 26 → IN2

Quando:

IN1 = HIGH

e

IN2 = LOW

o motor gira em um sentido.

Invertendo:

IN1 = LOW

e

IN2 = HIGH

o motor gira no sentido contrário.

Assim conseguimos demonstrar na prática uma das principais características de uma ponte H:

a inversão do sentido de rotação do motor DC.


Antes do ESP32: dois botões

Como Controlar o Sentido de um Motor DC com L9110H e ESP32

Neste circuito, os dois botões permitem controlar o sentido de rotação do motor através da ponte H integrada no L9110H.

Uma maneira muito didática de ensinar esse circuito é começar sem programação.

Podemos utilizar dois botões.

Botão 1

Ao pressionar o primeiro botão:

IN1 = HIGH

IN2 = LOW

O motor gira em um sentido.

Botão 2

Ao pressionar o segundo:

IN1 = LOW

IN2 = HIGH

O motor gira no sentido contrário.

Nenhum botão

IN1 = LOW

IN2 = LOW

O motor permanece parado.

Dessa maneira, é possível visualizar primeiro a lógica elétrica da ponte H.

Somente depois introduzimos o ESP32.


Substituindo os botões pelo ESP32

Depois de entender o funcionamento com os botões, podemos substituir os comandos manuais pelos GPIOs do ESP32.

O circuito passa a ser:

Como Controlar um Motor DC com ESP32 e L9110H

ESP32 + L9110H + Motor DC: ponte H na prática! 

Neste projeto, o ESP32 controla o sentido de rotação de um motor DC utilizando o L9110H.

ESP32 → L9110H → motor DC

O interessante é que o resultado é praticamente o mesmo.

Antes:

Botão → sinal → L9110H → motor

Agora:

ESP32 → sinal → L9110H → motor

A diferença é que o ESP32 permite automatizar completamente o processo.

Podemos posteriormente utilizar:

  • botões;
  • sensores;
  • comandos pela internet;
  • Bluetooth;
  • ESP-NOW;
  • PWM;
  • automações;
  • robôs.

ESP32 + L9110H + MOTOR DC — CONTROLE DE SENTIDO
/*
  ============================================================
       ESP32 + L9110H + MOTOR DC
       CONTROLE DE SENTIDO COM 2 BOTÕES
  ============================================================

  OBJETIVO:
  Demonstrar o funcionamento de uma ponte H utilizando o
  circuito integrado L9110H e o ESP32.

  O ESP32 controla as entradas IN1 e IN2 do L9110H.
  Dependendo da combinação das entradas, o motor gira em
  um sentido ou no sentido contrário.

  ------------------------------------------------------------
  LIGAÇÕES
  ------------------------------------------------------------

  ESP32                         L9110H
  ------------------------------------------------------------
  GPIO 25  -------------------> IN1
  GPIO 26  -------------------> IN2
  GND      -------------------> GND

  L9110H
  OUT1 / OUT2 ----------------> MOTOR DC

  ------------------------------------------------------------
  BOTÕES
  ------------------------------------------------------------

  Botão 1:
  GPIO 18 ---- Botão ---- GND

  Botão 2:
  GPIO 19 ---- Botão ---- GND

  Os pinos dos botões utilizam o resistor PULL-UP interno
  do ESP32.

  ------------------------------------------------------------
  FUNCIONAMENTO
  ------------------------------------------------------------

  Botão 1 pressionado:
  IN1 = HIGH
  IN2 = LOW
  Motor gira em um sentido.

  Botão 2 pressionado:
  IN1 = LOW
  IN2 = HIGH
  Motor gira no sentido contrário.

  Nenhum botão pressionado:
  IN1 = LOW
  IN2 = LOW
  Motor parado.

  ------------------------------------------------------------
  IMPORTANTE
  ------------------------------------------------------------

  O motor deve ser alimentado através da alimentação adequada
  do L9110H.

  O GND da fonte do motor deve estar conectado ao GND do ESP32.

  O ESP32 fornece apenas os sinais de controle para o L9110H.
*/


// ============================================================
// DEFINIÇÃO DOS PINOS
// ============================================================

const int IN1 = 25;                 // Entrada IN1 do L9110H
const int IN2 = 26;                 // Entrada IN2 do L9110H

const int BOTAO_1 = 18;             // Botão para sentido 1
const int BOTAO_2 = 19;             // Botão para sentido 2


// ============================================================
// CONFIGURAÇÃO
// ============================================================

void setup() {

  Serial.begin(115200);             // Inicia o Monitor Serial

  pinMode(IN1, OUTPUT);              // IN1 como saída
  pinMode(IN2, OUTPUT);              // IN2 como saída

  pinMode(BOTAO_1, INPUT_PULLUP);    // Botão 1 com PULL-UP interno
  pinMode(BOTAO_2, INPUT_PULLUP);    // Botão 2 com PULL-UP interno

  // Motor inicia parado
  digitalWrite(IN1, LOW);            // IN1 em 0 V
  digitalWrite(IN2, LOW);            // IN2 em 0 V

  Serial.println("=================================");
  Serial.println(" ESP32 + L9110H + MOTOR DC");
  Serial.println(" CONTROLE DE SENTIDO");
  Serial.println("=================================");
}


// ============================================================
// PROGRAMA PRINCIPAL
// ============================================================

void loop() {

  // Lê o estado dos dois botões
  bool botao1 = digitalRead(BOTAO_1);
  bool botao2 = digitalRead(BOTAO_2);


  // ==========================================================
  // BOTÃO 1 PRESSIONADO
  // ==========================================================

  if (botao1 == LOW && botao2 == HIGH) {

    digitalWrite(IN1, HIGH);         // IN1 recebe 3,3 V
    digitalWrite(IN2, LOW);          // IN2 recebe 0 V

    Serial.println("Motor: SENTIDO 1");
  }


  // ==========================================================
  // BOTÃO 2 PRESSIONADO
  // ==========================================================

  else if (botao1 == HIGH && botao2 == LOW) {

    digitalWrite(IN1, LOW);          // IN1 recebe 0 V
    digitalWrite(IN2, HIGH);         // IN2 recebe 3,3 V

    Serial.println("Motor: SENTIDO 2");
  }


  // ==========================================================
  // NENHUM BOTÃO OU OS DOIS BOTÕES PRESSIONADOS
  // ==========================================================

  else {

    digitalWrite(IN1, LOW);          // IN1 em 0 V
    digitalWrite(IN2, LOW);          // IN2 em 0 V

    Serial.println("Motor: PARADO");
  }


  delay(100);                        // Pequena pausa
}


O L9110H também pode ser usado sozinho

Essa é uma característica que merece destaque.

Quando encontramos um módulo Fan com L9110S/L9110H, podemos ter a impressão de que o circuito integrado foi desenvolvido exclusivamente para controlar aquele ventilador.

Não é isso.

O ventilador é apenas uma aplicação.

O princípio é:

L9110H → driver

Motor DC + hélice → aplicação

Podemos retirar o conjunto do contexto do ventilador e utilizar o driver para controlar outro pequeno motor DC, respeitando naturalmente os limites elétricos do componente.

A própria documentação da Adafruit apresenta o L9110H como um driver para uma variedade de cargas, incluindo um motor DC ou solenoides.


O módulo Fan com L9110

O módulo Fan é um ótimo exemplo disso.

Módulo Fan L9110H: Motor DC, Ponte H e Conexões
Módulo Fan com L9110H: um conjunto compacto que reúne circuito de acionamento, motor DC, hélice e conexões para controle de ventilação.

Nesse caso, o L9110 faz o trabalho de driver e o motor transforma a energia elétrica em movimento, movimentando a hélice e produzindo o fluxo de ar.

Mas podemos olhar para esse módulo de outra maneira:

    O ventilador é apenas uma das aplicações possíveis do driver.

Isso abre possibilidades para utilizar o mesmo conceito em pequenos robôs, mecanismos, sistemas de movimentação e projetos educacionais.


Por que utilizar o L9110H?

O L9110H apresenta algumas características interessantes para projetos educacionais e pequenos projetos de robótica:

Pequeno

O encapsulamento DIP-8 ocupa pouco espaço e pode ser facilmente utilizado em protoboard. A versão documentada pela Adafruit mede aproximadamente 9,3 × 6,4 mm.

Simples

Poucos componentes externos são necessários para começar a controlar um motor.

Ponte H integrada

Não precisamos montar quatro transistores individualmente para obter a função básica de uma ponte H.

Controle bidirecional

É possível controlar o sentido de rotação de um motor DC.

PWM

Podemos utilizar PWM para controle de velocidade.

Compatibilidade com lógica de 3,3 V

A Adafruit relata funcionamento com sinais lógicos de 3,3 V, tornando-o especialmente interessante para plataformas como o ESP32.

Proteção contra o retorno indutivo

A versão documentada pela Adafruit possui diodos internos para lidar com o retorno (kickback) gerado por cargas indutivas.


L9110H versus ponte H com quatro BC337

Aqui podemos fazer uma comparação interessante com o projeto anterior.

Ponte H com BC337L9110H
4 transistores externos                            Circuito integrado
Vários componentes                            Poucos componentes externos
Montagem maior                            Montagem compacta
Excelente para estudar o circuito                            Excelente para aplicações práticas
Permite visualizar os transistores                            Integra a etapa de acionamento
Mais fios na protoboard                            Circuito mais simples

A ponte com transistores continua sendo extremamente importante para aprender como uma ponte H funciona.

Já o L9110H mostra como essa mesma ideia pode ser transformada em um circuito integrado pequeno e prático.


Conclusão

O L9110H é um excelente exemplo de como a eletrônica pode transformar um circuito relativamente grande em um componente extremamente compacto.

No projeto anterior, uma ponte H foi construída utilizando quatro transistores BC337.

Agora podemos utilizar um único CI para realizar a função de acionamento do motor.

E o mais interessante é que esse mesmo conceito aparece em módulos prontos, como o módulo Fan, no qual o L9110 é utilizado para controlar um pequeno motor com hélice.

Portanto, podemos enxergar a evolução:

Transistores individuais

↓

Ponte H

↓

L9110H

↓

Módulo Fan

↓

ESP32

↓

Controle de sentido

↓

Controle de velocidade com PWM

Essa sequência mostra não apenas como utilizar um componente, mas também um dos princípios mais importantes da eletrônica: um circuito que aprendemos a construir com componentes individuais pode posteriormente aparecer integrado dentro de um pequeno circuito integrado.

E é justamente isso que torna o L9110H tão interessante para projetos de eletrônica, Arduino, ESP32 e robótica.



🔧 Acompanhe o RodRobot

Projetos maker com ESP32, Arduino, eletrônica e programação.

RodRobot – Projetos maker, eletrônica e programação na prática.

Comentários

Postagens mais visitadas deste blog

ESP32 + RoboEyes: Como Criar Olhos Animados para seu Robô com Display OLED

ESP32-C3 Super Mini: Características, Vantagens, Pinagem, Matter.

ESP-NOW com ESP32-C3 e ESP32: Comunicação Sem Wi-Fi na Prática