neste projeto vou apresentá-lo ao sensor ultrassônico HC-SR04. Ele funciona enviando ondas sonoras do transmissor, que então saltam de um objeto e então retornam ao receptor. Você pode determinar o quão longe está alguma coisa no tempo que leva para as ondas de som para voltar para o sensor. Vamos directos ao assunto!,

ligações

As ligações são muito simples:

  • VCC a 5V
  • GND a GND
  • Trig a pin 9
  • Echo a pin 10

Pode de facto ligar o Trig e o Eco aos pinos que quiser, 9 e 10 são apenas os que estou a usar.

Diagrama (Tinkercad havia apenas um Ping))) sensor de modo que eu tinha de editar)

Código

Primeiro vamos definir os pinos de Trigonometria e de Eco está conectado.,

const int trigPin = 9; const int echoPin = 10;

então nós declaramos 2 flutuadores, duração e distância, que irão manter o comprimento da onda sonora e quão longe o objeto está.

float duration, distance; 

Next, in the setup, we declare the Trig pin as an output, the Echo pin as an input, and start Serial communications.

void setup() { pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); Serial.begin(9600); } 

Now, in the loop, what we do is first set the trigPin low for 2 microsegundos just to sure that the pin in low first., Então, nós o colocamos alto por 10 microssegundos, que envia uma explosão sônica de 8 ciclos a partir do transmissor, que então salta de um objeto e atinge o receptor(que está conectado ao pino de Eco).

Quando as ondas sonoras atingem o receptor, ele gira o pino de Eco alto por muito tempo que as ondas estavam viajando. Para obter isso, podemos usar uma função Arduino útil chamada pulseIn(). São necessários 2 argumentos, o pin que você está ouvindo(no nosso caso, o PIN Eco), e um estado(alto ou baixo)., O que a função faz é esperar que o pin vá para qualquer estado que você colocar, começa a cronometrar, e, em seguida, pára o timing quando ele muda para o outro estado. No nosso caso, colocaríamos alto, já que queremos começar a cronometrar quando o pino do Eco subir. Vamos armazenar o tempo na variável de duração. (Devolve o tempo em microssegundos)

duration = pulseIn(echoPin, HIGH); 

Agora que temos tempo, podemos usar a equação de velocidade = distância/tempo, mas vamos fazer isso de tempo x velocidade = distância porque temos a velocidade. Que velocidade temos? A velocidade do som, claro!, A velocidade do som é de aproximadamente 340 metros por segundo, mas uma vez que a função pulseIn() retorna o tempo em microssegundos, precisamos ter uma velocidade em microssegundos também, o que é fácil de obter. Uma busca rápida no Google por “velocidade do som em centímetros por microssegundo” dirá que é .0343 c / µS. Podias fazer as contas, mas procurar é mais fácil. De qualquer forma, com essa informação, podemos calcular a distância! Multiplica a duração .0343 e, em seguida, dividi – lo por 2 (porque as ondas sonoras viajam para o objeto e para trás). Vamos guardar isso na variável distância.,

distance = (duration*.0343)/2; 

o resto é apenas imprimir os resultados para o Monitor Serial.

 Serial.print("Distance: "); Serial.println(distance); delay(100); } 

imagem de cobertura por: Sparkfun