#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
//Pinos do Sensor
const int t = 32; //trigger
const int r = 35; // Echo
//Variaveis
long duration;
int distCm; //original do código
//float distCm; //somente para teste
float Mse;
float distM;
//float distM;
void setup()
{
//LCD
//lcd.begin (16, 2); // verificar necessidade do (16,2) no código
lcd.init();
lcd.backlight();
//Sensor
pinMode(t, OUTPUT);
pinMode(r, INPUT);
}
void loop()
{
digitalWrite (t, LOW);
delayMicroseconds (2);
digitalWrite(t, HIGH); //Mandar um som
delayMicroseconds (10); //10u microsegundos
digitalWrite(t, LOW); //Desligar o envio do som
duration = pulseIn (r, HIGH); //tempo
//Distância = (Tempo x Velocidade do som) / 2
//340 ms
//34000 cm/s
//Cada segundo vale em microsegundos 1 x 10^-6
Mse = pow(10, -6);
// Distância = (Tempo x Velocidade do som) / 2 = cm
//distanceCm = duration * 0.034 / 2;
distCm = duration * 0.034 / 2;
// distanciaCm = duration * 34000 * Mse / 2;
//Distância = (Tempo x Velocidade do som) / 2 = m
distM = (duration * 340 * Mse) / 2;
// distM = (duration * 0.00034) / 2;
//Escrevendo no display LCD o resultado em centímetros
lcd.clear();
lcd.setCursor (0, 0);
lcd.print ("Distance:");
lcd.print (distCm);
lcd.print ("cm");
//Escrevendo no display LCD o resultado em metros
lcd.setCursor (0, 1);
lcd.print ("Distance:");
lcd.print (distM);
lcd.print ("m");
//atraso de 3 segundos
delay(2000);
}