int trig = 5;
int echo = 17;
int led1 = 2;
int led2 = 15;
int led3 = 16;
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() {
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);
if (distancia <= 10) {
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH);
tone(buzzer, 2000); // contínuo forte
}
else if (distancia <= 20) {
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, LOW);
bipRapido();
}
else if (distancia <= 30) {
digitalWrite(led1, HIGH);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
bipLento();
}
else {
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
noTone(buzzer);
}
delay(50);
}
void bipLento() {
tone(buzzer, 1000);
delay(300);
noTone(buzzer);
delay(700);
}
void bipRapido() {
tone(buzzer, 1000);
delay(150);
noTone(buzzer);
delay(150);
}