Pular para o conteúdo principal

Sensor de distância por ultrassom HC-SR04 + display 16x2

Neste post iremos testar o sensor de distância por ultrassom HC-SR04. Com ele é possível medir distâncias diretamente de 2 a 400 cm e de uma forma qualitativa podemos detectar a presença de paredes, obstáculos, buracos, objetos, etc.

Muito usado em veículos e robôs, este sensor é de grande utilidade como um modo de fazer o seu sistema embarcado obter uma leitura do ambiente em que está inserido. Prevenindo, assim, colisões e quedas ou adaptando o sistema para que possa transpor certas barreiras.

Assim como o morcego e o golfinho, o sensor envia uma onda ultrassônica em direção a algum objeto e essa onda é refletida e volta para quem a enviou. O tempo que esta onda leva pra retornar será diferente se as distâncias e formatos dos objetos refletores forem diferentes. Isto faz com que o emissor obtenha informações sobre o ambiente ao seu redor de forma rápida, sem a necessidade de iluminação ou de contato físico direto.

Outro uso clássico do sonar é em navios para detectar objetos, submarinos e cardumes abaixo da superfície da água. Não confundir com o radar que utiliza ondas de rádio e não de som.



Partindo do princípio mencionado acima, este sonar tem um dispositivo gerador de ultrassom e um outro que é o receptor de ultrassom. O HC-SR04 tem 4 pinos, sendo:


Princípio de funcionamento


Para que o sensor inicie o seu funcionamento devemos fazer com ele envie uma onda para ser recebida instantes depois. A ativação deste envio é feita mantendo a saída Trigger em nível alto por pelo menos 10us. Logo após, automaticamente, o gerador de ultrassom envia oito ciclos de sinais ultrassônicos de 40KHz. Enquanto o sinal retorna, o pino Echo fica em nível alto até que o sinal retorne por completo. Ou seja, o tempo que o pino Echo fica em nível alto é igual ao tempo necessário para a onda ser enviada, refletida e retornada. Como este tempo é proporcional à distância do objeto refletor, podemos saber a que distância ele está, visto que a velocidade de propagação do som é de 340 m/s.

Podemos resumir o funcionamento do HC-SR04 como:


  1. Pino Trigger deve ser levado a nível 1 por pelo menos 10us;
  2. Uma onda de 8 ciclos a 40KHz é enviada;
  3. Durante o tempo de emissão e recepção o pino Echo vai a 1.    

 Formas de onda características




O módulo nos dá apenas o tempo de ida e de volta da onda sonora. Portanto, para sabermos que distância ela viajou, devemos levar em consideração sua velocidade, e que a largura do pulso de Echo é o tempo necessário de ida e também de volta (que são iguais!) então deveremos usar nos cálculos metade deste tempo.

O cálculo da velocidade se dá como:



Onde:
v: velocidade;
d: distância percorrida;
Δt: variação no tempo.

No nosso caso, v é a velocidade de propagação do som, 340 m/s, e Δt é igual ao tempo que o pino Echo fica em nível alto. Como Δt é o tempo de ida e volta, devemos dividir por 2. Deixando a equação desta forma:

Montagem


Na montagem de teste do módulo utilizamos um Arduino DUE junto com um LCD Shield para vermos os resultados e, é claro, o módulo ultrassônico. Conectamos o pino Trigger no pino 17 do Arduino DUE e o pino Echo no pino 21. Os de alimentação em 5V (vermelho) e GND (preto).





Por se tratar de um dispositivo onde o tempo é importante, temos a necessidade de utilizar no algoritmo algum tipo de TIMER para que sejam realizados os cálculos necessários. Para tanto utilizamos a função "micros()" que retorna o número de microssegundos desde que o Arduino começou a rodar o programa. É na verdade um timer que inicia sua contagem ao ligar o Arduino na alimentação e estoura em aproximadamente 70 minutos.


