No artigo de hoje estudaremos a utilização de um sensor de distância para aplicações diversas, que baseia sua detecção no efeito de reflexão de ondas na faixa do ultrassom. Trata-se do conhecido HC-SR04, cuja imagem pode ser vista abaixo.

   De acordo com  seu datasheet, este sensor pode medir distâncias entre 2 centímetros e 4 metros, com uma precisão de até 3 milímetros!!. Na imagem abaixo é possível observar o diagrama de tempos destes sensor. Seu funcionamento se baseia em enviar um pulso de 10 microssegundos “disparo” e então aguardar pelo “resultado (echo)”, que é um sinal em nível alto com duração proporcional á distância medida.

   Porém para utilizar este sensor não é necessário conhecer como ele faz a medição, pois todo o código vem pronto em uma biblioteca chamada NewPing, que pode ser baixada aqui, e cujas informações estão disponíveis aqui.
   A biblioteca vêm com quatro exemplos que você pode testar; neste artigo vamos testar o sketch “NewPingExample.ino“, que retorna o valor em centímetros entre o sensor e um objeto na sua frente, de tempos em  tempos (ajustável). O esquema de ligação e foto da montagem pode ser visto abaixo.
A conexão é simples – apenas dois fios de sinal e dois de alimentação:
– VCC do SR04 com o 5V do Arduino
– GND do SR04 com  o GND do Arduino
– Echo do SR04 com o pino  11 do Arduino
– TRG do SR04 com o pino 12 do Arduino
O Sketch (código) utilizado é visto abaixo. Após copiar e colar este código na IDE do Arduino, basta fazer upload do código para seu Arduino e iniciar o teste do sensor!.
 // ---------------------------------------------------------------------------  
// Example NewPing library sketch that does a ping about 20 times per second.
// ---------------------------------------------------------------------------

#include <NewPing.h>

#define TRIGGER_PIN 12 // Arduino pin tied to trigger pin on the ultrasonic sensor.
#define ECHO_PIN 11 // Arduino pin tied to echo pin on the ultrasonic sensor.
#define MAX_DISTANCE 400 // Maximum distance we want to ping for (in centimeters). Maximum sensor distance is rated at 400-500cm.

NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); // NewPing setup of pins and maximum distance.

void setup() {
Serial.begin(115200); // Open serial monitor at 115200 baud to see ping results.
}

void loop() {
delay(500); // Wait 50ms between pings (about 20 pings/sec). 29ms should be the shortest delay between pings.
Serial.print("Ping: ");
Serial.print(sonar.ping_cm()); // Send ping, get distance in cm and print result (0 = outside set distance range)
Serial.println("cm");
}

    A utilização da biblioteca “NewPing”  trouxe facilidade para aplicação do SR04, então partir da utilização deste simples código de exmplo é possível criar aplicações muito mais elaboradas, como por exemplo um robô capaz de resolver um labirinto ou sair de situações de perigo.

   Testes e confiabilidade: de acordo com esta documentação a eficácia do sensor não é prejudicada por diferentes níveis de luminosidade (como em sensores laser ou ópticos), porém pode ser dificultada quando apontado para tecidos ou objetos muito irregulares.
   Nos testes que realizamos com uma parede branca à  distâncias entre 30 centímetros  e 2 metros observamos que o sensor tem uma boa precisão, porém não podemos confirmar o quão preciso pois comparamos a medição do sensor com um “metro de pedreiro” que tínhamos disponível.
   Durante os testes o sensor apresentou o valor “0cm” por diversas vezes (inclusive apontado para superfícies sólidas como a parede branca), colocando em dúvida sua repetibilidade e confiabilidade. Isto pode se dever ao número de amostragens que o código realiza ( uma a cada 0,5 segundos); acreditamos que aumentando número de amostras (e tirando a média) é possível eliminar ou diminuir erros de medição.
   Resumo da experiência: pelo preço baixo e facilidade de utilização acreditamos que o SR04  se monstra uma ótima opção para robótica educacional e também em projetos de hobbistas e entusiastas.

– Para comprar o sensor Ultrassônico SR04 em nosso Parceiro ICStation (da China), clique no texto: For Arduino Ultrasonic Module HC-SR04 Distance Transducer Sensor
– Para comprar o Arduino UNO em nosso Parceiro ICStation (da China), clique no texto: ICStation ATMEGA328 UNO V3.0 R3 Board Compatible Arduino UNO R3
– Para comprar os cabinhos coloridos (jumpers) em nosso Parceiro ICStation (da China), clique no texto: 1pcs Dupont Wire 10CM 2.54MM Female to Male 1P-1P Jumper Cable For Arduino
Sensor de distância ultrassônico SR04 – com Arduino
Classificado como:                        

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Solve : *
7 + 1 =