Projeto: Ponte H com L239D para controle de um motor DC

O L239D é um driver de motor duplo que permite controlar dois motores DC com um único chip. Ele é uma excelente opção para projetos que precisam controlar motores DC, como por exemplo a construção de uma ponte H com L239D para controle de um motor DC.

A ponte H é um circuito eletrônico que permite controlar a direção e velocidade de um motor DC. Ele é composto por quatro transistores que são usados para alternar a polaridade da alimentação do motor. Ao usar o L239D, é possível controlar a direção e velocidade do motor com apenas quatro pinos do Arduino.

Para construir uma ponte H com L239D, é necessário conectar o chip ao Arduino e ligar os terminais dos transistores às bobinas do motor DC. O código deve ser escrito para controlar as saídas do L239D de acordo com as necessidades do projeto.

É importante notar que o L239D é um driver de corrente constante, o que significa que a corrente que passa pelos terminais do motor é controlada pelo chip. Isso garante que o motor receba uma corrente constante, independentemente da tensão de entrada. Isso é importante para evitar que os motores sejam danificados devido a variações na tensão de entrada.

Em resumo, a construção de uma ponte H com L239D é uma ótima opção para projetos que precisam controlar motores DC. É fácil de construir, eficiente e seguro, e permite controlar a direção e velocidade do motor com apenas quatro pinos do Arduino.

O código

int botao1 = 2;
int botao2 = 4;
int velocidade1 = 9;
int m1AntiHorario = 5;
int m1Horario = 6;
int estado1, estado2;

void setup()
{
  pinMode(botao1, INPUT);
  pinMode(botao2, INPUT);
  pinMode(velocidade1, OUTPUT);
  pinMode(m1AntiHorario, OUTPUT);
  pinMode(m1Horario, OUTPUT);
  Serial.begin(9600);

}

void loop()
{
  estado1 = digitalRead(botao1);
  estado2 = digitalRead(botao2);
  if (estado1 == 1) {
    analogWrite(velocidade1, 255);
    digitalWrite(m1AntiHorario, HIGH);
  } else {
    analogWrite(velocidade1, 0);
    digitalWrite(m1AntiHorario, LOW);
    if (estado2 == 1) {
      analogWrite(velocidade1, 255);
      digitalWrite(m1Horario, HIGH);
    } else {
      analogWrite(velocidade1, 0);
      digitalWrite(m1Horario, LOW);
    }
  }
  delay(10); // Atrasar um pouco para melhorar o desempenho
}

Veja um exemplo no TinkerCAD

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *