Balde inteligente

Mi pregunta es, que la programación funciona, pero la tapa se abre constantemente y NO es la idea. Al haber un sensor la tapa del balde tiene que abrir solamente al advertir presencia de un elemento que se va a eliminar. Espero me puedan ayudar. Esta es la programación que me mandaron:
Servo servo;
const int trigPin = 5;
const int echoPin = 6;
const int servoPin = 7;

long duration, dist, verage;
long aver[3];

void setup()
{
servo.attach(servoPin);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
servo.write(0);
delay(100);
servo.detach();
}

void measure()
{
digitalWrite(10, HIGH);
digitalWrite(trigPin, LOW);
delayMicroseconds(5);
digitalWrite(trigPin, HIGH);
delayMicroseconds(15);
digitalWrite(trigPin, LOW);
pinMode(echoPin, INPUT);
duration = pulseIn(echoPin, HIGH);
dist = (duration / 2) / 29.1;

}

void loop()
{
for (int i = 0; i <= 2; i++)
{
measure();
aver = dist;

  • delay(10);*
  • }*
  • dist = (aver[0] + aver[1] + aver[2]) / 3;*
  • if ( dist < 150 ) {*
  • //Change distance as per your need*
  • servo.attach(servoPin);*
  • delay(1);*
  • servo.write(90);*
  • delay(3000);*
  • servo.write(0);*
  • delay(300);*
  • servo.detach();*
  • }*
    }

Advertencia por doble posteo.
Encuentro otro doble posteo similar y será pasible de un dia sin poder acceder al foro.
Cuando escribes el mismo post en varias secciones ocurre que le haces perder tiempo a un forero que por una buena respuesta puede demorar hasta 15 minutos.
Espero quede claro y lee las Normas del foro.