Created
November 13, 2012 19:34
-
-
Save chrismedrdz/4067869 to your computer and use it in GitHub Desktop.
Ventilador auto-ajustable en Java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class HiloTemperatura extends Thread { | |
public double temperatura; | |
public int velocidad; | |
public void run() { | |
try { | |
Ventilador hiloVent = new Ventilador(); | |
while(true) { | |
/*Se ira reduciendo la temperatura ambiental dependiendo de la velocidad del ventilador cada 500 milisegundos*/ | |
if ( (temperatura >= 25) && (temperatura <= 28) ) { | |
velocidad = 1; | |
hiloVent.setVelocidad(velocidad); | |
temperatura = temperatura - 0.10; | |
hiloVent.setTemperatura(temperatura); | |
} | |
else if( (temperatura >= 29) && (temperatura <=34) ) { | |
velocidad = 2; | |
hiloVent.setVelocidad(velocidad); | |
temperatura = temperatura - 0.05; | |
hiloVent.setTemperatura(temperatura); | |
} | |
else if( temperatura >= 35 ) { | |
velocidad = 3; | |
hiloVent.setVelocidad(velocidad); | |
temperatura = temperatura - 0.02; | |
hiloVent.setTemperatura(temperatura); | |
} | |
else if (temperatura <= 24) { | |
velocidad = 0; | |
hiloVent.setVelocidad(velocidad); | |
temperatura = temperatura + 0.12; | |
hiloVent.setTemperatura(temperatura); | |
} | |
Thread.sleep(500); | |
} | |
} catch(InterruptedException e){ | |
System.out.println("Excepcion: " + e.getMessage()); | |
} | |
} //fin del metodo run() | |
public void setTemperatura(double temp) { | |
temperatura = temp; | |
} | |
public void setVelocidad(int vel) { | |
velocidad = vel; | |
} | |
public double getTemperatura() { | |
return temperatura; | |
} | |
public int getVelocidad() { | |
return velocidad; | |
} | |
} //Fin de la clase HiloTemperatura |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
Ejemplo de ventilador que se auto-regula de acuerdo a la temperatura del ambiente. | |
Reporte 1 | |
Equipo # 1 Sistemas Adaptativos Jueves | |
Ventilador.java | |
*/ | |
import java.util.*; | |
public class Ventilador extends Thread { | |
public double temperatura = 25; //Se fija una temperatura ambiental inicial de 25º C | |
public int temp,velocidad; | |
public boolean estadoVentilador; | |
public String state; | |
public Random genRand = new Random(); | |
public void run() { | |
try { | |
HiloTemperatura hiloTemp = new HiloTemperatura(); | |
hiloTemp.setTemperatura(temperatura); | |
hiloTemp.start(); //Iniciamos el hilo de Temperatura. | |
long start = System.currentTimeMillis(); //Se obtiene la hora del sistema en milisegundos (inicial) | |
while(true) { | |
long end = System.currentTimeMillis(); //Se obtiene la hora del sistema en milisegundos (final) | |
long dif = end - start; //Se calcula el tiempo transcurrido entre la hora del sistema final e inicial | |
if(dif >= 20000) { //Genera una temperatura aleatoria cada 20 segundos | |
temp = ((genRand.nextInt(10000) % 30) + 17); //Se genera un numero aleatorio entre 17 y 30 | |
temperatura = (double)temp; // Se hace la conversion de tipo de dato entero a double | |
hiloTemp.setTemperatura(temperatura); //Ajusta la temperatura en la clase HiloTemperatura | |
hiloTemp.setVelocidad(velocidad); | |
start = System.currentTimeMillis(); | |
if (temperatura > 24) { | |
estadoVentilador = true; | |
setEstado(estadoVentilador); | |
} else { | |
estadoVentilador = false; | |
setEstado(estadoVentilador); | |
} | |
velocidad = hiloTemp.getVelocidad(); | |
temperatura = hiloTemp.getTemperatura(); | |
} | |
else { | |
if (temperatura > 24) { | |
estadoVentilador = true; | |
setEstado(estadoVentilador); | |
} else { | |
estadoVentilador = false; | |
setEstado(estadoVentilador); | |
} | |
velocidad = hiloTemp.getVelocidad(); | |
//temperatura = hiloTemp.getTemperatura(); | |
} | |
for(int r=0;r<20;r++){System.out.println("\n");} | |
System.out.println("\t\t----------------------------------"); | |
System.out.println("\t\t~Sistema Control de un Ventilador~"); | |
System.out.println("\t\t----------------------------------"); | |
System.out.println("\n\t\t\t~Estado del Ventilador~"); | |
System.out.println("\n\tTemperatura Ambiental -> "+temperatura+" ºC"); | |
System.out.println("\n\tVelocidad -> "+velocidad); | |
System.out.println("\n\tEstado -> "+state); | |
temperatura = hiloTemp.getTemperatura(); | |
hiloTemp.setTemperatura(temperatura); | |
Thread.sleep(5000); | |
} //Fin del while | |
} catch(InterruptedException e) { | |
System.out.println("Excepcion: " + e.getMessage()); | |
} | |
} //Fin del metodo run | |
public String setEstado(boolean estado) { | |
if (estado == true) { | |
this.state = "Encendido"; | |
} | |
else { | |
this.state = "Apagado"; | |
} | |
return state; | |
} | |
public void setTemperatura(double temp) { | |
temperatura = temp; | |
} | |
public void setVelocidad(int vel) { | |
velocidad = vel; | |
} | |
public static void main(String[] args) { | |
Ventilador ventilador = new Ventilador(); | |
ventilador.start(); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment