/*****************************************************************************
* HC-SR04 Ultrasonic Sensor
* Code to turn a LED on when an object is within 50cm range
* Author: Kelen C. Teixeira Vivaldini
******************************************************************************/
#include <LiquidCrystal_I2C.h>
#define echo_PIN 2
#define trigger_PIN 3
// Configuração do display LCD I2C
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
Serial.begin(115200);
pinMode(LED_BUILTIN, OUTPUT);
pinMode(trigger_PIN, OUTPUT);
pinMode(echo_PIN, INPUT);
lcd.init();
lcd.backlight();
// Mensagem de boas-vindas no LCD
lcd.setCursor(1, 0);
lcd.print("Class Embedded!");
delay(2000);
lcd.clear();
}
float readDistance() {
digitalWrite(trigger_PIN, LOW);
delayMicroseconds(2);
digitalWrite(trigger_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(trigger_PIN, LOW);
int duration = pulseIn(echo_PIN, HIGH);
return duration * 0.03420 / 2; //Constante obtida com calibração
}
void loop() {
float distance = readDistance();
bool isNearby = distance < 50;
digitalWrite(LED_BUILTIN, isNearby);
//Serial
Serial.print("Distance: ");
Serial.println(readDistance());
//I2C
lcd.setCursor(0, 0);
lcd.print("Distance ");
lcd.setCursor(0, 1);
lcd.print(distance); // Convertendo a variável para string
lcd.print(" cm"); // Adicionando a unidade de medida
delay(100);
}