Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the ninja-forms domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/ff4jg8asu0ua/public_html/wp-includes/functions.php on line 6114

Notice: A função _load_textdomain_just_in_time foi chamada incorretamente. O carregamento da tradução para o domínio twentyseventeen foi ativado muito cedo. Isso geralmente é um indicador de que algum código no plugin ou tema está sendo executado muito cedo. As traduções devem ser carregadas na ação init ou mais tarde. Leia como Depurar o WordPress para mais informações. (Esta mensagem foi adicionada na versão 6.7.0.) in /home/ff4jg8asu0ua/public_html/wp-includes/functions.php on line 6114
Ponte H L298N: Módulo de Controle de Motores DC - VLADCONTROL

Ponte H L298N: Módulo de Controle de Motores DC

Ponte H L298N é um módulo baseado no circuito tipo ponte H e é utilizado para controle de motores DC. Possui dois canais, permite controlar velocidade e sentido de rotação de até dois motores ao mesmo tempo.
Esse módulo é muito empregado na robótica, possui um circuito básico para o uso do CI L298N e tem dimensões pequenas que facilita a acomodação do módulo no robô ou em outros projetos de sua utilização.

Pinagem Ponte H L298N

Ponte H L298N

Output A – conexão do Motor 1
Output B – conexão do Motor 2
5v – A placa possui um regulador de tensão 5v integrado, e este regulador pode ser acionado pelo jumper “5v enable” caso a alimentação da placa seja de 7V – 35V
Input – quatro entradas de controle In1, In2, In3 e In4

    • In 1 – PWM para a velocidade do motor 1
    • In 2 – Sinal digital para sentido de rotação do motor 1 (nível 0 > horário e nível 1 anti-horário)
    • In 3 – PWM para a velocidade do motor 2.
    • In 4 – Sinal digital para sentido de rotação do motor 2 (nível 0 > horário e nível 1 anti-horário)

Especificações

    • Chip Driver: Chip dupla ponte H L298N
    • Tensão de alimentação: +5 V ~ +35 V
    • Pico de corrente de Saída: 2A por porta (Motor)
    • Tensão dos terminais de controle: 4.5~5.5 V
    • Corrente dos terminais de controle: 0~36mA
    • Tensão por nível lógico: Nível alto 4.5~5.5V e 0V para nível baixo
    • Potência máxima: 20W
    • Temperatura de trabalho: -25ºC ~ +130ºC
    • Outras características: Indicador de direção, indicador de Ligado, proteção contra sobre corrente

Projeto Exemplo de Aplicação de uma Ponte H L298N

Primeiramente, é preciso adquirir os componentes para controlar dois Motores DC através de uma Ponte H L298N conforme listado:

    • 01 Ponte H L298N
    • 01 Arduino (Uno, Mega e outros)
    • 02 Motores DC
    • 02 Potenciômetros
    • 02 Pushbutton
    • 02 Resistores (acima de 10KΩ)
    • Jumpers para conexão
    • 01 Fonte DC de Alimentação para os Motores

Em seguida, faça a ligação cuidadosamente conforme o esquema abaixo:

ESQUEMA PONTE H L298N

