Está en la página 1de 3

TUTORIAL CON ARDUINO PARA MOVER UN MOTOR DC

Materiales:ArduinoPuente h L293DFuente externa (puede ser pila de 9 v)Motor DcCablesPara esta prctica
necesitamos conectar nuestros materiales de la siguiente forma:

Los cables rojos representan la alimentacin y los negros los cables que van a tierra.
El cable verde representa el PWM. Los cables amarillos representan las entradas de el
puente H, estos van conectados a los pines 2y 3 de nuestra Arduino. Nuestro cable
verde va al pin numero 9 de nuestra arduino y representa el PWM que lo controlaremos
para aumentar o disminuir la velocidad de nuestro motor dc. Finalmente, los cables
morados representan las salidas de nuestro puente h y van conectados a los cables de
nuestro motor Dc. Nuestro puente H-L293D posee las siguientes conexiones: Podemos
observar que tenemos espacio para dos motores Dc.En1 y En2 son nuestros enables;
aqu pusimos nuestro pwm en nuestro ejemplo. Observamos los In y los Outs que son
nuestras entradas y nuestras salidas, podemos observar es posible tener un motor al
lado derecho y otro al lado izquierdo. +V es la alimentacin del puente H, debe ser de 5
v; +vmotor es la alimentacin de nuestro motor dc, en nuestro ejemplo tenemos 9 v
pero podemos ponerle hasta 12 v. Finalmente tenemos los 0 v que son nuestros
ground, estos van a tierra para tener una referencia.

Finalmente se mostrara la programacin en nuestra plataforma de Arduino para mover


un motor de derecha a izquierda y controlando su velocidad.

Nuestra funcin int nos determina variables que vamos a asignar a nuestros pines
(unavariable puede ser una letra o un nombre). Podemos ponerle cualquier nombre a
los pines,debemos tener cuidado en nuestra programacin de que digitemos
correctamente el nombre del pin cuando vayamos a llamar alguna funcin. Nuestro
void setup(){} es el que nos inicializa nuestro programa y solo se ejecuta una vez; para
este ejemplo por medio de la funcin pinmode asignamos a nuestros pines que son
salidas(tambin pueden ser entradas pero no para este ejemplo) por medio del nombre
del pin que anteriormente habamos asignado una coma (,) y en mayscula

OUTPUT(como dijimos anteriormente tambin puede ser un INPUT). Para nuestro


ejemplo los pines 2,3 y 9 van a ser salidas.
Luego podemos crear sub programas para nuestro motor, en este caso creamos void
derecha(){}y void izquierda(){}.Explicar void derecha(){} para entender void
izquierda(){} Derecha es el nombre que le asignamos a nuestra funcin, puede ser
cualquier nombre como derecha, right o lo que ustedes quieran. Dentro de nuestros
parntesis encontramos dos int o variables, en este caso X y W en donde X nos
representara ms adelante nuestra velocidad y W el tiempo que tarda el motor.Es muy
importante escribir bien la sintaxis como se muestra en el ejemplo; (int x, int w), los
errores ms frecuentes es por no hacer los espacios entre uninty una variable.Luego
tenemos nuestra funcin digital Write; mucho cuidado de nuevo con la sintaxis de
estafuncin, el error ms comn es escribir el Write sin la mayscula de la
W.digitalWrite nos asignara valores de voltaje de 0 y 5 como se trabaja digitalmente
(ceros yunos).Para nuestro ejemplo, asignaremos un valor HIGH y otro LOW a cada una
de las entradas delmotor.La sintaxis es la siguiente digital Write(entradamotor1,HIGH);
digitalWrite (entradamotor2,LOW); esto se hace para polarizar nuestro motor y hacer
que gire hacia un lado, todo se escribe sin espacios. Nuestra funcin analogWrite al
igual que digital write nos escribe un valor pero esta vezanlogo; para el caso de
nuestro motor podremos poner un valor entre 0 y 255 siendo cero la menor velocidad
(quieto)
y
255
la
mayor
velocidad.
La
sintaxis
va
a
ser
la
siguiente:analogWrite(pwm,x);de nuevo sin espacios y mucho cuidado con la
mayscula de Write. Recordemos que X fue unavariable que nombranos anteriormente
en nuestro subprogramavoidderecha(){}.La ltima funcin que tenemos es nuestra
funcindelayque nos representa un retardo en milisegundos en arduino.La sintaxis es la
siguiente:
delay(w);
De esta manera hemos creado nuestro subprogramavoidderecha(){}, para crear
vooidizquierda hacemos exactamente lo mismo pero cambiamos nuestras variables X y
W por otras(en nuestro ejemplo Y y Z)y lo nico que hacemos es cambiar
nuestrosdigitalWriteal revs devoidderecha(){} ( losHIGHaLOWy viceversa). Para
finalizar llamamos nuestra funcinvoid loop(){} la cula nos realiza una
repeticinconstante de lo que le programemos.Para nuestro ejemplo pusimos:void
loop(){derecha(250,2000);izquierda(50,5000);}Derecha e izquierda nos llama nuestros
sub programas anteriormente creados, 250 y 50representan la velocidad a la que va a
andar nuestro motor y 2000 y 5000 representan cuantotiempo va a durar nuestro sub
programa en este caso para derecha 2 segundos y paraizquierda 5 segundos.NOTA: no
olvidar los punto y coma despus de terminar cada lnea de programacin y
cerrarcorrectamente los corchetes.

También podría gustarte