Vous êtes sur la page 1sur 11

CONTROLANDO UN MOTOR DE CORRIENTE DIRECTA DESDE LA COMPUTADORA CON ARDUINO Y JAVA

Por Antony Garca Gonzlez

Antony Garca Gonzlez


Estudiante de la Universidad Tecnolgica de Panam Facultad de Ingeniera Elctrica Licenciatura en Ingeniera Electromecnica Creador y Administrador del blog PanamaHitek.com

Controlando Motor de Corriente Directa con Arduino y Java| Panama Hitek

Proyectos de Programacin y Electrnica: Controlando un Motor de Corriente Directa con Arduino y Java
Por Antony Garca Gonzlez

Abstract Un artculo breve acerca de cmo controlar el sentido de giro de un motor sencillo de corriente alterna utilizando una interfaz electrnica, en este caso un puente H conectado a Arduino y con una interfaz de software basada en Java. Se muestran los diagramas electrnicos y el cdigo que le permite al usuario tener el control sobre el movimiento del motor desde su computadora personal. INTRODUCCIN Para lograr invertir el sentido de giro de un motor de corriente directa basta con invertir su polaridad, es decir, cambiar la forma como la corriente pasa a travs de l. En otros aportes que se han hecho a este blog se ha tratado el tema de los motores y cmo controlar su encendido desde Arduino1 con una sencilla interfaz de software creada en Java. En este documento les voy a mostrar cmo lograr esto, con la nica diferencia que ahora podremos decidir hacia donde queremos que el motor se mueva. En electrnica esto se logra utilizando una interfaz electrnica llamada puente H que normalmente consiste en un juego de transistores (NPN en su configuracin ms sencilla) unidos entre s y activados en secuencia de tal forma que la corriente pase por el motor en un sentido para obtener un movimiento en la direccin de las manecillas del reloj y luego, al cambiar el sentido de la corriente habr un movimiento contrario a las manecillas del reloj. El funcionamiento de esta configuracin es un tema que ya se ha tratado antes2. Hay otras formas de lograr un efecto parecido al de la configuracin mostrada, incluso hay circuitos integrados que son puentes H, especiales para el control de motores. El problema es que los ms comunes no soportan corrientes tan altas, a diferencia de los transistorizados que pueden manejar corrientes tan altas como los valores mximos de los transistores utilizados.

1 2

http://panamahitek.com/2013/05/29/arduino-java-y-los-motores/ http://panamahitek.com/2013/08/26/el-puente-h-invirtiendo-el-sentido-de-giro-de-un-motor-con-arduino/

Presentado por Antony Garca G. | antony.garcia.gonzalez@gmail.com

Controlando Motor de Corriente Directa con Arduino y Java| Panama Hitek El modelo sugerido para este propsito es el siguiente:

Figura 1 Esquemtico del puente H Creado en ISIS Proteus

Se observa que esta configuracin requiere de 4 transistores NPN, 4 resistencias y 4 diodos. stos son utilizados para suprimir cualquier corriente transitoria que pueda afectar el circuito. Con esto se asegura la integridad del dispositivo que se utilizar como interfaz entre la parte electrnica y en software, en este caso, Arduino.

Figura 2 Diagrama pictrico de puente H conectado a Arduino Creada en Fritzing

Presentado por Antony Garca G. | antony.garcia.gonzalez@gmail.com

Controlando Motor de Corriente Directa con Arduino y Java| Panama Hitek La conexin de este dispositivo se realiza en los pines 8 y 9 del micro controlador. La programacin utilizada para accionar este sistema desde el micro controlador se basa en enviar pulsos de voltaje para accionar los transistores e iniciar la conduccin de corriente a travs del motor.
int LeftPin=8; //Pines de salida del Arduino int RightPin=9; int input=0; void setup(){ Serial.begin(9600); pinMode(LeftPin, OUTPUT); pinMode(RightPin, OUTPUT); } void loop(){ if (Serial.available()){ if (input=='1'){ //El motor girar a la derecha digitalWrite(LeftPin, LOW); digitalWrite(RightPin, HIGH); } else if (input=='2'){ //El motor girar a la izquierda digitalWrite(LeftPin, HIGH); digitalWrite(RightPin, LOW); } else if (input=='0'){ //El motor se detendr digitalWrite(LeftPin, LOW); digitalWrite(RightPin, LOW); } delay(10); } }

