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. |
|
.
|
|
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 |
|
|
|
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