#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C LCD( 0x27, 16, 2);
// Definir pinos
#define botup 15
#define botdown 4
#define botsav 16
#define TRIG 27
#define ECHO 26
#define led 17
// Variáveis
int contador = 0;
long duration;
int distance;
int alarme = 0;
bool alarmeAtivo = false;
void setup() {
Serial.begin(115200);
LCD.init();
LCD.backlight();
LCD.setCursor(0, 0);
LCD.print("Senai CFP 1.01");
LCD.setCursor(0, 1);
LCD.print("TEC.MECATRONICA");
delay(1000);
LCD.clear();
pinMode(TRIG, OUTPUT);
pinMode(ECHO, INPUT);
pinMode(botup, INPUT_PULLUP);
pinMode(botdown, INPUT_PULLUP);
pinMode(botsav, INPUT_PULLUP);
pinMode(led, OUTPUT);
}
void loop() {
digitalWrite(TRIG, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG, LOW);
duration = pulseIn(ECHO, HIGH);
distance = duration * 0.034 / 2;
if (digitalRead(botup) == LOW) {
delay(200);
alarme += 10;
}
if (digitalRead(botdown) == LOW) {
delay(200);
alarme -= 10;
}
if (digitalRead(botsav) == LOW) {
delay(200);
alarmeAtivo = true;
}
if (alarmeAtivo) {
if (distance >= alarme) {
digitalWrite(led, HIGH);
} else {
digitalWrite(led, LOW);
}
} else {
digitalWrite(led, LOW);
}
LCD.clear();
LCD.setCursor(0, 0);
LCD.print("Alarme: ");
LCD.print(alarme);
LCD.print(" cm");
LCD.setCursor(0, 1);
LCD.print("Distancia: ");
LCD.print(distance);
LCD.print(" cm");
delay(200);
}
Loading
esp32-devkit-c-v4
esp32-devkit-c-v4