Presentado por Antony Garca G. | antony.garcia.gonzalez@gmail.com

Controlando Motor de Corriente Directa con Arduino y Java| Panama Hitek Con este cdigo se logra que al recibir el micro controlador por medio del puerto serie alguno de los tres posibles comandos (0, 1 y 2) el motor reaccionar de la siguiente manera:

Carcter de Entrada 0 1 2

Resultado El motor detiene su movimiento El motor gira en sentido horario El motor gira en sentido anti horario

Tmese en cuenta que si se conecta el motor de una u otra forma el sentido de giro podra cambiar con respecto a la informacin presentada en la tabla por lo que se recomienda hacer pruebas de funcionamiento para que coincida el comportamiento del motor con el que deseamos tener en el diseo.

Programacin en Java

La interfaz de software consistir en una ventana con 3 botones para indicar el movimiento hacia la izquierda, hacia la derecha u ordenarle al motor que se detenga. Una vez ms se recomienda el uso de la Librera Arduino para Java 3. La implementacin de la misma es muy sencilla, por lo que su uso es muy provechoso para los propsitos que se persiguen con este documento. La interfaz de desarrollo (IDE) que se va a utilizar es Netbeans. El proyecto creado se llamar ArduinoHDrive. En la clase principal del proyecto, llamada ArduinoHDrive.java, se instancia un jFrame que se agrega para colocar los controles que conformarn la interfaz del programa. El jFrame se llamar Window. La llamada a Window se hace de la siguiente manera: Window interfaz = new Window(); interfaz.setVisible(true);

http://panamahitek.com/2013/03/08/libreria-arduino-para-java/

Presentado por Antony Garca G. | antony.garcia.gonzalez@gmail.com

Controlando Motor de Corriente Directa con Arduino y Java| Panama Hitek

Figura 3 Ventana de cdigo en Netbeans con la clase principal y el jFrame Window.java

Con esto se puede trabajar en la interfaz con los botones. Se necesitan 3 botones para las tres acciones que el dispositivo debe ejecutar.

Figura 4 Distribucin de los controles en el jFrame

Presentado por Antony Garca G. | antony.garcia.gonzalez@gmail.com

Controlando Motor de Corriente Directa con Arduino y Java| Panama Hitek Ahora hay que importar la librera Arduino y la librera RXTX al directorio de libreras del proyecto.
Figura 5 Libreras importadas al proyecto en Netbeans Se debe asegurar que las libreras importadas puedan ser utilizadas de forma satisfactoria en el equipo en el que se va a ejecutar el programa

Estas libreras no van a funcionar si antes no han sido instaladas en la computadora que se est utilizando, por lo que se recomienda consultar la informacin existente acerca de la implementacin de estas libreras4. Una vez importados ambos ficheros se procede a instanciar la librera Arduino y a iniciar la conexin en el mtodo principal del jFrame. Los errores que surjan deben ser corregidos por Netbeans.
Figura 6- Se ha importado la librera Arduino, se ha instanciado la misma en el cdigo del jFrame, se ha iniciado la conexin con el micro controlador con el mtodo ArduinoTX, estableciendo un timeout de 2 segundos y una velocidad de transferencia de 9600 baudios. El puerto seleccionado (COM21) puede variar de computadora a computadora. La conexin se inserta dentro de una estructura try-catch que detendr la ejecucin si se produce algn inconveniente con la ejecucin del programa.

http://panamahitek.com/2013/01/31/requisitos-para-utilizar-arduino-con-java/

Presentado por Antony Garca G. | antony.garcia.gonzalez@gmail.com

