O sensor ultrasónico HC-SR04 é um sensor para medir distâncias. Este sensor conta com uma vantagem, também funciona sobre líquidos. Outros sensores, como por exemplo os infravermelhos não funcionam corretamente sobre liquidos ou superfícies transparentes.
Este sensor funciona enviando um sinal em forma de ultrasons (inaudíveis ao ouvido humano pela sua alta frequência) através de um dos cilindros, em seguida espera que ressalte sobre o objeto que há em frente e volte, depois é captado por outro cilindro do sensor.
O cálculo da distância obtém-se aplicando uma fórmula matemática que tem em conta a velocidade do som no ar como uma constante (343 metros por segundo).
Montagem e ligações
Para usar o sensor, ligamos o pino Digital 9 do Arduino ao pino Trigger do sensor, este pino vai controlar a emissão dos ultrasons. O pino Digital 8 do Arduino vai ser conectado ao pino Echo do sensor, este pino recolhe os sinais do ressalto. Este é o esquema:
Sketch de ensaio
Para usar este módulo não é necessária nenhuma livraria, apenas temos que fazer upload deste sketch ao Arduino. Está comentado linha a linha para que seja fácil de entender.
long distancia; //Declaramos uma variavel long para armazenar o valor da distancia long tiempo; //Declaramos outra variavel long para armazenar o valor do tempo de resposta void setup(){ Serial.begin(9600); //Iniciamos a comunicação serial pinMode(9, OUTPUT); //Declaramos o pino 9 como saída para a pulsação ultrasónica pinMode(8, INPUT); //Declaramos o pino 8 como entrada para receber o ressalto da pulsação } void loop(){ digitalWrite(9,LOW); //Apagamos a pulsação ultrasónica delayMicroseconds(5); //Pequena pausa de estabilização digitalWrite(9, HIGH); //Envio da pulsação ultrasónica delayMicroseconds(10); //Pequena pausa de estabilização tempo = pulseIn(8, HIGH); //Função para medir o tempo que decorreu entre o envío da pulsação ultrasónico e quando o sensor recebe o ressalto distancia= int(0.017*tiempo); //Fórmula para calcular a distancia usando a velocidade do som como constante Serial.print("Distancia "); Serial.print(distancia); Serial.println(" cm"); //Sacamos o resultado pelo monitor serial delay(1000); //Pequena pausa antes de reiniciar o ciclo }
O resultado:
Todos os produtos utilizados neste artigo podem ser encontrados na Loja de Eletrónica e Robótica – ElectroFun.
Gostaram deste artigo? Deixem o vosso comentário no formulário a baixo e partilhem com os vossos amigos.
Não se esqueçam de fazer like na nossa Página no Facebook.
Podem ainda colocar as vossas dúvidas no nosso Forum da Comunidade Arduino em Portugal ou no nosso Grupo no Facebook Arduino Portugal – Qual o teu projeto?