sensor HC-SR04 con arduino y servomotor

Hola buenas, tengo un problema con el sensor HC-SR04:
Resulta que estoy haciendo un comedero automático y no logro hacer que el sensor HC-SR04 detecte los objetos y hacer que el servomotor entre en acción por así decirlo, ya hice la programación y funciona bien pero al poner un objeto, el sensor HC-SR04 no recibe la señal de que hay un objeto, los cables los tengo conectados como corresponde.
Aquí el codigo:

#include <Servo.h>
Servo puerta;

int trig = 10;
int echo = 9;
int tiempo;
int distancia;

void setup()
{
pinMode(trig,OUTPUT);
pinMode(echo,INPUT);
puerta.attach(8 );

}

void loop()
{
digitalWrite(trig,HIGH);
delay(500);
digitalWrite(trig,LOW);
tiempo = pulseIn(echo,HIGH);
distancia = tiempo/58.2;
Serial.println(distancia);
delay(500);
if (distancia <=20);
{
puerta.write(180);
}
if (distancia >20);
{
puerta.write(0);
}

}
¿Cual podría ser el problema?
Gracias.

Creo que el problema es el pulso de 500 mseg (1/2 segundo) que estás generando con

delay(500);

Cuando debería ser de unos pocos microsegundos, típicamente 10 useg.

delayMicroseconds(10);

Saludos

gatul:
Creo que el problema es el pulso de 500 mseg (1/2 segundo) que estás generando con

delay(500);

Cuando debería ser de unos pocos microsegundos, típicamente 10 useg.

delayMicroseconds(10);

Saludos

Lo he modificado, pero sigue sin haber cambios, sigue sin recibir la señal de que hay un objeto presente

No me había dado cuenta que la variable tiempo la definiste como entero pero tiene que ser unsigned long y la variable distancia seria conveniente que la definas como float.

Moderador
Por favor edita tu post usando etiquetas de código.

Tampoco repitas cada comentario que se te hace. Si lo vas a citar, que sea solo el pàrrafo no todo el post. Hay una diferencia entre un párrafo y un post completo.
Ver punto 14 de las normas del foro, último párrafo precisamente donde habla de no repetir lo que te dice otro forero, para que el hilo permanezca limpio.
Gracias.

Normas del foro

Si pones en Google o tu buscador: Arduino ultrasónico encontrarás muchos tutoriales al respecto.
No hay porqué perder tiempo en cosas que estan resueltas.
Te recomiendo la librería NewPing. Mira sus ejemplos y ajusta a los pines de tu sensor y listo, ya podras leer con el sensor ultrasónico.