Controlando Motor de Corriente Directa con Arduino y Java| Panama Hitek Una vez iniciada la conexin, se procede a programar cada botn. Se deshabilitar el botn que detiene el motor si est detenido. Lo mismo se har para los botones que estn presionados en determinado instante. Esto se logra con una estructura condicional y tres variables de estado del tipo boolean. boolean botonizquierdo = false, botonderecho = false, botondetener = true;

Figura 7 Programacin del botn izquierdo.

El botn de la izquierda ha sido configurado de tal forma que al presionarlo se desactiva dicho control para evitar que se le ordene al motor que se mueva hacia la izquierda cuando de hecho se est moviendo hacia la izquierda. Los botones para detener el movimiento y para mover el motor hacia la derecha se activan para que cualquiera de las dos opciones pueda ser ejecutada cuando el usuario lo desea. El comando que se enva por medio del mtodo SendData hacia Arduino debe ser el carcter que se design para que el movimiento sea hacia la izquierda, en este caso, el nmero 2. La programacin de los otros botones es muy similar al de este botn. Presentado por Antony Garca G. | antony.garcia.gonzalez@gmail.com

Controlando Motor de Corriente Directa con Arduino y Java| Panama Hitek

Figura 8 Programacin para el botn derecho

Figura 9 Programacin del botn detener.

Presentado por Antony Garca G. | antony.garcia.gonzalez@gmail.com

Controlando Motor de Corriente Directa con Arduino y Java| Panama Hitek Una vez programado los 3 botones se puede proceder a ejecutar el software. Arduino debe estar conectado a la computadora y el puente H debe estar unido a Arduino. La interfaz del programa luce as:

Figura 10 Interfaz del programa

Las pruebas sobre este sistema han sido satisfactorias al momento de escribir este documento por lo que se espera que no haya problema a la hora de que otras personas los implementen en sus proyectos personales.

CONCLUSIONES Al haber confeccionado un dispositivo de control sobre motores de corriente directa utilizando como interfaz electrnica un puente H y como medio de comunicacin entre software y hardware un modelo cualquiera de Arduino se concluye que: La librera Arduino diseada para el lenguaje Java facilita en gran medida la comunicacin entre una computadora y un dispositivo electrnico a travs de Arduino. Las posibilidades que se pueden lograr utilizando el poder de un lenguaje tan robusto como Java y las posibles interfaces electrnicas que podamos disear son muy amplias y los posibles resultados a obtener son prometedores. El haber podido controlar un motor desde una computadora resulta ser el principio fundamental de sistemas ms especializados orientados al rea de robtica. Un reto a conquistar sera poder variar la velocidad con la que el motor gira o bien implementar un sistema como este a motores paso a paso y a servomotores para obtener un sistema mucho ms especializado y apto para ser utilizado en diseos de robtica. Aunque existen circuitos integrados que cumplen la funcin del puente H, el utilizar una interfaz transistorizada nos deja disponer de voltajes y corrientes ms altas.

Presentado por Antony Garca G. | antony.garcia.gonzalez@gmail.com

Controlando Motor de Corriente Directa con Arduino y Java| Panama Hitek

RECOMENDACIONES Se debe tomar en cuenta las caractersticas tcnicas del motor que se vaya a usar para la prueba de este diseo, tales como voltaje mximo y corriente mxima. De igual forma, los transistores y los diodos rectificadores deben poseer valores mximos permisibles por encima de los requeridos por el motor para evitar averas y posibles accidentes.

REFERENCIAS
* Toda la informacin acerca de este sistema puede ser encontrada en http://panamahitek.com. ** Este documento ha sido confeccionado en su totalidad por Antony Garca Gonzlez, estudiante de la Facultad de Ingeniera Elctrica en la carrera de Licenciatura en Ingeniera Electromecnica de la Universidad Tecnolgica de Panam, sede Azuero. Cualquier consulta se puede realizar a travs de la direccin de correo electrnico antony.garcia.gonzlez@gmail.com

Presentado por Antony Garca G. | antony.garcia.gonzalez@gmail.com

10

Vous aimerez peut-être aussi