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);

}