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
}