Diferencia entre revisiones de «Papelera automatizada»

Página creada con «=Papelera Automatizada= =Código= <pre> #include <Servo.h> const int Trigger = 2; //Pin digital 2 para el Trigger del sensor const int Echo = 3; //Pin digital 3 para el Echo del sensor Servo servoMotor; void setup() { Serial.begin(9600); servoMotor.attach(9); //sensor ultrasonido Serial.begin(9600);//iniciailzamos la comunicación pinMode(Trigger, OUTPUT); //pin como salida pinMode(Echo, INPUT); //pin como entrada digitalWrite(Trigger, LOW);//Inicializam…»
 
Sin resumen de edición
 
(No se muestran 2 ediciones intermedias del mismo usuario)
Línea 1: Línea 1:
=Papelera Automatizada=
=Código=
=Código=
<pre>
<syntaxhighlight lang="c++" line copy>
#include <Servo.h>
#include <Servo.h>
const int Trigger = 2;  //Pin digital 2 para el Trigger del sensor
const int Trigger = 2;  //Pin digital 2 para el Trigger del sensor
Línea 18: Línea 17:
   digitalWrite(Trigger, LOW);//Inicializamos el pin con 0
   digitalWrite(Trigger, LOW);//Inicializamos el pin con 0
    
    
  // arrancar en posicion cerrada
  servoMotor.write(180);
 
}
}


void loop() {
void loop() {
  long t; //tiempo que demora en llegar el eco
  Serial.println("loopeando");
 
  long t; //tiempo que demora en llegar el eco
   long d; //distancia en centimetros
   long d; //distancia en centimetros


   digitalWrite(Trigger, HIGH);
   digitalWrite(Trigger, HIGH);


   delayMicroseconds(5);          //Enviamos un pulso de 10us
   delayMicroseconds(10);          //Enviamos un pulso de 10us


   digitalWrite(Trigger, LOW);
   digitalWrite(Trigger, LOW);


   t = pulseIn(Echo, HIGH); //obtenemos el ancho del pulso
   t = pulseIn(Echo, HIGH); //obtenemos el ancho del pulso
 
  // no tomar valores erroneos del sensor
  if (t == 0 ){
    return;
  }
  d = t/59;            //escalamos el tiempo a una distancia en cm
  Serial.print("distancia sensor: ");
  Serial.println(d);
 
 
  if (d<10){
    Serial.println("sensor activado, levantando tapa");
    // Subir la tapa
    servoMotor.write(90);


  d = t/59;             //escalamos el tiempo a una distancia en cm
    Serial.println("tapa levantada, esperando 5s");


    // esperar con tapa abierta
    delay(5000);


  if (d<10){
    // bajar la tapa de a poco
     for(int pos=90; pos<180; pos++){
     for(int pos=91; pos<180; pos++){
       servoMotor.write(pos);
       servoMotor.write(pos);
       delay(30
       delay(30);
      );
    }
    for(int pos=180; pos<90; pos++){
      servoMotor.write(pos);
      delay(30);
     }
     }
    Serial.println("tapa bajada");
    delay(1000);
   }
   }
delay(1000);
 


}
}
 
  /*Serial.print("Distancia: ");
  Serial.print(d);      //Enviamos serialmente el valor de la distancia
  Serial.print("cm");


  Serial.println();


  delay(1000);          //Hacemos una pausa de 100ms*/
</syntaxhighlight>