jueves, 20 de marzo de 2014

Motor Paso a Paso 3

http://teclab.uphero.com/practica2_3.html

Control de un motor paso a paso unipolar (5, 6 hilos)

Se controla la velocidad de giro de un motor paso a paso unipolar mediante un potenciómetro conectado al microcontrolador Arduino con el propósito de medir el valor de resistencia y con base a ella determinar el retraso de cada paso del motor. La lectura analógica se almacena en una variable y se hacen los cálculos necesarios para deteminar si el motor gira en sentido horario o antihorario y con qué tiempo de retraso cambia de posición; además esa variable se pasa a un programa en Java que muestra un engrane que gira dependiendo del valor leído.

Materiales

Integrados y otros circuitos:   Resistencias:
» 1 driver ULN2803   » 1 potenciómetro de 10K
» Microcontrolador Arduino    
    Otros:
    » Motor paso a paso unipolar (5 hilos)

Desarrollo

Importante: Para crear un PApplet de Processing en Java se deberá agregar las librerías correspondientes en un proyecto de NetBeans y crear una clase que herede de PApplet. Si ya sabe programar en Java puede desarrollar pequeñas aplicaciones que se comuniquen con el Arduino usando estas librerías. Puede encontrar información sobre cómo comunicar Java con Processing aquí.
 
Nuevamente lo primero que tiene que hacer es identificar cada uno de los cables de su motor paso a paso unipolar. Lo siguiente es preparar el circuito en una placa modular conectando el motor paso a paso a un driver como el ULN2803, oberve que el cable común del motor paso a paso va conectado a un potenciómetro y a la salida de 5V del Arduino, el potenciómetro ajusta la entrada analógica A0 de 0V a 5V y de acuerdo al valor de entrada se puede controlar el motor.
 
.[img]-Motor_P-P_unipolar
 
El proceso es contrario al de la práctica anterior, lo que se busca es enviar datos a un programa en Java o Processing para hacer algo (cualquier cosa), como cambiar la velocidad de giro de una imagen. Como siempre esta disponible el programa para la práctica con el que podrá controlar el giro de un engrane de acuerdo a los valores leídos del potenciómetro.
El programa para Arduino se explica en un documento adjunto que encontrará dentro de la carpeta del sketch
 
[img]-Unipolar_java   El programa en Java es muy simple. La interfaz gráfica únicamente incluye un cuadro de texto con una etiqueta y un PApplet. En el PApplet es donde se encuentra toda la acción.
Cuando se declara un objeto Embedded, el constructor le asigna una referencia al programa principal, por lo tanto el PApplet conoce el cuadro de texto y puede manipularlo. En el PApplet se carga una imagen llamada engrane.png, se inicia la comunicación serial con el Arduino y se prepara para leer una cadena de caracteres. El método serialEvent() es el que detecta que se ha enviado una cadena de caracteres, esa cadena se muestra en el cuadro de texto, se convierte a entero y se almacena en una variable.
En el método draw(), el cual se repite infinitamente, se realiza las siguientes acciones:
>> Se dibuja un fondo negro.
>> Se determina la rotación actual de la imagen en base al valor entero de la cadena leída, con la siguiente fórmula:
grdRot = grdRot - (500 - veloc) * 0.0004;
>> Se dibuja la imagen con la rotación calculada y se posiciona en el centro.

No hay comentarios:

Publicar un comentario