Conectando um Sensor Ultrassônico no Arduíno - efrainmpp1/Arduino-URA GitHub Wiki
Introdução
O sensor ultrassônico é um aparelho que emite ondas ultrassonoras e nos permite saber a distancia de um objeto
qualquer até nosso sensor.É constantemente utilizado no cotidiano,como por exemplo em um sistema de segurança se utilizam alarmes que são disparados quando o sensor indica que algo não deveria estar influenciando no sensor então provavelmente tem um intruso.Alguns carros já apresentam a tecnologia usando-a para avisar se está perto de mais de um outro carro ou qualquer objeto,o que facilita muito na hora de estacionar de ré.
Montagem
Primeiramente se analisa que o sensor apresenta quatro pinos,sendo que dois deles (um de cada ponta) são de entrada e saída de energia,já os outros dois(os dois do meio) são o pino de echo que deve ser ligado ao pino 5 e o trig deve ser ligado ao pino 4(mas fica à sua escolha,mas no código utilizamos os pinos de numero 5 e 4 respectivamente).O trigger se responsabiliza por enviar as ondas e o echo no recebimento dessas ondas.
Código
Vale lembrar que para utilizar esse sensor você precisa ter o pacote ultrassom em sua biblioteca Arduíno,caso não tenha você necessitará fazer o download clicando aqui.Para instalar é simples,basta entrar em sua IDL do Arduino em Sketch e clicar em adicionar arquivo e selecionar sua pasta.Agora sim podemos já ir para o código.
//trazemos a função do sensor para o código
#include <Ultrasonic.h>
//Definimos qual será o numero do pino do trigger e do echo
#define pino_trigger 4
#define pino_echo 5
//chamamos a função com seus devidos parâmetros que no caso são o trigger e o echo
Ultrasonic ultrasonic(pino_trigger, pino_echo);
void setup()
{
//iniciamos o serial para podermos gravar os dados que o sensor nos enviar
Serial.begin(9600);
Serial.println("Lendo dados do sensor...");
}
void loop()
{
//Declaramos duas variáveis float que armazenaremos os dados em centimetros e polegadas
float cmMsec, inMsec;
long microsec = ultrasonic.timing();
cmMsec = ultrasonic.convert(microsec, Ultrasonic::CM);
inMsec = ultrasonic.convert(microsec, Ultrasonic::IN);
//Imprime as informacoes no serial monitor
Serial.print("Distancia em cm: ");
Serial.print(cmMsec);
Serial.print(" - Distancia em polegadas: ");
Serial.println(inMsec);
//o loop ocorrera por um segundo
delay(1000);
}