int trig = 5;
int echo = 4;
int led1 = 2;
int led2 = 15;
int led3 = 19;
int buzzer = 14;
long duracao;
float distancia;
void setup() {
pinMode(trig, OUTPUT);
pinMode(echo, INPUT);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(buzzer, OUTPUT);
Serial.begin(115200);
}
void loop() {
// medir distância
digitalWrite(trig, LOW);
delayMicroseconds(2);
digitalWrite(trig, HIGH);
delayMicroseconds(10);
digitalWrite(trig, LOW);
duracao = pulseIn(echo, HIGH);
distancia = duracao * 0.034 / 2;
Serial.println(distancia);
// ===== CONDIÇÕES =====
if (distancia <= 10) {
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH);
tone(buzzer, 1000); // contínuo
}
else if (distancia <= 20) {
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, LOW);
bip(2);
}
else if (distancia <= 30) {
digitalWrite(led1, HIGH);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
bip(1);
}
else {
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
noTone(buzzer);
}
delay(100);
}
// função de bip
void bip(int vezes) {
for (int i = 0; i < vezes; i++) {
tone(buzzer, 1000);
delay(150);
noTone(buzzer);
delay(150);
}
}Loading
esp32-devkit-c-v4
esp32-devkit-c-v4