Sensor ultrassônico Arduino para acender LED – Saiba como fazer

Neste tutorial vamos te ensinar como fazer um sensor ultrassônico Arduino acender LED, onde usaremos este sensor  para detectar a distância de um objeto, e assim acionar cada LED correspondente a sua distância.

Com este projeto de base você pode fazer algumas variações, como por exemplo:

Deixar os LEDs piscando de acordo com a distância ou ligar um buzzer em paralelo com o LED vermelho, com o intuito de que quando o objeto estiver muito próximo além de ligar o LED, ligar também o buzzer emitindo um som.

O que você vai aprender:

    • Como funciona o sensor ultrassônico Arduino;
    • Como conectar o sensor ultrassônico ao Arduino;
    • Adicionar as bibliotecas em sua programação;
    • Códigos necessário para acionar os LEDs ;

Sumário

Sensor de distância Arduino

O Sensor Ultrassônico HC-SR04 é um componente muito utilizado em projetos, visto que se trata de um sensor de distância que trabalha dentro da faixa de 2 cm a 4 metros, tendo uma ótima precisão de 3mm.

Sensor ultrassonico Arduino acender LED 1 - Sensor ultrassônico Arduino para acender LED - Saiba como fazer
Sensor ultrassônico Arduino acender LED

Pode ser usado em Alarmes, automações, robôs que desviam de objetos… entre outros
Tenho um artigo que ensina como fazer um robô que desvia de obstáculos clique aqui para ver.

Funcionamento:

Para realizar a medição é necessário que a placa esteja alimentada, logo após colocar o pino Trigger em nível alto por um tempo maior que 10us.  Dessa maneira, o sensor irá emitir uma onda sonora ,que quando encontrar um objeto, irá rebater e voltar em direção ao módulo.

Durante o tempo de emissão e recebimento do sinal, o pino ECHO fica em nível alto. Portanto, o cálculo é feito baseado no tempo que o pino ECHO ficou em nível alto, após o pino Trigger ter sido colocado em nível alto.

Ou seja, Distância =[Tempo ECHO em nível alto * Velocidade do Som] / 2

Para fins de cálculo a velocidade do som é considerada ideal o valor de 340m/s, assim o resultado será em metros por segundo, o número 2 na fórmula é devido a onda sonora ter que  encontrar algum objeto e voltar, ou seja, ela percorreu a distância 2 vezes.

sensor de distancia Arduino - Sensor ultrassônico Arduino para acender LED - Saiba como fazer
sensor de distancia Arduino

Especificações:

Alimentação: 5V DC
Corrente de Operação: 2mA
Ângulo de efeito: 15°
Alcance: 2cm ~ 4m
Precisão: 3mm

Vamos ao projeto?

Lista de materiais:

  • Arduino, pode ser qualquer um, eu utilizei o Arduino UNO;
  • Sensor de distância Arduino HC-SRO4;
  • protoboard;
  • Jumpers;
  • 3x LEDs de cores diferentes;
  • 3x Resistores de 220 ohms.

Conectando o Sensor ultrassônico ao Arduino

A ligação será feita nas portas digitais 3 para o Trigger, e 2 para o Echo, além de VCC para alimentação e GND para terra.

Os LEDs vão ser conectados nas portas digitais 4, 5 e 6 junto com seus respectivos resistores.

Segue Imagem do esquema:

sensor de distancia Arduino 1 - Sensor ultrassônico Arduino para acender LED - Saiba como fazer
sensor de distancia Arduino

Programação sensor ultrassônico Arduino

Para a utilização do sensor ultrassônico será necessário baixar a biblioteca e incluir na IDE do Arduino Clique aqui para download

 

Para incluir a biblioteca basta com a IDE do arduino aberta ir em  Sketch> Incluir biblioteca> Adicionar biblioteca .ZIP e selecionar o arquivo que você acabou de baixar.

Programacao sensor ultrassonico arduino - Sensor ultrassônico Arduino para acender LED - Saiba como fazer
Programacao sensor ultrassonico arduino

 

Após feito estes pré-requisitos vamos a programação..

Segue o código:


//Programa: Sensor ultrassônico Arduino acender LED
//Autor: Luan Alves - www.guiarobotica.com
#include "Ultrasonic.h"
Ultrasonic ultrasonic(3, 2); // Trigger na porta 3 e Echo na porta 2

//Declarando os LED como constantes em seus respectivos pinos
const int ledVerde = 4;
const int ledAmarelo = 5;
const int ledVermelho = 6;

long microsec = 0; // variaveis de controle
float distanciaCM = 0;

void setup() {
  Serial.begin(9600); //Inicializando o serial monitor
  pinMode(ledVerde, OUTPUT); //declarando os LEDs como saida
  pinMode(ledAmarelo, OUTPUT);
  pinMode(ledVermelho, OUTPUT);
}

void loop() {
  //Lendo o valor do sensor
  microsec = ultrasonic.timing();

  //Convertendo a distância em CM
  distanciaCM = ultrasonic.convert(microsec, Ultrasonic::CM);

  ledDistancia();
  Serial.print(distanciaCM);// mostrar a distancia na porta serial
  Serial.println(" cm");// colocar unidade de medida
  delay(500);// espera de 500 milissegundos
}

