Localizador de distância baseado em HC-SR04 dá a distância de um obstáculo em centímetros. Tem um alcance de 2 cm a 400 cm. O projeto é construído em torno do AT89S52, que é um microcontrolador da família 8051. A distância é exibida em displays de sete segmentos.
Componentes:
AT89S52
Três 7 segundos. Desp. (Tipo de ânodo comum)
HC-SR04 (módulo sensor ultrassônico)
Conectores, PCBs etc.
O código é escrito em Assembly e é facilmente compreensível. O projeto pode ser usado em robôs para evitar obstáculos, etc.
Trabalhando:
O funcionamento dos sensores ultrassônicos é bastante simples e de fácil interface com o microcontrolador. O módulo do sensor possui 4 pinos, dos quais o Pin-1 e o Pin-4 são + Vcc e Gnd respectivamente. O Pin-2 é Trigger e o Pin-3 é o pino Echo.
Quando um pulso alto de 10us é aplicado no pino TRIG, o transmissor ultrassônico envia 8 pulsos consecutivos de frequência de 40kHz. À medida que o oitavo pulso é enviado, o pino ECHO do sensor torna-se HIGH. Agora, quando as ondas ultrassônicas são refletidas em qualquer superfície e são recebidas pelo receptor, o pino ECHO fica BAIXO. O tempo que leva para sair e retornar ao sensor é usado para encontrar a distância da superfície refletora.
Distância em centímetros = (Tempo/58) cms
Em polegadas = (tempo/148)
A distância também pode ser calculada levando em consideração a velocidade do som (=340m/s)
Explicação do CÓDIGO:
· As linhas de dados dos displays de sete segmentos têm interface na porta-0
· Porta-1, Pin-0,1 e 2 são linhas selecionadas para SSDs
· P3.0 está conectado ao Trig
· P3.1 está conectado ao pino Echo do módulo sensor
· Na parte principal do Programa, primeiro o Timer-1 é inicializado no modo 2 (recarga automática de 8 bits)
Quando P3.0 está definido como alto, a sub-rotina DELAY1 é chamada. Após 10us P3.0 é redefinido para 0
· Agora P3.1 é verificado quanto a um sinal alto. À medida que P3.1 fica alto, o Timer 1 inicia e toda vez que ele transborda, o Registrador A é incrementado.
· O valor de contagem carregado deve ser 58 (mencionado na folha de dados). Para que após 58 ciclos A seja incrementado uma vez. Mas como o atraso causado pelas instruções precisa ser compensado, o valor de contagem que usei foi 45 (=> 255D-210D).
· O valor armazenado em A é utilizado para extrair a Distância medida. Isso é feito pela instrução da Divisão.
· O valor dos dados de 8 bits é enviado sequencialmente para o respectivo display de 7 segmentos sendo selecionado através das linhas de seleção.
Código fonte do projeto
###
ORG 00H
3 |
Perguntas relacionadas a este artigo?
Pergunte e discuta nos fóruns EDAboard.com e Electro-Tech-Online.com.
Nos diga o que você acha!! Cancelar resposta
Você precisa estar logado para postar um comentário.