CIRCUITO CON SENSOR DE DISTANCIA HCSR04
Arduino y los sensores de distancia
Home Circuito Con Sensor De Distancia
OBJETIVOS
Sensor ultrasónico de distancia.
Más sobre medir el tiempo: delayMicroseconds ().
Más funciones disponibles: PulseIn ().
Importando una librería externa.
MATERIAL REQUERIDO.
Arduino Uno o similar.
Esta sesión acepta cualquier otro modelo de Arduino.
Una Protoboard mas cables.
Sensor de distancia HC-SR04
Un diodo LED y una resistencia.
COMO FUNCIONA UN SENSOR ULTRASÓNICODE DISTANCIA
Hemos visto, en los documentales, que los murciélagos son capaces de volar en completa oscuridad y sin embargo, sortear obstáculos o atrapar insectos en vuelo. Sabemos que lo hacen, pero rara vez pensamos como.
Tenemos una vaga idea de que se llama ecolocalización y que más omenos tiene que ver con unos sonidos agudos que emiten y que después recogen con esas enormes orejas que Dios les ha dado, pero rara vez nos planteamos cómo es esto posible.
Delfines y ballenas utilizan un sistema similar para atrapar a sus presas, y hasta hemos visto que, en cualquier película de submarinos, en el momento álgido el capitán ordena emitir un pulso único de sonar para localizar alenemigo.
El concepto básico, es siempre el mismo, sabiendo a qué velocidad viaja el sonido, si emitimos un pulso sónico corto y escuchamos cuanto tiempo tarda en regresar el eco podemos calcular la distancia a la que se encuentra el objeto en el que ha rebotado la señal.
El radar funciona de modo similar aunque usando ondas de radio frecuencia muy cortasy con una problemática propia descomunal. Unpulso de radiofrecuencia se emite desde la antena y se recoge el eco que vuelve a la velocidad de la luz.
Lo que haremos en esta sesión es utilizar un sensor de distancia sencillo HC-SR04 (y muy parecido a los sensores de aparcamiento de los coches modernos), que nos permite enviar estos pulsos ultrasónicos y escuchar el eco de retorno. Midiendo este tiempo, podemos calcular la distancia hastael obstáculo.
El oído humano no percibe sonidos por encima de 20kHz. Por eso, a las ondas de mayor frecuencia las llamamos ultrasonidos ( mas allá del sonido). Los sensores de ultrasonidos funcionan sobre los 40 kHz.
No son perfectos, les influye la temperatura ambiente, la humedad y los materiales en los que reflejan, lo que genera una cierta incertidumbre. Pero a cambio son baratos yefectivos hasta un poco más de 3 metros en condiciones normales si la precisión no es un problema determinante
DIAGRAMA DE CONEXIÓN
Veamos como conectar uno de esto detectores a nuestros Duinos. Aquí está el esquema eléctrico y de protoboard por cortesía de Fritzing:
Y de nuevo, el diagrama de conexión de la protoboard
EL PROGRAMA DE CONTROL
Vamos con el programa, empezamos definiendo algunosvalores:
#define trigPin 13
#define echoPin 12
#define led 2
Hasta ahora habíamos visto que podíamos definir una variable como int, por ejemplo, y también como una constante (const int pin). Aquí utilizamos otro método, el #define que es una directiva para el compilador.
Esto solo significa que el compilador (en rigor el pre procesador) cambiará todas las ocurrencias de estos #define en nuestroprograma por su valorantes de compilar. Esta es la forma clásica de C de hacer esto y tiene la virtud de que no ocupa memoria definiendo una variable (y con un Arduino UNO, que va muy corto de memoria, esto puede ser crítico en ocasiones).
void setup()
{
Serial.begin (9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(led, OUTPUT);
}
Ya estamosmás que habituados a la función delay(milis), pero el reloj interno de Arduino mide en microsegundos y tenemos otra función parecida delayMicroseconds(µs) que simplemente congela Arduino el número especificado de microsegundos.
Para dar un pulso ultrasónico lo que hacemos es activar el pin Trigger durante unos microsegundos y para ello lo ponemos en HIGH, antes de escuchar el eco:...
Regístrate para leer el documento completo.