// Leitura HC-SR04
const uint8_t trig_pin = 10;
const uint8_t echo_pin = 9;
uint32_t print_timer;
#include <LiquidCrystal.h> //Adiciona
a biblioteca do display
LiquidCrystal lcd(12, 11, 5, 4, 3,
2);
void setup() {
Serial.begin(9600); // Habilita
Comunicação Serial a uma taxa de 9600 bauds.
lcd.begin(16, 2);
// Configuração do estado inicial dos
pinos Trig e Echo.
pinMode(trig_pin, OUTPUT);
pinMode(echo_pin, INPUT);
digitalWrite(trig_pin, LOW);
}
void loop() {
// Espera 0,5s (500ms) entre
medições.
if (millis() - print_timer > 500) {
print_timer = millis();
// Pulso de 5V por pelo menos 10us
para iniciar medição.
digitalWrite(trig_pin, HIGH);
delayMicroseconds(11);
digitalWrite(trig_pin, LOW);
/* Mede quanto tempo o pino de echo
ficou no estado alto, ou seja,
o tempo de propagação da onda. */
uint32_t pulse_time = pulseIn(echo_pin,
HIGH);
/* A distância entre o sensor
ultrassom e o objeto será proporcional a velocidade
do som no meio e a metade do tempo de
propagação. Para o ar na
temperatura ambiente Vsom = 0,0343
cm/us. */
double distance = 0.01715 *
pulse_time;
// Imprimimos o valor na porta
serial;
Serial.print(distance);
Serial.println(" cm");
lcd.clear(); //Limpa o LCD
lcd.setCursor(0, 0); //Posiciona uma
linha no display
lcd.print("Distancia"); //Escreve no
diplay "Distancia"
lcd.setCursor(1, 1); //Posiciona uma
linha no display
lcd.print(distance); //Faz a leitura
do sensor e apresenta no display
lcd.print("cm"); //Escreve "CM" após
o valor do sensor
}
} |