Você está na página 1de 4

Curso: Engenharia Elétrica / Computação Disciplina: Lab.

Integrado de Microcontroladores e Automação


Período: 5º , 6º , 7º e 8º Semestre: 2019/2 Data: 19 / 09 / 2019
Sensor Ultrassônico no Arduino

1. Introdução

Um sensor ultrassônico é um tipo de transceptor capaz de emitir e detectar o som. O pulso sonoro que o sensor
emite está além da faixa de audição do ouvido humano, daí o nome de ultrassônico. Ela se vale de uma propriedade
da maioria dos objetos sólidos e são capazes de refletir ondas sonoras. O transceptor utiliza um temporizador para
determinar com precisão quanto tempo um pulso ultrassônico leva para “bater” em um objeto, e retornar à
unidade. Um sensor ultrassônico opera de maneira parecida com os sonares que operam debaixo da água, mas em
ambientes terrestres, temos o ar como meio de transmissão.

Os sensores ultrassônicos são utilizados na automação, seja no sensoriamento de obstáculos para robô, de objetos
em linhas de montagem. Ele não precisa de contato físico com o objeto e detecta sua presença, bem como ainda
tem recursos para determinar qual é a distância em que ele se encontra.

Como vimos o princípio de funcionamento do sensor ultrassônico se baseia na emissão de uma onda sonora de alta
frequência e a medição do tempo para a recepção do eco produzido quando esta onda bate no objeto e reflete o
som. Estes pulsos são emitidos ciclicamente e o eco recebido é convertido em um sinal elétrico.

A velocidade de uma onda sonora em condições de temperatura ideais é de cerca de 1126 pés (343 metros) por
segundo. Conhecida a velocidade do som e se o tempo dos pulsos de ultrassom são conhecidos também, a distância
de um objeto que refletiu a onda sonora pode ser estimada utilizando cálculos matemáticos simples. Se um sensor
ultrassônico emite um pulso e recebe o sinal refletido um décimo de segundo mais tarde, por exemplo, o objeto
está a cerca de 112 pés de distância, equivalente a 34 metros.

Os sensores de ultrassom não muito precisos, mas existem outros fatores que podem comprometer a precisão das
medidas de distância, por exemplo, a velocidade do som não é constante e varia com a temperatura e a umidade
do ambiente.

Outro fator que contribui para a imprecisão das medidas é o tipo de objeto a ser detectado. Dependendo do tipo
de material que constitui o objeto, as ondas sonoras refletem de maneira diferente. Alguns materiais, tais como
metal, refletem o som de forma muito satisfatória. Os materiais macios incluindo tecidos de pelúcia, muitas vezes
absorvem as ondas sonoras.

As aplicações desses sensores são muitas, por exemplo:


• uma máquina projetada para aplicar rótulos de garrafas, por exemplo, podem utilizar métodos de
ultrassom para determinar quando um produto está no lugar e pronto para ser carimbado.
• as instalações de segurança podem utilizar sensores ultrassônicos para detectar a presença de uma pessoa
não autorizada no ambiente, criando uma “cerca virtual” em torno de uma zona de segurança.
• as instalações médicas costumam utilizar sensores ultrassônicos em diversos processos e os sensores
utilizados são mais precisos do que a maioria dos dispositivos industriais.
• a imagem ultrassônica utiliza pulsos de alta frequência para detectar objetos sólidos e espaços abertos e o
transceptor ligado a um computador pode ser utilizados por médicos para visualizar áreas dentro do corpo
humano.

2. O Sensor Ultrassônico HC-SR04

O sensor considerado (HC-SR04) é um módulo de baixo custo que opera na faixa dos 40 kHz (40.000 Hz), e possui
um alcance de detecção de cerca de 2cm até 4m de distância, de acordo com seu datasheet.

Esse módulo sensor possui quatro pinos:

• VCC – Alimentação do sensor (5V)


• GND – Comum

Prof. Oscar K. Uehara – oscar.uehara@unisantanna.br 19-Set-2019 1


Curso: Engenharia Elétrica / Computação Disciplina: Lab. Integrado de Microcontroladores e Automação
Período: 5º , 6º , 7º e 8º Semestre: 2019/2 Data: 19 / 09 / 2019
Sensor Ultrassônico no Arduino

• Trig – Trigger (disparo), pino usado para transmitir um pulso de ultrassom


• Echo – Eco, pino que recebe e detecta o pulso de ultrassom refletido por um obstáculo

O sensor ultrassônico consiste em dois


componentes distintos – um circuito que gera e
emite o sinal e outro que detecta o sinal refletido
de volta. Além disso, o HC-SR04 possui um
pequeno microcontrolador responsável por
determinar o intervalo de tempo entre o envio e
o recebimento do sinal sonoro. Esse intervalo de
tempo corresponde a um valor de tensão
elétrica: quanto maior o tempo, maior a tensão.
O tempo total de viagem do pulso, medido ida e
volta, será o dobro desse valor.

Para gerar o ultrassom o pino Trig deve ser


colocado em nível alto por um intervalo de tempo
de alguns microssegundos, o que permitirá
enviar uma sequência de pulsos sonoros, viajando na velocidade do som e que serão detectados eventualmente
pelo pino Echo. O pino Echo retorna a duração de tempo em microssegundos (μs) dos pulsos recebidos.

3. Experiência – Medida de distância usando o sensor HC-SR04

