Hoje vamos fazer uma interface muito interessante sensor com módulo NRF.
Você já ouviu morcegos se comunicando entre si? Não podemos ouvi-los porque eles usam frequência ultrassônica para se comunicarem. As frequências ultrassônicas não podem ser ouvidas pelos ouvidos humanos. O ser humano só pode ouvir som entre a frequência de 20 a 20 KHz, enquanto a frequência ultrassônica fica acima de 20 KHz e se expande até vários GHz.
Fig. 1: Protótipo de interface NRF24LE1 com sensor ultrassônico
As ondas ultrassônicas têm diferentes velocidades de deslocamento no ar, líquidos e gases. No ar, eles geralmente viajam a 340 m/s. Eles têm a tendência de serem refletidos em uma superfície sólida. Devido a esta funcionalidade são utilizados na medição de distâncias. Se o tempo entre a transmissão e a recepção for conhecido, a distância da superfície sólida do transmissor pode ser calculada.
Usaremos o sensor ultrassônico HCSR04 que possui transmissor, receptor e circuito de controle embutidos. Faremos a interface deste sensor com o NRF24LE1 usando pinos de entrada/saída.
HCSR04 possui 4 pinos:
1. VCC – 5V
2. Trig – Pino de entrada do gatilho
3. Eco – Pino de saída
4. Gnd – Terra
Algumas especificações deste sensor são:
· Faixa de medição de distância de 2 cm a 400 cm
· Frequência de trabalho – 40Khz
· Utiliza pulso de disparo de 10 uS (microssegundos).
· Transmite oito pulsos de 40 kHz quando acionado
· Recebe eco e emite pulso alto com alcance proporcional à distância.
· 60 mS de atraso devem ser dados entre o próximo disparo.
Cálculo da distância
Fig. 2: Imagem da interface NRF24LE1 com sensor ultrassônico
Existem duas maneiras de medir distância:
1. Primeiro determine o tempo entre a transmissão e a recepção do eco. Em seguida, use a fórmula = Tempo * velocidade / 2. Na velocidade do ar é 340 m/s.
2. Calcule o tempo durante o qual o pino de saída do sensor está alto. Em seguida, use a fórmula pré-determinada, distância em cm = tempo/58 ou distância em polegadas = tempo/148. A hora estará em nós.
Estaremos usando o segundo método para cálculo de distância.
Por favor, certifique-se de ter lido nossos artigos anteriores sobre Temporizadores e NRF24LE1.
O módulo NRF será utilizado para acionar o sensor com pulso de 10 us. Após o disparo, o sensor enviará sinal de 40 KHz e aguardará o eco. Se o eco for recebido, ele emitirá um pulso alto. Este pulso alto terá uma faixa de largura proporcional à distância.
No NRF, o pino0 da porta0 ou P00 é usado como pino de saída para acionar o sensor, enquanto o pino 1 da porta0 ou P01 é usado como pino de entrada para receber o pulso alto do sensor.
Estamos usando o Timer0 para medir o período de tempo durante o qual o pino de saída permanece alto. O Timer0 é inicializado no Modo1, que é o modo de 16 bits. Isso significa que podemos medir o tempo até (0,75 * 65536) = 49152 uS. Para calcular o tempo medido pelo timer0 usamos time = (valor do registro do timer0 * 0,75) uS. Para calcular a distância do objeto sólido podemos usar distância em cm = tempo/58.
Escrevemos o código para você entender o funcionamento.
Código-fonte do projeto
###
//Program to
/* Direitos autorais (c) 2009 Nordic Semiconductor. Todos os direitos reservados.
###
Diagramas de circuito
Diagrama de Circuito-NRF24LE1-Interface-Sensor Ultrassônico |
Vídeo do projeto