Diferencia entre revisiones de «Papelera automatizada»
Ir a la navegación
Ir a la búsqueda
Sin resumen de edición |
|||
| (No se muestra una edición intermedia del mismo usuario) | |||
| Línea 1: | Línea 1: | ||
=Código= | =Código= | ||
< | <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 17: | 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( | 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); | |||
Serial.println("tapa levantada, esperando 5s"); | |||
// esperar con tapa abierta | |||
delay(5000); | |||
// bajar la tapa de a poco | |||
for(int pos= | for(int pos=91; pos<180; pos++){ | ||
servoMotor.write(pos); | servoMotor.write(pos); | ||
delay(30); | |||
} | } | ||
Serial.println("tapa bajada"); | |||
delay(1000); | |||
} | } | ||
} | } | ||
</syntaxhighlight> | |||
Revisión actual - 00:05 3 sep 2026
Código
#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);//Inicializamos el pin con 0
// arrancar en posicion cerrada
servoMotor.write(180);
}
void loop() {
Serial.println("loopeando");
long t; //tiempo que demora en llegar el eco
long d; //distancia en centimetros
digitalWrite(Trigger, HIGH);
delayMicroseconds(10); //Enviamos un pulso de 10us
digitalWrite(Trigger, LOW);
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);
Serial.println("tapa levantada, esperando 5s");
// esperar con tapa abierta
delay(5000);
// bajar la tapa de a poco
for(int pos=91; pos<180; pos++){
servoMotor.write(pos);
delay(30);
}
Serial.println("tapa bajada");
delay(1000);
}
}