#include <Ultrasonic.h>
#define TRIGGER_PIN 3
#define ECHO_PIN 2
#define LED_13 13
#define LED_12 12
#define LED_11 11
#define LED_10 10
#define LED_9 9
#define LED_8 8
#define LED_7 7
#define LED_6 6
#define LED_5 5
// Definindo objetos para os LEDs
int leds[] = {LED_13, LED_12, LED_11, LED_10, LED_9, LED_8, LED_7, LED_6, LED_5};
// Inicializa o sensor ultrassônico
Ultrasonic ultrasonic(TRIGGER_PIN, ECHO_PIN);
void setup() {
// Configura os pinos dos LEDs como saída
for (int i = 0; i < sizeof(leds)/sizeof(leds[0]); i++) {
pinMode(leds[i], OUTPUT);
}
// Inicia a comunicação serial
Serial.begin(9600);
}
void loop() {
// Realiza a leitura da distância
int distancia = ultrasonic.read(CM);
// Exibe a distância no monitor serial
Serial.print("Distancia: ");
Serial.print(distancia);
Serial.println(" cm");
// Desliga todos os LEDs
for (int i = 0; i < sizeof(leds)/sizeof(leds[0]); i++) {
digitalWrite(leds[i], LOW);
}
// Verifica a distância e acende os LEDs conforme as especificações
if (distancia <= 90) {
digitalWrite(LED_13, HIGH);
}
if (distancia <= 50) {
digitalWrite(LED_12, HIGH);
}
if (distancia <= 40) {
digitalWrite(LED_11, HIGH);
}
if (distancia <= 35) {
digitalWrite(LED_10, HIGH);
}
if (distancia <= 30) {
digitalWrite(LED_9, HIGH);
}
if (distancia <= 25) {
digitalWrite(LED_8, HIGH);
}
if (distancia <= 20) {
digitalWrite(LED_7, HIGH);
}
if (distancia <= 10) {
digitalWrite(LED_6, HIGH);
}
if (distancia <= 5) {
digitalWrite(LED_5, HIGH);
}
// Aguarda um intervalo antes da próxima leitura
delay(1000);
}