int trig=9; //cria uma variavel para armazenar o pino do trig
int echo=8; //cria uma variavel para armazenar o pino do echo
int duracao=0; //cria uma variável para armazenar o intervalo de resposta do echo
int buzzer=13; //cria uma variavel para armazenar o pino do buzzer
int frequencia=500; //cria uma variavel para armazenar a frequencia do beep do buzzer
int tempo=100;//cria uma variavel para armazenar o tempo de duracao do beeo do buzzer
void setup() { //configurações
Serial.begin(9600); //inicializa o monitor serial e define sua velocidade como 9600 bps
pinMode(trig, OUTPUT); //define o pino do trig como saída
pinMode(echo, INPUT); //define o pino do echo como entrada
pinMode(buzzer, OUTPUT); //define o pino do buzzer como saída
}
void loop() { //laço de repetição com os comando a serem executados
digitalWrite(trig, HIGH); //manda um sinal de 5v para o trig para liga-lo
delayMicroseconds(10); //define uma pausa de 10 microsegundos
digitalWrite(trig, LOW); //manda um sinal de 0v para o trig para desliga-lo
duracao= pulseIn(echo, HIGH); //pegamos o intervalo de resposta do echo
if (duracao>0){ //como o sensor da escola dava bug, definimos uma condicao
//ele só fara os comandos seguintes, se a duraçao for maior que zero
Serial.print("Distância em centimetros: "); //imprime no monitor seria a frase
Serial.println(duracao / 58); //imprime no monitor serial o cálculo da distância
tone(buzzer, frequencia,tempo); //faz um beep no buzzer de uma dada frequencia a tempo
delay(duracao/10); //faz um pausa que depende do valor do tempo de resposta do echo
//quanto maior o tempo de resposta, maior o intervalo entre beeps
noTone(buzzer); //limpa o buzzer deixando pronto para outro beep
}
}