Aula Eletrônica Programação

Ultrassom HC-SR04 com Arduino

Autor: Alisson Ricardo da Silva Souza

Nesse tutorial aprenderemos a ligar o sensor ultrassônico com o Arduino, medindo a distância até um obstáculo e mostrando no display LCD. Então vamos aproveitar, aprender e praticar.

Para isso utilizaremos os seguintes componentes e ferramentas:

Arduino

Figura 1 – Arduino Uno.

Figura 1 – Arduino Uno

Placa de prototipação utilizada nos nossos projetos eletrônicos desse curso.

Protoboard

Figura 2 – Protoboard.

Figura 2 – Protoboard

Nessa placa faremos a montagem de nossos exemplos de circuitos elétricos durante o curso.

Jumper

Figura 3 - Jumper

Figura 3 – Jumper

São os conectores que utilizaremos para ligar os componentes elétricos que vamos utilizar.

Display LCD 16×2

Figura 4 (blog.filipeflop.com)

Figura 4 (blog.filipeflop.com)

Dispositivo utilizado para criar uma interface com usuário, mostrando valores medidos e ate mensagens informativas de estado. Confira mais no datasheet http://p3r3.com/wp-content/uploads/2015/08/Datasheet_Display_16x2.pdf

Esse display LCD tem 16 colunas e 2 linhas, com backlight (luz de fundo) azul e letras na cor branca. Para conexão, são 16 pinos, dos quais usamos 12 para uma conexão básica, já incluindo as conexões de alimentação (pinos 1 e 2), backlight (pinos 15 e 16) e contraste (pino 3).

Tabela de Pinagem

Tabela de Pinagem

Ultrassom HC-SR04

Figura 5 - HC-SR04

Figura 5 – HC-SR04

É um equipamento emissor e receptor de onda sonora. Durante um intervalo de tempo o autofalante T emite ondas sonoras e o receptor R avalia se recebe a mesma forma de onda refletida. Pode medir distancia de 2cm a 4m com alta precisão.

Figura 6 – Transmissão e Recepção. (labdegaragem.com)

Figura 6 – Transmissão e Recepção. (labdegaragem.com)

Para saber mais acesse nossa apostila Motores e Sensores no link: [1] http://p3r3.com/tutoriais/motores-e-sensores/

Agora que já listamos os materiais que utilizaremos, vamos fazer um desenho de como deve ficar nosso circuito elétrico e partir pra prática.

Figura 6 - Desenho do Circuito

Figura 6 – Desenho do Circuito

Este circuito é muito simples de montar, siga as instruções de ligação dos pinos do LCD e conecte o ultrassom em duas portas digitais livres, no exemplo conectamos nas portas 6 Trig e 7 Echo. Este sistema irá operar como uma fita de medição eletrônica. Assim, você pode medir qualquer distância de um objeto para o sensor e mostrar no LCD.

Posso mudar a sequência de ligação das pinagens dos componentes?

Sim! Basta você indicar nos comandos de inicialização dos componentes quais pinos deseja utilizar.

LCD (LiquidCrystal lcd(12, 11, 5, 4, 3, 2);)

Agora que já vimos o que fazer, vamos montar nosso circuito.

Figura 7 - Circuito Completo

Figura 7 – Circuito Completo

Agora, para terminar nosso projeto, devemos programar o Arduino e fazer os testes.

Abra a IDE do Arduino e clique em Arquivo → Novo e digite o código abaixo.

#include <LiquidCrystal.h>
#define echoPin 7 //Pino 7 recebe o pulso do echo 
#define trigPin 6 //Pino 6 envia o pulso para gerar o echo
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);  //Define os pinos que serão utilizados para ligação ao display
void setup(){
//Define o número de colunas e linhas do LCD
  lcd.begin(16, 2);
  pinMode(echoPin, INPUT); // define o pino 7 como entrada (recebe)
  pinMode(trigPin, OUTPUT); // define o pino 6 como saida (envia)
}
void loop(){
  lcd.clear();  //Limpa a tela
  lcd.setCursor(6, 0);  //Posiciona o cursor na coluna 3, linha 0
  lcd.print(“P3R3”);  //Envia o texto entre aspas para o LCD
    digitalWrite(trigPin, LOW);  //seta o pino 6 com um pulso baixo “LOW” ou desligado ou ainda 0
    delayMicroseconds(2);    // delay de 2 microssegundos
    digitalWrite(trigPin, HIGH);  //seta o pino 6 com pulso alto “HIGH” ou ligado ou ainda 1 
    delayMicroseconds(10);  //delay de 10 microssegundos
    digitalWrite(trigPin, LOW);  //seta o pino 6 com pulso baixo novamente
    long duration = pulseIn(echoPin,HIGH);  //pulseInt lê o tempo entre a chamada e o pino entrar em high
    long distancia = duration/29/2;    //Esse calculo é baseado em s = v . t, lembrando que o tempo vem dobrado, porque é o tempo de ida e volta do ultrassom
  lcd.setCursor(0, 1);
  lcd.print(“Dist: “);
  lcd.print(distancia);
  delay(1000); }//espera 1 segundo para fazer a leitura novamente
Com esse código podemos fazer medições de distancias e mostrar no display seu valor, obedecendo, é claro, os limites estipulados pelo fabricante do componente eletrônico.

Figura 9 - Circuito Funcionando

Figura 9 – Circuito Funcionando

Bibliografias

Fotos – Própria Autoria.
[1] Datasheet Display 16×2 – http://p3r3.com/wp-content/uploads/2015/08/Datasheet_Display_16x2.pdf
[2] Datasheet Ultrassom HC-SR04 – http://p3r3.com/wp-content/uploads/2015/08/datasheet-HCSR04.pdf

Deixe uma resposta

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