Feito isso, logo após estivermos certo da conexão dos componentes, podemos carregar o código no Arduino:

  1 /* Codigo simples para funcionamento de Ponte H L298N */
  2  
  3  # define enA 4 //  ENA
  4  # define MotorDireitoAvante  5  // IN1
  5  # define MotorDireitoAtras   6  // IN2
  6  
  7  # define enB 7 // ENB
  8  # define MotorEsquerdoAvante  8 // IN3
  9  # define MotorEsquerdoAtras   9 // IN4
 10  
 11  # define botaoPin_1 2   // Entrada do push button
 12  # define botaoPin_2 3   // Entrada do push button
 13  
 14  # define potPin1 A0    // Potenciometro no pino analogico 0
 15  # define potPin2 A1    // Potenciometro no pino analogico 1
 16  
 17  int Veloc_1 = 0;       // Uma variavel para armazenar o valor da velocidade atual
 18  int Veloc_2 = 0;       // Uma variavel para armazenar o valor da velocidade atual
 19  
 20  boolean leBotao(int porta);   // Prototipo funcao que le o botao.
 21  
 22  boolean sentido1 = false;    // Define o sentido de rotacao do motor.
 23  boolean sentido2 = false;    // Define o sentido de rotacao do motor.
 24  
 25  void setup() {
 26    pinMode(MotorDireitoAvante,  OUTPUT); // IN1
 27    pinMode(MotorDireitoAtras,   OUTPUT); // IN2
 28    pinMode(MotorEsquerdoAvante, OUTPUT); // IN3
 29    pinMode(MotorEsquerdoAtras,  OUTPUT); // IN4
 30    pinMode(botaoPin_1, INPUT);   // Define o pino do botao como INPUT
 31    pinMode(botaoPin_2, INPUT);   // Define o pino do botao como INPUT
 32    Serial.begin(9600);
 33  }
 34  
 35  void loop() {
 36  
 37    Veloc_1 = analogRead(potPin1);
 38    Veloc_1 = map(Veloc_1, 0, 1023, 0, 255);
 39    Veloc_2 = analogRead(potPin2);
 40    Veloc_2 = map(Veloc_2, 0, 1023, 0, 255);
 41  
 42    if (leBotao(botaoPin_1)) /* Se botao for apertado retorna true, se nao for, retorna false */
 43    {
 44      analogWrite(enA, 0);
 45      analogWrite(enB, Veloc_2);
 46  
 47      sentido1 = !sentido1;
 48  
 49      delay(1000);
 50    }
 51  
 52    if (sentido1)
 53    {
 54      digitalWrite(MotorDireitoAvante,  HIGH); // IN1
 55      digitalWrite(MotorDireitoAtras,   LOW);  // IN2
 56      analogWrite(enA, Veloc_1);
 57    }
 58    else
 59    {
 60      digitalWrite(MotorDireitoAvante,  LOW);  // IN1
 61      digitalWrite(MotorDireitoAtras,   HIGH); // IN2
 62      analogWrite(enA, Veloc_1);
 63    }
 64  
 65    if (leBotao(botaoPin_2)) /* Se botao for apertado retorna true, se nao for, retorna false */
 66    {
 67      analogWrite(enA, Veloc_1);
 68      analogWrite(enB, 0);
 69  
 70      sentido2 = !sentido2;
 71  
 72      delay(1000);
 73    }
 74  
 75    if (sentido2)
 76    {
 77      digitalWrite(MotorEsquerdoAvante, HIGH); // IN3
 78      digitalWrite(MotorEsquerdoAtras,  LOW);  // IN4
 79      analogWrite(enB, Veloc_2);
 80    }
 81    else
 82    {
 83      digitalWrite(MotorEsquerdoAvante,  LOW); // IN3
 84      digitalWrite(MotorEsquerdoAtras, HIGH);  // IN4
 85      analogWrite(enB, Veloc_2);
 86    }
 87  }
 88  
 89  
 90  boolean leBotao(int porta)
 91  {
 92    static boolean estadoAnterior[2] = {true, true}; /* static --> para manter a variavel na memoria */
 93  
 94    boolean estadoBotao = digitalRead(porta);
 95    boolean ligado = false;
 96  
 97    if (!estadoBotao && estadoAnterior[porta]) /* Esse controle permite que, mesmo o botao permanecendo apertado, vai ser considerado apenas uma vez*/
 98    {
 99      ligado = true;
100    }
101  
102    estadoAnterior[porta] = estadoBotao;
103  
104    return ligado;
105  }

Então, percebe-se que, ao rodar os potenciômetros, há uma variação de velocidade de rotação dos motores e, também, apertando os botões nota-se a inversão no sentido de rotação.

Onde comprar?

LOJAS

Conheça também!