Skip to content

Instantly share code, notes, and snippets.

@chrismedrdz
Created November 13, 2012 19:34
Show Gist options
  • Save chrismedrdz/4067869 to your computer and use it in GitHub Desktop.
Save chrismedrdz/4067869 to your computer and use it in GitHub Desktop.
Ventilador auto-ajustable en Java
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
/*
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