// ----------------------------------------------------------------------
/* Código para Arduino Uno
Medição de distancia utilizando sensor ultrassônico HC-SR04
jams, EESC/USP, 2024. */
// ----------------------------------------------------------------------
// Diretivas de pré-processador
#define triggerPIN 9 // Pino 9 (digital) para acionar o sensor
#define echoPIN 8 // Pino 8 (digital) para receber o pulso do sensor.
// 1st ultrasound
//const int trigPin1 = 9; //Defines trigger pin to number 9
//const int echoPin1 = 8; //Defines echo pin to number 10
// ----------------------------------------------------------------------
// Configuração GPIO, periféricos, etc.
void setup() {
// Configuração das saídas:
pinMode( triggerPIN, OUTPUT );
// Configuração das entradas:
pinMode( echoPIN, INPUT );
// Configuração da porta serial @ 9600 bits/s:
Serial.begin( 9600 );
}
// ----------------------------------------------------------------------
// Loop principal:
void loop() {
// --------------------------------------------------------------------
// Declaração das variáveis:
float duracao_pulso, distancia;
// --------------------------------------------------------------------
// Funcionamento do sensor:
// Inicialização da medição:
digitalWrite( triggerPIN, LOW ); // Reseta o pino de acionamento
delayMicroseconds( 2 ); // Aguarda 2 microsegundos
// Acionamento da medição:
digitalWrite( triggerPIN, HIGH ); // Seta o pino de acionamento em ALTO
delayMicroseconds( 10 ); // Aguarda 10 microsegundos
// Recepção do eco: o pino 'echoPIN' é colocado em ALTO durante um tempo
// que equivale ao tempo de voo completo do sinal (ida e volta):
duracao_pulso = pulseIn( echoPIN, HIGH ); // Medição do "tempo de voo"
// Cálculo da distância (d = ct, d: distancia, c = 343m/s, t = tempo):
distancia = duracao_pulso * 0.034/2;
// ----------------------------------------------------------------------
// Enviar o resultado pela porta serial:
Serial.print( "Distancia: " );
Serial.print( distancia );
Serial.println(" cm.");
delay( 500 );
}