#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
#define TRIG 12
#define ECHO 14
#define b_aumenta 4
#define b_diminui 16
#define b_seleciona 17
#define LED_alarme 5
long duração;
int dist;
int limitador = 0;
void setup() {
lcd.init();
lcd.backlight();
pinMode(TRIG, OUTPUT);
pinMode(ECHO, INPUT);
pinMode(b_aumenta, INPUT);
pinMode(b_diminui, INPUT);
pinMode(b_seleciona, INPUT);
pinMode(LED_alarme, OUTPUT);
lcd.setCursor(0, 0);
lcd.print("Distancia: ");
lcd.setCursor(0, 1);
lcd.print("Limitador: ");
lcd.print(limitador);
}
void loop() {
digitalWrite(TRIG, 0);
delayMicroseconds(2);
digitalWrite(TRIG, 1);
delayMicroseconds(10);
digitalWrite(TRIG, 0);
duração = pulseIn(ECHO, 1);
dist = duração * 0.034 / 2;
lcd.setCursor(10, 0);
lcd.print(" ");
lcd.setCursor(10, 0);
lcd.print(dist);
if (digitalRead(b_aumenta) == 0) {
limitador += 1;
delay(100);
}
if (digitalRead(b_diminui) == 0 && limitador > 0) {
limitador -= 1;
delay(100);
}
if (digitalRead(b_seleciona) == 0) {
lcd.setCursor(11, 1);
lcd.print(" ");
lcd.setCursor(11, 1);
lcd.print(limitador);
delay(100);
}
if (dist < limitador) {
digitalWrite(LED_alarme, 1);
} else {
digitalWrite(LED_alarme, 0);
}
}