Controlando um motor DC com um Arduíno usando uma ponte H L293E
Andrey Ricardo Pimentel
Agradecimentos ao prof. Dr. Eduardo Todt (Dinf/UFPR) e ao prof. Dr. João Alberto Fabro (Dainf/UTFPR)
Este artigo tenta mostrar como controlar um motor DC com um Arduino Uno usando uma ponte H L293E. As pontes H da família L293 são circuitos integrados compostos de 4 transistores, o que permite controlar 2 motores DC. A escolha mais comum é a da ponte H L293D, mais simples (16 pinos). Ela é a usada na maioria dos tutoriais encontrados na Web. Eu acabei comprando a L293E por acaso, pois não encontrei a L293D. A diferença entre as duas são os 4 pinos a mais (SENSE 1 a 4) que devem ser ligados ao terra através de um resistor baixo e servem para verificar a corrente no motor para o caso de um travamento da roda, por exemplo.
Abaixo estão ilustrados os pinos da ponte H L293E, bem como um esquema para controlar um motor DC nos dois sentidos.
1o passo: ligar os pinos 15 e 16 da ponte H no terra do circuito.
2o passo: ligar os pinos 14 e 17 da ponte H no terra do circuito, cada um com um resistor pequeno (no nosso caso um jumper para cada um serve, pois o resistor é apenas para sense).
3o passo: ligar o pino 10 da ponte H no Vs (5v), a mesma fonte de energia dos motores.
4o passo: ligar o pino 13 ao terra com um diodo.
5o passo: ligar o pino 13 ao Vs (5v), a mesma fonte de energia dos motores, com um diodo. Tomar cuidado com o sentido dos diodos.
6o passo: ligar o pino 13 à um outro ponto do circuito onde será ligado um dos polos do motor 1.
Fazer a mesma coisa para o pino 18. Fio verde.
7o passo: ligar o pino 18 ao terra com um diodo.
8o passo: ligar o pino 18 ao Vs (5v), a mesma fonte de energia dos motores, com um diodo. Tomar cuidado com o sentido dos diodos.
9o passo: ligar o pino 18 à um outro ponto do circuito onde será ligado o outro polo do motor 1. Fio verde.
10o passo: ligar o pino 12 da ponte H ao pino 12 do Arduino. Este será o sinal digital que controlará um dos sentidos do motor 1. Fio amarelo.
11o passo: ligar o pino 19 da ponte H ao pino 11 do Arduino. Este será o sinal digital que controlará outro sentido do motor 1. Fio amarelo
12o passo: ligar o pino 11 da ponte H ao pino 10 do Arduino. Este será o sinal digital que irá habilitar ou desabilitar os dois transistores de um dos lados da ponte H. Fio Azul. É importante que este fio seja ligado a um pino digital do Arduino com PWM. Isto irá permitir que o Arduino mande um valor entre 0 e 255, que vai controlar a velocidade do motor.
13o passo: ligar o pino 20 da ponte H ao Vss (5v do Arduino). Fio vermelho.
14o passo: ligar o terra do Arduino ao terra do circuito. Fio preto.
15o passo: ligar os polos do motor 1 aos fios verdes.
16o passo: ligar as pilhas ao circuito. É o Vs (5v), a fonte de energia dos motores.
17o passo: ligar o Arduino.
O programa exemplo abaixo faz com que o motor gire por 1 segundo para cada lado na velocidade máxima.
int motor1Pin = 12;
int motor2Pin = 11;
int enablePin = 10;
int ledPin = 13;
void setup()
{
pinMode(motor1Pin, OUTPUT);
pinMode(motor2Pin, OUTPUT);
pinMode(enablePin, OUTPUT);
pinMode(ledPin, OUTPUT);
}
void loop()
{
analogWrite(enablePin, 255);
digitalWrite(motor1Pin, LOW);
digitalWrite(motor2Pin, HIGH);
digitalWrite(ledPin, HIGH);
delay(1000);
digitalWrite(motor1Pin, HIGH);
digitalWrite(motor2Pin, LOW);
digitalWrite(ledPin, LOW);
delay(1000);
}