void ledDistancia() {

  //Desliga todos os LEDs
  digitalWrite(ledVerde, LOW);
  digitalWrite(ledAmarelo, LOW);
  digitalWrite(ledVermelho, LOW);

  // criando as condicoes se a distancia for entre 30 cm e 20 cm
  if (distanciaCM <= 30 and distanciaCM >= 20) {
    digitalWrite(ledVerde, HIGH); //liga o LED verde
  }
  // se a distancia for 10 cm e 20 cm
  if (distanciaCM <= 20 and distanciaCM >= 10) {
    digitalWrite(ledAmarelo, HIGH); //liga LED amarelo
  }

  if (distanciaCM < 10) { // se a distancia for menor que 10 cm
    digitalWrite(ledVermelho, HIGH); // liga LED vermelho
  }
}


Assim chegamos ao fim de mais um tutorial, e você aprendeu como fazer um Sensor ultrassônico Arduino acender LED.

Gostou do Artigo?

Curta, compartilhe, comente..

7 Comentários

  1. rene javier arraya aviles

    Boa tarde, já fiz este projeto a algum tempo atrás com esta montagem e código proposto, mas acabei deixando de lado, pois o sensor ultrassonico “desregulava” e acendei o led com outra medida detectada. Será que o projeto teria que ter mais componentes para que o sensor trabalhe corretamente? como por exemplo op amp comparador? Agradeço a resposta.

    Responder
    1. Luan Silver

      Opa tudo joia?
      O sensor ultrassônico às vezes pode pegar valores flutuantes dependendo do ângulo do objeto na frente dele.

      Quanto maior e mais alinhado o objeto estiver na frente dele, melhor vai ser a captação.
      Um exemplo, quinas de paredes sempre mostram valores errados ou se colocar apenas a mão em uma distância razoável do sensor.

      Ele capta muito bem se o objeto for maior e plano, assim o emissor e receptor ficam alinhados.

      Responder
  2. Urbano

    Obrigado Luan pelo código que nos cedeu. Quero também elogiar a sua maneira didática com que apresenta as suas “aulas”. é de uma clareza muito especial que tudo parece fácil. Obrigado também por isso.
    Sou um amante e curioso principiante sobre electrónica com 84 anos de idade e nunca me canso de aprender. Relativamente ao código sobre o sensor SR04 que nos apresentou, ao testá-lo para o arduino uno deu-me aquela “maldita” sarjeta laranja que não faz outra coisa senão me aparecer: erro
    ‘convert’ não é nome da classe Ultrasonic .Não entendo o porquê; por favor me ajude Luan.
    Urbano

    Responder
  3. Jonas Ribeiro

    Fiz alguns ajustes:

    #include //Inclui a biblioteca do ultrassônico
    Ultrasonic ultrassom(5, 4); //Cria o objeto ultrassom, do tipo Ultrassonic
    //define os pinos onde está ligado o TRIG(pino 5) e o ECHO(pino 4) respectivamente

    long distancia; //cria a variável distancia do tipo long

    const int ledVerde = 8;
    const int ledAmarelo = 9;
    const int ledVermelho = 10;

    void setup() {
    Serial.begin(9600); //Inicializa a comunicação serial, com velocidade de comunicação de 9600

    pinMode(ledVerde, OUTPUT); //declarando os LEDs como saida
    pinMode(ledAmarelo, OUTPUT);
    pinMode(ledVermelho, OUTPUT);
    }

    void loop(){
    distancia = ultrassom.Ranging(CM); //ultrassom.Ranging(CM) retorna a distancia em centímetros(CM)
    Serial.print(“Distância = “); //Imprime na serial o texto “Distância = ”
    Serial.print(distancia); //Imprime na serial o valor da variável distancia
    Serial.println(“cm”); //Imprime na serial o texto “cm”
    delay(50); //Intervalo

    //Desliga todos os LEDs
    digitalWrite(ledVerde, LOW);
    digitalWrite(ledAmarelo, LOW);
    digitalWrite(ledVermelho, LOW);

    if (distancia = 20) {
    digitalWrite(ledVerde, HIGH); //liga o LED verde
    }
    // se a distancia for 10 cm e 20 cm
    if (distancia = 10) {
    digitalWrite(ledAmarelo, HIGH); //liga LED amarelo
    }

    if (distancia < 10) { // se a distancia for menor que 10 cm
    digitalWrite(ledVermelho, HIGH); // liga LED vermelho
    }

    }

    Responder
  4. Murilo Guidino Ferreira

    Olá
    Obrigado por dividir conosco seus conhecimentos sua maneira de explicar é execenle, clara, dá para entender perfeitamente, tudo parece fácil. Não é minha paixão, mas goistei, parabens!

    Responder
  5. Murilo Guidino Ferreira

    Obrigado pela aula,por dividir seus conhecimentos.
    não é minha paixão mas, gostei parabéns!

    Responder

Deixe um comentário

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