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);
}