Download Aplicación 3 con SADE – Lectura de Switches

Document related concepts
no text concepts found
Transcript
Aplicación 3 con SADE – Lectura de Switches
En esta aplicación se hará controlará un servomotor mediante una aplicación hecha en JAVA
utilizando un Jslider. Se utlizará el recurso de SADE los pines de entrada o salida configurados como
PWM.
NOTA: Antes de comenzar por favor lee los archivos SADESymbhiaRevB.pdf y Comunicación SADE.pdf
En el código fuente de la clase Main en la función public class Main agregamos creamos dos objetos
privados:
private Thread t;
private Hilo hilo;
Y en la inicialización private void initialize() escribimos las siguientes lineas de código:
hilo = new Hilo(this);
t = new Thread(hilo);
Con eso ya podemos mandar a llamar el código de la clase Hilo.
Agregamos un botón que llamaremos “Iniciar PWM” y le asignamos un evento.
Y para ejecutar el código unicamente lo mandamos a llamar con la función t.start() por lo que quedaría de la siguiente manera:
JButton btnIniciarConteo = new JButton("Iniciar PWM");
btnIniciarConteo.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
t.start();//Ejecutar código
}
Después agregamos un JSlider para el control del servomotor.
Para poder utilizar el JSlider en la clase Hilo.java tenemos que volverlo un objeto público, para eso vamos al código fuente en la pestaña Source y dejamos la inicialización del JSlider como se muestra en
la siguiente imagen:
Hecho eso pasamos ala función public class Main y escribimos la siguiente linea de código:
Es importante determinar el rango de valores del JSlider ya que se utilizarán para el ciclo de trabajo
del PWM para el servomotor. En la hoja de especificaciones del motor se determinan los tiempos de la
señal (varían según fabricante), en este caso los tiempos están dados como:
Con un periodo de 21.5 ms y un ciclo de trabajo que va desde los 0.5 ms hasta los 2.5 ms.
Utilizando la fórmula para obtener el periodo del PWM para SADE determinamos el siguiente valor:
Valor periodo = (Tiempo periodo [segundos] ) * (50,000,000)
Valor periodo = (21.5x10-3 s) * (50,000,000)
Valor periodo = 1,075,000
De igual manera obtenemos el valor mínimo y el valor máximo del ciclo de trabajo que colocaremos
en las propiedades del Jslider
Valor mínimo de C.T. = (Tiempo ciclo [segundos]) * (50,000,000)
Valor mínimo de C.T. = (0.5x10-3 s) * (50,000,000)
Valor mínimo de C.T. = 25,000
Valor máximo de C.T. = (Tiempo ciclo [segundos]) * (50,000,000)
Valor máximo de C.T. = (2.5x10-3 s) * (50,000,000)
Valor máximo de C.T. = 125,000
Colocamos los valores del ciclo de trabajo en las propiedades del JSlider en la pestaña de diseño
Ahora abrimos la clase Hilo.java
y el código que utilizaremos para nuestra aplicación es el siguiente:
public void run() {
// TODO Auto-generated method stub
while(true){
comando.PWM(1075000, main.slider.getValue(), comando.G1);
// Configuramos el pin G1 de la tarjeta symbhia como PWM
}
}
En el periodo colocamos el valor que ya habíamos calculado y en el ciclo de trabajo colocamos el valor
que nos arroja el JSlider.
Y así finaliza nuestra aplicación.
IMPORTANTE: Cada vez que se utilice la clase Hilo.java se deberá ejecutar el código presionando una
sola vez el botón de inicio.
¡Gracias por su interés en SADE!
Cualquier duda o información pueden contactarnos en: [email protected]
También pueden visitar nuestra página www.intesc.mx para descargar los archivos mostrados en este
documento y también para descargar otros proyectos.