#include <Ultrasonic.h>
#define trig 2
#define echo 3
#define buzzer A0
int distancia;
Ultrasonic sensor(trig, echo);
void setup() {
pinMode(trig, OUTPUT);
pinMode(echo, INPUT);
pinMode(buzzer, OUTPUT);
Serial.begin(9600);
// Configura os pinos de 4 a 13 como OUTPUT
for (int i = 4; i <= 13; i++) {
pinMode(i, OUTPUT);
}
}
void controlaLeds(int leds) {
// Acende apenas os LEDs até o número especificado
for (int i = 4; i <= 13; i++) {
if (i < 4 + leds) {
digitalWrite(i, HIGH);
} else {
digitalWrite(i, LOW);
}
}
}
void loop() {
distancia = sensor.read();
Serial.print("Distância: ");
Serial.println(distancia);
delay(200);
if (distancia > 300) {
controlaLeds(0);
noTone(buzzer);
} else if (distancia > 200) { // Liga 2 LEDs
controlaLeds(2);
tone(buzzer, 800);
delay(400);
noTone(buzzer);
delay(400);
} else if (distancia > 150) { // Liga 4 LEDs
controlaLeds(4);
tone(buzzer, 800);
delay(300);
noTone(buzzer);
delay(300);
} else if (distancia > 90) { // Liga 6 LEDs
controlaLeds(6);
tone(buzzer, 800);
delay(250);
noTone(buzzer);
delay(250);
} else if (distancia > 50) { // Liga 8 LEDs
controlaLeds(8);
tone(buzzer, 800);
delay(100);
noTone(buzzer);
delay(100);
} else { // Liga todos os 10 LEDs
controlaLeds(10);
tone(buzzer, 800);
}
}