Sketch para leer la distancia a un objeto obtenida en el sensor de ultrasonidos. Se ha creado una función la la intención de ahorrar código dado que vamos a utilizar este sensor en un robot móvil y así conseguimos simplificar el código.
#define EchoPin 2
#define TriggerPin 3
long distancia;
long tiempo;
void setup(){
Serial.begin(9600);
pinMode(TriggerPin, OUTPUT); /*activación del pin 9 como salida: para el pulso de ultrasonido*/
pinMode(EchoPin, INPUT); /*activación del pin 8 como entrada: tiempo del rebote del ultrasonido*/
}
void loop(){
distancia=medirDistancia();
}
//Función que nos devuelve la distancia al objeto
long medirDistancia()
{
digitalWrite(TriggerPin,LOW); /* Por cuestión de estabilización del sensor*/
delayMicroseconds(5);
digitalWrite(TriggerPin, HIGH); /* envío del pulso ultrasónico*/
delayMicroseconds(10);
tiempo=pulseIn(EchoPin, HIGH); /* Función para medir la longitud del pulso entrante. Mide el tiempo que transcurrido entre el envío del pulso ultrasónico y cuando el sensor recibe el rebote, es decir: desde que el pin 12 empieza a recibir el rebote, HIGH, hasta que deja de hacerlo, LOW, la longitud del pulso entrante*/
distancia= int(0.017*tiempo); /*fórmula para calcular la distancia obteniendo un valor entero*/
/*Monitorización en centímetros por el monitor serial*/
Serial.println("Distancia ");
Serial.println(distancia);
Serial.println(" cm");
delay(100);
}
No hay comentarios:
Publicar un comentario