Então o que nosso algoritmo faz basicamente é anotar o valor que retorna da função "micros()" quando o pino Echo vai para nível alto e anotar novamente quando o mesmo cai para zero. Fazendo a diferença entre o segundo e o primeiro valor anotado, teremos o tempo de duração do pulso de Echo, que será o nosso Δt das equações acima mencionadas.

Aqui o link para o algoritmo utilizado.

Fotos dos teste


Distância da mesa até o anteparo (caderno)
Módulo Ultrassom afixado no tampo da mesa por volta de 11cm do anteparo
Montagem de testes

Valor medido sendo mostrado no display

Nova distância à aprox. 30 cm

Testes à aproximadamente 30 cm
Valor medido

Agradeemos a todos por acompanhar mais este post. Adquiram o módulo sensor de distância em nossa loja e façam seus projetos perceberem o ambiente em que estão envolvidos.

Até o próximo post!

Comentários

Postar um comentário

Postagens mais visitadas deste blog

Controlando LED via Bluetooth utilizando o Módulo HC-05

Hoje abordaremos uma breve demonstração de conexão do Módulo Bluetooth HC-05 Master/Slave com um dispositivo externo, e após a conexão utilizar o dispositivo para controlar um LED. A Placa Base utilizada como controladora é a Arduino Uno , que foi utilizada em conjunto com o Protoshield compatível com a mesma. Todos os itens utilizados podem ser adquiridos em nossa loja . Note que o Módulo Bluetooth HC-05 Master/Slave possui níveis de tensão de alimentação e operação diferentes, sendo que pode ser alimentado com  uma tensão entre 3,3v e 6v (no projeto foi alimentado com 5v, direto de um dos pinos do Arduino Uno ), mas a sua tensão de operação é de 3,3v. IMPORTANTE:    O Arduino consegue reconhecer a tensão de 3,3v no terminal RX como nível lógico alto, mas somente fornece 5v no terminal Tx como nível lógico alto. Portanto, se for utilizar os terminais Rx e Tx para a comunicação com os terminais Tx e Rx do HC-05,  o terminal Tx do HC-05 pode ser conectado diretamente ao ter

Como programar com Programador KIT 3.5 para PIC

Nesta postagem iremos falar sobre o Programador KIT 3.5 O Programador KIT 3.5 é um programador para microcontroladores PIC bastante completo, até o momento compatível com  mais de 600 dispositivos da linha de microcontroladores da Microchip, incluindo a nova linha dsPIC. (Confira aqu i a lista com os microcontroladores compatíveis com o Kit 3.5) Permite a programação diretamente na placa (ICSP) ou então através de conectores ZIF (não inclusos). Detalhe para a interface ICSP Com ele é possível gravar (programar), ler, verificar e copiar os códigos dos microcontroladores, através do software gratuito PicKit 3 Programmer ( instruções de uso ), uma vez que ele é totalmente compatível com o PICkit3. Lembrando que este software é apenas para a gravação do arquivo HEX no seu microcontrolador, sendo que é necessário gerar esse arquivo em um compilador de sua escolha. Além disso, é possível utilizá-lo como ferramenta de depuração (debug) através do software MPLAB. Caract

Utilizando o Programador USB para PIC K150

Nessa postagem iremos demonstrar a utilização do Programador USB para PIC K150 O gravador possui um soquete do tipo ZIF (ZIF - Zero Insertion Force - é um soquete com uma alavanca, que permite a colocação e a retirada dos microcontroladores sem risco de danificar seus terminais) para a programação dos microcontroladores. Conta também com um conector para a programação ICSP (In Circuit Serial Programming, que será abordada futuramente em outra postagem, pois é necessário que se faça algumas adaptações no circuito a ser programado). O programador é controlado pelo PIC16F628A, e no site do fabricante do gravador é possível encontrar informações sobre como atualizar o firmware do gravador, para possibilitar a gravação de mais dispositivos. Instalação do Programador USB para PIC K150 Se você estiver utilizando o Windows 7/Vista/XP, o driver deve ser instalado normalmente, sem que seja necessária a interferência do usuário. Caso esteja utilizando o Windows 8/8.1, o processo é um po