Hoy vamos a hacer una interfaz de sensor muy interesante con módulo NRF .
¿Alguna vez has oído a los murciélagos comunicarse entre sí? No podemos oírlos porque utilizan frecuencia ultrasónica para comunicarse. Los oídos humanos no pueden escuchar las frecuencias ultrasónicas. Los humanos sólo pueden oír el sonido entre 20 y 20 KHz, mientras que la frecuencia ultrasónica está por encima de 20 KHz y se expande hasta varios GHz.
Fig. 1: Prototipo de interfaz NRF24LE1 con sensor ultrasónico
Las ondas ultrasónicas tienen diferentes velocidades de viaje en el aire, líquidos y gases. En el aire, generalmente viajan a 340 m/s. Tienen tendencia a reflejarse en una superficie sólida. Debido a esta funcionalidad, se utilizan para medir distancias. Si se conoce el tiempo entre la transmisión y la recepción, se puede calcular la distancia desde la superficie sólida del transmisor.
Usaremos el sensor ultrasónico HCSR04 que tiene un transmisor, receptor y circuito de control incorporados. Conectaremos este sensor con el NRF24LE1 usando pines de entrada/salida.
HCSR04 tiene 4 pines:
1. VCC – 5V
2. Trig – Pin de entrada del disparador
3. Eco – Pin de salida
4. Tierra – Tierra
Algunas especificaciones de este sensor son:
· Rango de medición de distancia de 2 cm a 400 cm
· Frecuencia de trabajo – 40Khz
· Utiliza un pulso de disparo de 10 uS (microsegundos).
· Transmite ocho pulsos de 40 kHz cuando se activa
· Recibe un eco y emite un pulso alto con un alcance proporcional a la distancia.
· Se debe dar un retraso de 60 mS entre el siguiente disparo.
Cálculo de distancia
Fig. 2: Imagen de la interfaz NRF24LE1 con sensor ultrasónico
Hay dos formas de medir la distancia:
1. Primero determine el tiempo entre la transmisión y la recepción del eco. Luego usa la fórmula = Tiempo * velocidad / 2. En el aire la velocidad es 340 m/s.
2. Calcule el tiempo que el pin de salida del sensor está alto. Luego use la fórmula predeterminada, distancia en cm = tiempo/58 o distancia en pulgadas = tiempo/148. El tiempo estará sobre nosotros.
Usaremos el segundo método para calcular la distancia.
Asegúrese de haber leído nuestros artículos anteriores sobre Temporizadores y NRF24LE1 .
El módulo NRF se utilizará para activar el sensor con un pulso de 10 us. Después de activarse, el sensor enviará una señal de 40 KHz y esperará el eco. Si se recibe el eco, emitirá un pulso fuerte. Este pulso alto tendrá un ancho de banda proporcional a la distancia.
En NRF, el pin0 del puerto0 o P00 se usa como pin de salida para controlar el sensor, mientras que el pin1 del puerto0 o P01 se usa como pin de entrada para recibir el pulso alto del sensor.
Estamos usando Timer0 para medir el período de tiempo durante el cual el pin de salida permanece alto. Timer0 se inicializa en Modo1, que es el modo de 16 bits. Esto significa que podemos medir el tiempo hasta (0,75 * 65536) = 49152 uS. Para calcular el tiempo medido por el temporizador0 usamos tiempo = (valor de registro del temporizador0 * 0,75) uS. Para calcular la distancia al objeto sólido podemos usar distancia en cm = tiempo/58.
Escribimos el código para que entiendas cómo funciona.
Código fuente del proyecto
###
//Programa para
/* Copyright (c) 2009 Nordic Semiconductor. Todos los derechos reservados.
###
Diagramas de circuito
Diagrama de circuito-NRF24LE1-Interfaz-Sensor ultrasónico |
Vídeo del proyecto