A partir da descrição do sensor, vamos resumir o seu funcionamento:

1. Configuramos em nível baixo (LOW) os pinos Trig e Echo quando o módulo é inicializado
2. Transmitimos um pulso em nível alto (HIGH) por pelo menos 10 μs ao pino Trig, que equivale a oito ondas
quadradas de 40 kHz.
3. Esperamos a captura da saída da borda de subida pelo pino Echo (valor HIGH). Simultaneamente, iniciar
um timer para começar a contar o tempo (função pulseIn no Arduino).
4. Capturar a borda de descida no pino Echo, e ao mesmo tempo, ler o contador, que indica o tempo de
deslocamento do sinal ultrassônico.
5. Finalmente, aplicando a fórmula ao valor lido, calculamos a distância até o obstáculo, e então tomamos
uma decisão sobre o que fazer (acender um LED, emitir um alarme sonoro, etc).

Mais detalhes, veja o link: http://www.bosontreinamentos.com.br/eletronica/arduino/usando-um-sensor-


ultrassonico-hc-sr04-com-arduino/

Vamos nessa prática medir a distância de um objeto e para isso precisaremos dos seguintes materiais:

• Microcontrolador Arduino UNO (ou compatíveis)


• 1 sensor ultrassônico HC-SR04
• Jumpers
• protoboard

3.1 - Montagem

Segue ao lado o diagrama de ligações entre o Arduino e os componentes na protoboard e o programa em C.

Prof. Oscar K. Uehara – oscar.uehara@unisantanna.br 19-Set-2019 2


Curso: Engenharia Elétrica / Computação Disciplina: Lab. Integrado de Microcontroladores e Automação
Período: 5º , 6º , 7º e 8º Semestre: 2019/2 Data: 19 / 09 / 2019
Sensor Ultrassônico no Arduino

1 // Definir os números dos pinos


2 const int trigger = 8;
3 const int eco = 7;
4
5 // Definir as variáveis
6 long duracao;
7 float dist;
8
9 void setup() {
10 pinMode(trigger, OUTPUT); // Configura o pino trigger como saída
11 pinMode(eco, INPUT); // Configura o pino eco como entrada.
12 Serial.begin(9600); // Inicia a comunicação serial
13 }
14
15 void loop() {
16 // Limpa o trigger
17 digitalWrite(trigger, LOW);
18 delayMicroseconds(5);
19
20 // Configurar o trigger para nível alto para transmissão de sinais
21 digitalWrite(trigger, HIGH);
22 delayMicroseconds(10); // tempo para envio do sinal
23 digitalWrite(trigger, LOW);
24
25 // Inicia contagem de tempo e lê o pino de eco
26 duracao = pulseIn(eco, HIGH);
27
28 // Calcular a distância
29 dist = duracao * 0.034 / 2;
30
31 // Mostrar a distância no monitor serial
32 if (dist >= 400 || dist <= 2) {
33 Serial.println("Valor fora do alcance");
34 }
35 else {
36 Serial.print("Distancia em cm: ");
37 Serial.println(dist);

Prof. Oscar K. Uehara – oscar.uehara@unisantanna.br 19-Set-2019 3


Curso: Engenharia Elétrica / Computação Disciplina: Lab. Integrado de Microcontroladores e Automação
Período: 5º , 6º , 7º e 8º Semestre: 2019/2 Data: 19 / 09 / 2019
Sensor Ultrassônico no Arduino

38 }
39
40 // Aguardar 100ms antes da próxima leitura para evitar interferência
41 delay(100);
42 }

Descrição de comandos:

pulseIn()

Descrição

Captura a duração de um pulso em um pino (que pode ser HIGH ou LOW). Por exemplo, se o valor HIGH
é passado para a função, a função pulseIn() espera o pino ir para do estado 'LOW' para HIGH, começa a
temporizar, então espera o pino ir para o estado LOW e para de temporizar. Retorna o tamanho do pulso
em microssegundos ou desiste e retorna 0 se não receber nenhum pulso dentro de um tempo máximo
de espera especificado.
A temporização dessa função foi determinada empiricamente e irá provavelmente mostrar erros em
pulsos mais longos. funciona em pulsos de 10 microssegundos a 3 minutos de duração.

Sintaxe

pulseIn(pino, valor)
pulseIn(pino, valor, tempo_de_espera)

Parâmetros

• pino: o número do pino no qual se quer capturar a duração de um pulso. (int)


• valor: tipo de pulso a ser lido: pode ser HIGH ou LOW. (int)
• tempo_de_espera (opcional): o número de microssegundos a se esperar pelo começo do pulso;
o padrão é um segundo. (unsigned long)

Retorna

A duração do pulso (em microssegundos) ou 0 se nenhum pulso começar antes de se esgotar o tempo
de espera (unsigned long).
Fonte: https://www.arduino.cc/reference/pt/language/functions/advanced-io/pulsein/

Referências Bibliográficas

Sites da internet:

• http://www.bosontreinamentos.com.br/eletronica/arduino/usando-um-sensor-ultrassonico-hc-sr04-
com-arduino/
• https://portal.vidadesilicio.com.br/hc-sr04-sensor-ultrassonico/

YouTube:
• https://youtu.be/GPPasfTpzuk
• https://youtu.be/vEdYjAbzrAE : Manual do Mundo

Prof. Oscar K. Uehara – oscar.uehara@unisantanna.br 19-Set-2019 4

Você também pode gostar