Upload New File

parent 2b64f5b5
//Motores elevador
#define MOTOR_EU 12 //upwards
#define MOTOR_ED 13 //downwards
#define MOTOR_EP 11 //pulse
//microswitch PB
#define PB 3
int pos_s = 0; // variable to store the servo position
Servo myservo; // create servo object to control a servo
//variables grua
int pisop;
//encoder del elevador
int A = 2; //variable A a pin digital 2
int PosicionY = 0; // variable POSICION
unsigned long ultimaInterrupcion = 0;
boolean Actual,Ultima;
void bajar(){ // Funcion para que baje
Serial.println("Bajando");
while (digitalRead(PB)==!LOW)
{
digitalWrite(MOTOR_EU,LOW);
digitalWrite(MOTOR_ED,HIGH);
analogWrite(MOTOR_EP,185);
}
PosicionY=0;
Serial.println("Planta Baja");
digitalWrite(MOTOR_ED,LOW);
}
void expulsar(){
for (int p=60;p>0;p--){
myservo.write(p);
delay(25);
}
delay(1000);
pos_s=60;
myservo.write(pos_s);
int busy=0;
}
void Subir(int Coord_Piso){ //Funcion a la que le mandas el numero de "pasos" y va hasta ahi ;)
Serial.println("Subiendo");
while(PosicionY<Coord_Piso)
{
digitalWrite(MOTOR_EU,HIGH);
digitalWrite(MOTOR_ED,LOW);
analogWrite(MOTOR_EP,255);
}
digitalWrite(MOTOR_EU,LOW);
digitalWrite(MOTOR_ED,LOW);
analogWrite(MOTOR_EP,255);
Serial.print("En PISO:");
Serial.println(pisop);
}
void altitud()
{
//cada 5 millisegundos pregunta si el boton cambio de estado, de ser asi actualiza la posicion
unsigned long tiempoInterrupcion = millis(); // variable almacena valor de func. millis
if (tiempoInterrupcion - ultimaInterrupcion > 5)
{ // rutina antirebote desestima
PosicionY++ ; // incrementa POSICION en 1
ultimaInterrupcion = tiempoInterrupcion;
}
}
void ir_a_piso(int piso){
switch(piso){
case 1:
pisop=1;
Subir(21); //Piso 1
break;
case 2:
pisop=2;
Subir(41); //Piso 2
break;
case 3:
pisop=3;
Subir(61); //Piso 3
break;
case 0:
bajar();
break;
}
}
void apagar(){
digitalWrite(MOTOR_EU,LOW);
digitalWrite(MOTOR_ED,LOW);
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment