/******************************************************************************* * * I15 - Usando sensor ultrassônico sem biblioteca * Autor: Angelo Luis Ferreira * 28/02/2022 * http://squids.com.br/arduino * *******************************************************************************/ int pinTrig = 8; // pino usado para disparar os pulsos do sensor int pinEcho = 9; // pino usado para ler a saida do sensor float tempoEcho = 0; // Obs. Velocidade do som = 340,29 m/s = 0.00034029 m/us const float velocidadeSom = 0.00034029; // em metros por microsegundo void setup(){ // Configura pinos Trig e Echo pinMode(pinTrig, OUTPUT); // configura pino TRIG como saída pinMode(pinEcho, INPUT); // configura pino ECHO como entrada // Inicializa pino Trig em nível baixo digitalWrite(pinTrig, LOW); // Inicializa a porta serial Serial.begin(9600); } void loop(){ gatilhoSensor(); // envia pulso trigger (gatilho) para disparar o sensor tempoEcho = pulseIn(pinEcho, HIGH); // mede o tempo de duração do sinal no pino de leitura em us // exibe no monitor serial Serial.print("Distancia em metros: "); Serial.println(calculaDistancia(tempoEcho), 4); Serial.print("Distancia em centimetros: "); Serial.println(calculaDistancia(tempoEcho)*100); Serial.println("------------------------------------"); delay(2000); // aguarda dois segundos } // Funçao para enviar o pulso de trigger void gatilhoSensor(){ // Para fazer o HC-SR04 enviar um pulso ultrassonico, nos temos // que enviar para o pino de trigger um sinal de nivel alto // com pelo menos 10us de duraçao digitalWrite(pinTrig, HIGH); delayMicroseconds(10); digitalWrite(pinTrig, LOW); } // Função para calcular a distancia em metros float calculaDistancia(float tempoMicrossegundos){ return((tempoMicrossegundos*velocidadeSom)/2); // velocidade do som em m/microssegundo }