Mostrando entradas con la etiqueta Ultrasonidos.. Mostrar todas las entradas
Mostrando entradas con la etiqueta Ultrasonidos.. Mostrar todas las entradas

30 jun 2015

Sensor de distancia HC-SR04

HC-SR04 es un sensor de distancia por ultrasonidos económico fácil de usar.


Conexionado


El esquema no presenta ninguna dificultad ya que tan solo debemos conectar Vcc a 5v, Gnd a masa y echo y trigger a los pines 7 y ocho respectivamente.



Como funciona


Este sensor funciona igual que la eco localización de un murciélago. Primero emite una serie de sonidos y luego espera a obtener el eco contando el tiempo. Luego conociendo la velocidad del sonido podemos determinar a que distancia esta el objeto. Es lo mismo que nos enseñaron de pequeños con los truenos.



Código arduino


#define echoPin 7 // Echo Pin
#define trigPin 8 // Trigger Pin
#define LEDPin 13 // Onboard LED


int error = 0;
int maximumRange = 200;
int minimumRange = 0;    // Minimum range needed
long duration, distance; // Duration used to calculate distance


void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
error = 1;
pinMode(LEDPin, OUTPUT); // Use LED indicator (if required)
Serial.begin (9600);
}


void loop() {
/* The following trigPin/echoPin cycle is used to determine the
distance of the nearest object by bouncing soundwaves off of it. */
digitalWrite(trigPin, LOW);
delayMicroseconds(2);

digitalWrite(trigPin, HIGH);
delayMicroseconds(20);

digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);

//Calculate the distance (in cm) based on the speed of sound.
// speedOfSound = 331+0.61*temp; // temp *C
distance = duration/58.2;

if (distance >= maximumRange || distance <= minimumRange){
/* Send a negative number to computer and Turn LED ON
to indicate "out of range" */
if( error ){
Serial.println("Out of Range");
error = 0;
}
digitalWrite(LEDPin, HIGH);
}
else {
error = 1;
/* Send the distance to the computer using Serial protocol, and
turn LED OFF to indicate successful reading. */
Serial.println(distance);
digitalWrite(LEDPin, LOW);
}

//Delay 50ms before next reading.
delay(60);
}