Está en la página 1de 13

Control de motores DC con el integrado L293

ROBTICA
CONTROL DE MOTORES DESDE MICROCONTROLADORES
CON EL CIRCUITO INTEGRADO L293
INTRODUCCIN
El presente documento busca cubrir uno de los problemas ms comunes que suele encontrar el
aficionado en su iniciacin en la robtica: el control de motores de corriente continua (DC) cuando
se requiere un moimiento!
PROBLEMA A RESOLVER
"artimos del supuesto que contempla el control de uno# dos o ms motores por un circuito integrado
programable (un microcontrolador) de acuerdo a una programacin preestablecida $ respondiendo a
una serie de ariables que lee en el entorno!
%ormalmente# el control de un motor DC ir apare&ado a la escritura de un ' lgico (3#()*()) $ un
+ lgico (,'#( )) en cada uno de los bornes del motor!
'
Ilustracin 1: El control directo de un motor DC desde un microcontrolador no es
tcnicamente posible debido a su carcter inductivo.
Control de motores DC con el integrado L293
El problema suele ser que# si bien las patillas del microcontrolador responden adecuadamente a las
e-igencias del programa en cuanto a tensin# a la .ora de alimentar de manera directa al motor se
producen muc.os $ arios problemas# relacionados# entre otras cosas# con el carcter
eminentemente inductio $ analgico de estos motores# normalmente de &uguete! La obediencia de
estos dispositios es# cuando menos# discutible! En ocasiones# se ponen en marc.a con un retraso
ine-plicable respecto al momento en que el microcontrolador .a dado la orden! /tras eces#
obedecen pero se paran espontneamente! 0# desde luego# los cambios de sentido (cambios lgicos
'*+ a +*') se conierten en e&ercicios de prediccin! 1/bedecern los motores2! 10 cundo lo
.arn2!
3ras un e-.austio traba&o de inestigacin al respecto (todo lo e-.austio que puede ser cuando lo
reali4amos aut5nticos profanos# eso s6# mu$ oluntariosos)# .emos llegado a la conclusin de que#
por un lado# los motores $ el circuito de control (microcontrolador) deben tener alimentaciones
diferentes# $ por otro lado# que los motores# desde su puesta en marc.a .asta alcan4ar su elocidad
normal de funcionamiento# $ debido a su carcter inductio# consumen una intensidad ariable que
las salidas de un microcontrolador no estn en condiciones de suministrar de manera fiable!
Es por ello que se recomienda utili4ar el circuito L293# que puede presentar distintas ariantes!
Concretamente# el modelo que .emos utili4ado para nuestra inestigacin es el L293D%E!
FUNCIONAMIENTO DEL INTEGRADO L293DNE
Este circuito se concibe como un 7puente en 89# en el sentido de que est esperando dos entradas ('
+ lgicos) por un lado# $ repite e-actamente estas dos entradas (' + lgicos) por el otro lado#
pero con la posibilidad de cambiar la fuente de alimentacin# (que puede llegar a 3: ))# $
garanti4ando el consumo de intensidad del dispositio a conectar!
2
Ilustracin 2: Patillaje tpico de cualuier inte!rado 2"#
Control de motores DC con el integrado L293
El patilla&e responde a la siguiente relacin de funciones:
)CC': 3ensin de alimentacin que supondr la referencia para las entradas (de ;#( ) a < )#
por lo com=n ( ))! Esto es# si est a ( )# 5sta es la tensin que supondr6a un ' lgico para
las entradas '># 2># 3> $ ;>! "or deba&o de unos 2#3 )# se entender que la entrada est a +!
'># 2>#3>#;>: "ines de entrada# cu$a referencia es )CC'!!
'0# 20 #30# ;0: "ines de salida! ?epetirn el ' + lgico que se .alle en sus respectias
entradas ('># 2># 3># ;>)# pero de acuerdo a la tensin )CC2# que puede llegar a 3: )!
)CC2: 3ensin de alimentacin para las salidas '0# 20# 30 $ ;0 (de)CC' a 3: ))
@%D (; pines): Las ; patillas debern ir a tierra!
'# 2 E%: "atilla que 7actia9 las entradas '> $ 2>! Ai dic.o pin est a 7+9 dic.as entradas
estarn desactiadas (con el resultado de un 7+9 lgico inmediato en las correspondientes
salidas '0# 20)!
3# ; E%: "atilla que 7actia9 las entradas 3> $ ;>! Ai dic.o pin est a 7+9 dic.as entradas
estarn desactiadas (con el resultado de un 7+9 lgico inmediato en las correspondientes
salidas '0# 20)!
3odo lo arriba e-puesto puede traducirse en la siguiente tabla de la erdad:
TABLA DE LA VERDAD I
EN1,2 1A 2A 1Y 2Y
+ B B
C (>L3>
DE"ED>%CD>)
C (>L3>
DE"ED>%CD>)
' + + + +
' + ' + '
' ' + ' +
' ' ' ' '
TABLA DE LA VERDAD II
EN2,3 3A 34 3Y 4Y
+ B B C (>L3>
DE"ED>%CD>)
C (>L3>
DE"ED>%CD>)
' + + + +
' + ' + '
' ' + ' +
' ' ' ' '
En el control de motores# pondremos a 7+9 las patillas '# 2 E% $ 3# ; E% para detener de manera
inmediata a los correspondientes motores! /tras soluciones podr6an ser poner a 7+9 ambas patillas
(motor desactiado) o a 7'9 ambas patillas (motor bloqueado)!
3
Control de motores DC con el integrado L293
CONTROL DE DOS MOTORES CON EL INTEGRADO L293DNE
> la lu4 de lo e-puesto# parece lgico pensar en el siguiente paso: los motores no estarn conectados
de manera directa a los correspondientes pines de control# sino a tra5s del L293D%E# seg=n
esquema ad&unto:
"ara una ma$or claridad (al menos para los redactores de este tutorial) .emos reali4ado las
siguientes traducciones: '># 2> por >' $ >2# de modo que '0 $ 2 0 se conertirn en E'> $ E'F#
de cara al control del motor '! "or otro lado# 3># ;> son a.ora F' $ F2# as6 que las
correspondientes salidas 30# ;0 se conierten en E2> $ E2F (control del motor 2)!
En dic.o esquema# puede erse que )CC' $ )CC2 an conectadas al mismo pin# )CC en la clema
superior# dado que lo ms com=n es que los motorcillos DC que queremos conectar a$an a
tensiones no superiores a ;#( )# precisamente del orden en que estn traba&ando los 7'9 lgicos de
los pines de un microcontrolador estndar (un e&emplo mu$ representatio son las tar&etas
>?DGD%/)! "or tanto# la clema (de dos entradas) de arriba# en la figura# ir6a a una pila de ;#( )!
Las dos clemas siguientes# (C+*C2) $ (C3*C()# conectan# respectiamente# con las entradas '#2 E%#
>' $ >2# la primera# $ con 3# ; E%# F' $ F2# la segunda!! E-teriormente# dic.as clemas irn
conectadas a : pines configurados como salidas en el microcontrolador correspondiente!
Ae recomienda fe.acientemente# a la lu4 de los resultados de nuestros e-perimentos# que las
cone-iones a tierra de los circuitos de control (microcontrolador) $ de fuer4a (L293) sean puestas en
com=n!
En nuestras prcticas# .emos traba&ado con dos circuitos distintos# a saber: el microcontrolador "DC
;
Ilustracin #: Esuema de cone$iones de un circuito de control de dos motores DC desde un
%2"#D&E
Control de motores DC con el integrado L293
':H:9+# del cual .emos utili4ado como salidas las patillas correspondientes al puerto C (salidas +*(#
esto es# C+# C'# C2# C3# C; $ C()# $ por otro lado# una tar&eta con base en >?DGD%/#
concretamente >?DGCLEE># de las que .emos utili4ado los pines digitales 2# 3# ;# (# : $ <#
preiamente configurados como salidas! (8a$ que decir que .emos obiado el uso de las patillas + $
' porque en ocasiones tuimos alg=n problema que no sab6amos si atribu6r al .ec.o de que cuando
>?DGD%/ traba&a en modo esclao con el ordenador pudiera utili4ar alguno de dic.os pines para
la comunicacin AE?D>L)!
3erminando con el anlisis de la figura# quedan dos clemas dobles# que an# precisamente# a las
entradas de los dos motores que queremos gobernar! >s6 pues# en dic.a figura# puede apreciarse que
dic.as clemas an conectadas a las correspondientes salidas E'># E'F# en el caso de la clema
superior# $ E2># E2F# en el caso de la clema inferior!
Los diodos LED tienen una funcin eminentemente informatia (el programador tiene informacin
isual sobre la eolucin del programa# iendo qu5 patillas estn actiadas a cada momento)#
adems de facilitar la eliminacin de las corrientes parsitas que se pueden producir en los cambios
de sentido de los motores DC!
CONSTRUCCIN DE UN ROBOT BSICO. PROYECTO
MASAYLO.
Como $a .emos e-presado en anteriores apartados# el ob&etio es dotar a un robot bsico (que
.emos bauti4ado como E>A>0L/) de rutinas de moimiento fcilmente incluibles en programas
ms comple&os! Dic.o robot estar6a equipado de dos motores DC con mecanismos reductores# de los
que se pueden encontrar fcilmente en cualquier taller de 3ecnolog6a de un instituto!
(
Control de motores DC con el integrado L293
La rueda loca completa la infraestructura de tan sencillo robot# al ob&eto# sobre todo# de equilibrar el
centro de graedad del con&unto!
En la siguiente ilustracin# puede apreciarse la apariencia final de un circuito implementado de
acuerdo al diseIo de la figura 3! El circuito L293D%E ir implementado en un 4calo# al ob&eto de
poder reponer el integrado en caso de aer6a! Las clemas con tornillos posibilitan el fcil cambio de
cone-iones# dado que .abr que reali4ar un proceso de ensa$o $ error en la cone-in de los motores
a las salidas '0# 20# 30 $ ;0 (si un motor a .acia adelante cuando queremos que a$a .acia atrs#
o iceersa# .abr que intercambiar la cone-in de los cables de dic.o motorJ por otro lado# es
posible que el sentido de ambos motores est5 bien# pero gire a la i4quierda cuando deseamos un giro
a la derec.a# o al re5s# lo que e-igir intercambiar '0 con 30 $ 20 con ;0)
:
Ilustracin ': ()*)+%, cuenta con dos motores DC controlados por nuestro circuito basado en
%2"#D&E. %a rueda loca proporciona el euilibrio del centro de !ravedad del robot.
Control de motores DC con el integrado L293
CREACIN DE LAS RUTINAS BSICAS DE MOVIMIENTO EN C
En el transcurso de nuestros e-perimentos .emos traba&ado con dos tipos de integrados de control:
los microcontroladores "DC# concretamente el modelo ':H:9+# $ la tar&eta >?DGD%/# basada en el
microcontrolador >3EEL':K!
En el primer caso# .emos programado el ':H:9+ desde C/DE:FL/CLA (softMare libre) para
compilar el programa en C (compilador ADCC)# para luego grabar el programa utili4ando el
grabador "DCLD32# sea a tra5s del softMare de la empresa matri4# EDC?/C8D"# sea desde
"DLL>F# en Linu- (Gbuntu# concretamente)! En ambos casos# el cdigo base que implementar6a el
moimiento de E>A>0L/ (ad&unto en los ane-os de este documento) inclu$e las siguientes
funciones# a las que se puede llamar en cualquier momento:
adelante!" NNE%'#2OO'J '>OO'J 2>OO+J E%2#3OO'J 3>OO'J ;>OO'J
at#a$!" %%E%'#2OO'J '>OO+J 2>OO'J E%2#3OO'J 3>OO+J ;>OO+J
&'()&e#da!" NNE%'#2OO+J '>OO'J 2>OO+J E%2#3OO'J 3>OO'J ;>OO'J
<
Ilustracin -: Circuito de .uer/a con base en %2"#D&E. *e recomienda ue la cone$in a tierra sea
puesta en com0n con la del microcontrolador ue lo !obierna.
Control de motores DC con el integrado L293
de#e*+a!" NNE%'#2OO'J '>OO'J 2>OO+J E%2#3OO+J 3>OO'J ;>OO'J
alt,!" E%'#2OO+J '>OO'J 2>OO+J E%2#3OO+J 3>OO'J ;>OO'J
En "DC':H:9+# .emos utili4ado las patillas C+# C'# C2# C3# C; $ C( para conectar a las entradas
del L293 ("GE?3/ C que ser preiamente configurado como de salida en su totalidad#
3?DACO+-++)! En el caso de >?DGD%/# obniaremos la cone-in de los dos primeros pines
digitales# + $ '# puesto que en algunos programas nos .emos encontrado con dificultades# que
creemos (perdnesenos la ignorancia si erramos) estn relacionadas con el uso de uno o de ambos
pines por parte de la tar&eta en la comunicacin con el ordenador en su uso como esclao! >s6# los
pines a conectar a las entradas de nuestro circuito de fuer4a ser6an los digitales 2# 3# ;# (# : $ <!
CONCLUSIN
> la .ora de poner en marc.a la construccin de un robot desde cero# como .a sido nuestra
intencin# .a$ muc.os frentes que cubrir# $ por supuesto# muc.a ms documentacin (aparte de
estas .umildes l6neas) que redactar# m-ime cuando tenemos por ob&eto utili4ar .erramientas de
softMare libre# as6 como iniciar una l6nea de inestigacin que pueda ser seguida $ ampliada por
otros docentes en un mundo tan apasionante como el de la robtica# que creemos firmemente
abarcar arios aspectos de la eolucin de la enseIan4a de las 3ecnolog6as en educacin
secundaria! Aomos as6mismo conscientes de los numerosos ac6os e ine-actitudes de que este
documento adolece! Aira por lo menos como base para que otros inestigadores lo utilicen como
K
Ilustracin 1: En 2buntu3 4emos utili/ado PI5%)63 euipado con el compilador *DCC3 para
pro!ramar el microcontrolador PIC1171"8
Control de motores DC con el integrado L293
punto de partida $ me&oren su contenido!
?obtica! Control de motores desde microcontroladores con el circuito integrado L293por >ntonio
@me4 $ EP Dolores %ogueras se encuentra ba&o una Licencia Creatie Commons
?econocimiento*%oComercial*CompartirDgual 3!+ Gnported!
9
Control de motores DC con el integrado L293
ANEXO I: LIBRERA DE CONTROL DEL L293 co SDCC !"#"
PIC $%F%9&
Qinclude ,pic':f:9+!.R
NN La funcin retraso espera - milisegundos
oid retraso(int milisegundos)S
int iJ
int &J
for (iO+Ji,'TmilisegundosJiUU)S
for (&O+J&,'++J&UU)S
V
V
V
oid adelante ()S
3?DACO+-++J
"/?3CO+-'FJ
V
oid atras()S
3?DACO+-++J
"/?3CO+-2DJ
V
oid i4quierda()S
3?DACO+-++J
"/?3CO+-'3J
V
oid derec.a()S
3?DACO+-++J
"/?3CO+-'>J
V
oid alto()S
3?DACO+-++J
"/?3CO+-+>J
V
'+
Control de motores DC con el integrado L293
ANEXO II: LIBRERA DE CONTROL DEL L293 DESDE
ARDUINO
NT
masa$lobase: libreria de control del robot desde >?DGD%/
a traes del circuito de fuer4a basado en el integrado
L293D%E
TN
oid setup() S
NN Dniciali4amos los pines digitales 2# 3# ;# (# : $ <
NNcomo pines de salida
pinEode(2# /G3"G3)J
pinEode(3# /G3"G3)J
pinEode(;# /G3"G3)J
pinEode((# /G3"G3)J
pinEode(:# /G3"G3)J
pinEode(<# /G3"G3)J
V
oid loop() S
NTEn arduino# esta es la rutina principalJ
desde aqui se .aran las llamadas a las rutinas base de
moimiento del robot# separadas por la rutina de retraso
dela$(numeromilisegundos)J
TN
V
V
NNrutina de moimiento de E>A>0L/ .acia adelante
''
Control de motores DC con el integrado L293
oid adelante()S
digitalWrite(2# 8D@8)J
digitalWrite(3# 8D@8)J
digitalWrite(;# L/W)J
digitalWrite((# 8D@8)J
digitalWrite(:# 8D@8)J
digitalWrite(<# L/W)J
V
NNrutina de moimiento de E>A>0L/ .acia atras
oid atras()S
digitalWrite(2# 8D@8)J
digitalWrite(3# L/W)J
digitalWrite(;# 8D@8)J
digitalWrite((# 8D@8)J
digitalWrite(:# L/W)J
digitalWrite(<# 8D@8)J
V
NNrutina de moimiento de E>A>0L/ .acia la derec.a
oid derec.a()S
digitalWrite(2# L/W)J
digitalWrite(3# 8D@8)J
digitalWrite(;# L/W)J
digitalWrite((# 8D@8)J
digitalWrite(:# 8D@8)J
digitalWrite(<# L/W)J
V
NNrutina de moimiento de E>A>0L/ .acia la i4quierda
oid i4quierda()S
digitalWrite(2# 8D@8)J
digitalWrite(3# 8D@8)J
digitalWrite(;# L/W)J
digitalWrite((# L/W)J
digitalWrite(:# 8D@8)J
digitalWrite(<# L/W)J
'2
Control de motores DC con el integrado L293
V
NNrutina de detencion inmediata del moimiento de E>A>0L/
oid alto()S
digitalWrite(2# L/W)J
digitalWrite(3# 8D@8)J
digitalWrite(;# L/W)J
digitalWrite((# L/W)J
digitalWrite(:# 8D@8)J
digitalWrite(<# L/W)J
V
'3

También podría gustarte