Sei sulla pagina 1di 5

TUTORIAL CON ARDUINO PARA MOVER UN MOTOR DC

Materiales:

Arduino

Puente h L293D

Fuente externa (puede ser pila de 9 v)

Motor Dc

Cables

Para esta práctica necesitamos conectar nuestros materiales de la siguiente forma:

Los cables rojos representan la alimentación 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 2
y 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 alimentación del puente H, debe ser de 5 v; +vmotor es la alimentación 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 programación en nuestra plataforma de Arduino para mover un


motor de derecha a izquierda y controlando su velocidad.
Nuestra función int nos determina variables que vamos a asignar a nuestros pines (una
variable puede ser una letra o un nombre). Podemos ponerle cualquier nombre a los pines,
debemos tener cuidado en nuestra programación de que digitemos correctamente el nombre
del pin cuando vayamos a llamar alguna función.

Nuestro void setup (){} es el que nos inicializa nuestro programa y solo se ejecuta una vez; para
este ejemplo por medio de la función pinmode asignamos a nuestros pines que son salidas
(también pueden ser entradas pero no para este ejemplo) por medio del nombre del pin que
anteriormente habíamos asignado una coma (,) y en mayúscula OUTPUT (como dijimos
anteriormente también 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 función, puede ser cualquier nombre como
derecha, right o lo que ustedes quieran.

Dentro de nuestros paréntesis encontramos dos int o variables, en este caso X y W en donde X
nos representara más 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 más frecuentes es por no hacer los espacios entre un int y una variable.

Luego tenemos nuestra función digitalWrite; mucho cuidado de nuevo con la sintaxis de esta
función, el error más común es escribir el Write sin la mayúscula de la W.

digitalWrite nos asignara valores de voltaje de 0 y 5 como se trabaja digitalmente (ceros y


unos).

Para nuestro ejemplo, asignaremos un valor HIGH y otro LOW a cada una de las entradas del
motor.

La sintaxis es la siguiente

digitalWrite(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 función analogWrite al igual que digital write nos escribe un valor pero esta vez
análogo; 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 mayúscula de Write. Recordemos que X fue una
variable que nombranos anteriormente en nuestro subprograma void derecha(){}.

La última función que tenemos es nuestra función delay que nos representa un retardo en
milisegundos en arduino.

La sintaxis es la siguiente:

delay(w);
De esta manera hemos creado nuestro subprograma void derecha(){}, para crear vooid
izquierda 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 nuestros digitalWrite al revés de
void derecha(){} ( los HIGH a LOW y viceversa).

Para finalizar llamamos nuestra función void loop(){} la cula nos realiza una repetición
constante 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 50
representan la velocidad a la que va a andar nuestro motor y 2000 y 5000 representan cuanto
tiempo va a durar nuestro sub programa en este caso para derecha 2 segundos y para
izquierda 5 segundos.

NOTA: no olvidar los punto y coma después de terminar cada línea de programación y cerrar
correctamente los corchetes

ESPERO QUE SEA DE GRAN AYUDA PARA USTEDES COMO ME HA SERVIDO A MI.

Potrebbero piacerti anche