Programación


#include <Servo.h>


Servo servo;

int trigPin = 9;

int echoPin = 10;

long duration;

int distance;


void setup() {

  servo.attach(3);  // Pin de control del servomotor

  pinMode(trigPin, OUTPUT);

  pinMode(echoPin, INPUT);

  servo.write(0);  // Tapa cerrada

  Serial.begin(9600);

}


void loop() {

  // Emite pulso ultrasónico

  digitalWrite(trigPin, LOW);

  delayMicroseconds(2);

  digitalWrite(trigPin, HIGH);

  delayMicroseconds(10);

  digitalWrite(trigPin, LOW);


  // Calcula distancia

  duration = pulseIn(echoPin, HIGH);

  distance = duration * 0.034 / 2;


  Serial.println(distance);


  if (distance < 20) {

    servo.write(90);  // Abrir tapa

    delay(3000);      // Esperar 3 segundos

    servo.write(0);   // Cerrar tapa

  }


  delay(500);  // Pausa para evitar lectura excesiva

}