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 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 (int x,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 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, digitalWrite (entradamotor1,HIGH HIGH); ); digitalWrite(entradamotor2, digitalWrite (entradamotor2,LOW 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); 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); 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(){} loop(){} la cula nos realiza una repetición constante de lo que le programemos. Para nuestro ejemplo pusimos: void loop(){ 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.