Arduino+Java: Variar la resistencia de circuito eléctrico desde programa en la PC

0
123

Hola a todos.

En mi post anterior mostré como variar la resistencia con un circuito integrado con Arduino. He aquí el post: Potenciómetro digital: El circuito integrado X9C103P.

Ahora lo que haremos será crear una sencilla aplicación en Java con la que variaremos la resistencia según la disposición del usuario.

Nos vamos a Netbeans y creamos la siguiente interfaz:

Sin título

Una caja de texto, dos botones y 2 etiquetas.

Lo que haremos con el botón calibrar es buscar la resistencia mínima, la resistencia máxima y el aumento para entonces poder aumentar o reducir el valor de la resistividad con la aplicación.

Necesitamos crear 3 frames:

Sin título

En este frame colocaremos la resistencia mínima.

Sin título

En esta ventana se registrará la resistencia máxima.

Sin título

En esta ventana se registrará el aumento.

Una vez calibrada la aplicación podrá regular la resistencia según las instrucciones del usuario.

Ahora viene el código.

Las variables que necesitaremos serán las siguientes:

Necesitamos importar la librería Arduino que está disponible en el siguiente enlace:

Librería Arduino para Java (Actualizado 21/2/2013)

Instanciamos la librería a través de la variable Arduino. Con RMax, RMin y Aumento guardaremos las variables en el proceso de calibración.

Con step guardaremos el aumento en Ohms.

En la variable Resistencia se guardará la resistencia que el usuario introduzca en la caja de texto. Pasos es la cantidad de veces que el circuito integrado tendrá que aumentar la resistencia para alcanzar un valor determinado.

Sin título

Ahora en el método principal se colocará lo siguiente:

Aquí iniciamos la conexión con Arduino y establecemos el texto de la etiqueta.

Sin título

Ahora vamos a programas los botones.

Para el proceso de calibración lo primero que haremos es elevar la resistencia al máximo, recogemos ese valor. Luego la reducimos al mínimo, también guardamos ese valor. Por último aumentamos la resistencia en 10 pasos y recogemos ese último valor. Así sabremos cuál es la resistencia máxima, la mínima y cuanto aumenta de paso en paso.

El botón de calibrar

 Con el ciclo for aumentamos la resistividad 150 veces que es mucho más que suficiente para elevarla al máximo. Abrimos el Jframe donde se piden los valores máximos.

Sin título

Cuando presionamos Aceptar en la ventana de resistencia máxima…

 Este código reduce la resistencia 150 veces, lo que es más que suficiente para llevarla al mínimo.

Se encarga de cerrar la ventana de resistencia máxima y abre la ventana de resistencia mínima.

Sin título

Al presionar el botón Aceptar en la ventana de resistencia mínima…

Aquí se aumenta la resistencia 10 veces para ver que valor alcanza. Se cierra la ventana de resistencia mínima y se abre la ventana de aumento.

Sin título

Al presionar el botón Aceptar en la ventana de aumento…

Se registra el valor del aumento y se divide entre 10 para encontrar steps.

Se cierra la ventana de aumento y se finaliza el proceso de calibración.

Sin título

Ahora viene el código que se ejecuta al presionar el botón “Cambiar Resistencia

Con esto se divide el valor de la resistencia introducida por el usuario y se divide entre steps.

Luego con el ciclo for se ejecuta la cantidad de veces que sea necesario para que la resistividad alcance el valor que el usuario haya decidido a través de el valor de entrada en la caja de texto.

Finalizado esto, vamos al código Arduino.

Usaremos el mismo que usamos en el post pasado de potenciómetros digitales.

Subiendo este código a la placa y corriendo el programa en Netbeans deberíamos poder lograr lo que nos proponemos.

El proceso completo de calibración y asignación de resistencia lo podemos ver en el siguiente video:

**Nota: debo recordarles que este tipo de potenciómetros digitales tienen una tolerancia del 20% por lo que el valor de la resistencia puede variar en ocasiones. De igual forma el multímetro utilizado en el video es de baja calidad y por lo tanto de baja precisión por lo que los valores mostrados tienden a variar un poco.

Espero que les guste.

Saludos.