Skip to content

Instantly share code, notes, and snippets.

@femoru
Created October 20, 2017 01:05
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save femoru/732eb4ccadce503338e22230eb7d6cf6 to your computer and use it in GitHub Desktop.
Save femoru/732eb4ccadce503338e22230eb7d6cf6 to your computer and use it in GitHub Desktop.
void setup(){
Serial.begin(9600);
cerrarPuerta();
}
bool estaAbierto;
bool estaSubiendo;
bool estaBajando;
int piso = 1;
int pisoAnt = 0;
int maxVelocidad = 0;
int tiempoPisos = 1;
int tiempoPuerta = 1;
int destino = 1;
void loop(){
mostrarVelocidad();
maxVelocidad = obtenerVelocidad();
if(digitalRead(8) ==HIGH){
destino = 2;
}
if(digitalRead(7) ==HIGH){
destino = 1;
}
if(destino != piso && !estaAbierto){
if(piso < destino){
detener();
Serial.println("Subiendo");
subir();
}else{
detener();
Serial.println("Bajando");
bajar();
}
}
if(piso != pisoAnt){
pisoAnt = piso;
Serial.print("Piso ");
Serial.println(piso);
}
}
void abrirPuerta(){
digitalWrite(A5,LOW);
digitalWrite(A4,HIGH);
Serial.println("Puerta Abierta");
piso = destino;
estaAbierto = true;
delay(tiempoPuerta*1000);
cerrarPuerta();
}
void cerrarPuerta(){
digitalWrite(A5,HIGH);
digitalWrite(A4,LOW);
Serial.println("Puerta Cerrada");
estaAbierto = false;
}
void subir(){
analogWrite(6,map(maxVelocidad,0,1023,0,255));
delay(tiempoPisos*1000);
detener();
abrirPuerta();
}
void bajar(){
analogWrite(5,map(maxVelocidad,0,1023,0,255));
delay(tiempoPisos*1000);
detener();
abrirPuerta();
}
void detener(){
estaSubiendo = estaBajando = false;
analogWrite(5,0);
analogWrite(6,0);
}
int obtenerVelocidad(){
return analogRead(A3);
}
void mostrarVelocidad(){
int velActual = obtenerVelocidad();
if(maxVelocidad != velActual){
Serial.println(velActual);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment