Balde inteligente

Buenos días, podría ayudarme con el código de programación de un balde inteligente que lleva sesor de movimiento. El sensor HC- SR 04 Y EL CÓDIGO ES EL SIGUIENTE:
#include <Servo.h>
Servo servo;

int trigPin = 5;

int echoPin = 6;

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++)
{ //average distance
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(); *
}
}

Por favor lee las Normas (ver abajo link) y edita tu código usando etiquetas para código </>.
Edito:
Te he advertido en el otro hilo por doble posteo.
Un doble posteo mas y tienes una suspensión de 1 día y luego iría en aumento.
Las explicaciones estan en el otro hilo en la Sección General.

Normas del foro

Si, podemos ayudarte. Si nos informas como.

¿Cúal es el problema que tienes con tu código? No lo especificas.

Solo he visto dos cosas mal:

  • Has declarado los nombre de los pines como int y deberias haberlo hecho como constate usando const int.

  • Y un error de compilación

incompatible types in assignment of 'long int' to 'long int [3]'

Este error se debe a que la variable aver es un array y tienes que indicar el indice de este.

#include <Servo.h>

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[i] = 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();
  }
}