// Definição dos pinos dos LEDs e do sensor ultrassônico
#define am 11
#define vd 12
#define vm 10
#define echo 4
#define trig 5
// Variáveis para armazenar o tempo e a distância
long tempo = 0;
int dist = 0;
void setup()
{
// Configuração dos pinos dos LEDs como saídas
pinMode(vd, OUTPUT);
pinMode(am, OUTPUT);
pinMode(vm, OUTPUT);
// Configuração dos pinos do sensor ultrassônico
pinMode(trig, OUTPUT);
pinMode(echo, INPUT);
// Inicializa a comunicação serial a 9600 bps
Serial.begin(9600);
}
void loop()
{
// Gera um pulso no pino 'trig'
digitalWrite(trig, HIGH);
delay(1);
digitalWrite(trig, LOW);
// Mede o tempo de resposta do pino 'echo'
long tempo = pulseIn(echo, HIGH);
// Calcula a distância com base no tempo medido
int dist = tempo / 58;
// Imprime a distância no monitor serial
Serial.println(dist);
delay(50);
// Verifica a distância e aciona os LEDs apropriados
if (dist <= 100)
{
digitalWrite(vm, HIGH); // Liga o LED 'vm'
digitalWrite(am, LOW); // Desliga o LED 'am'
digitalWrite(vd, LOW); // Desliga o LED 'vd'
}
else if (dist > 100 && dist <= 150)
{
digitalWrite(vm, LOW); // Desliga o LED 'vm'
digitalWrite(am, HIGH); // Liga o LED 'am'
digitalWrite(vd, LOW); // Desliga o LED 'vd'
}
else if (dist > 200 && dist <= 250)
{
digitalWrite(vm, LOW); // Desliga o LED 'vm'
digitalWrite(am, LOW); // Desliga o LED 'am'
digitalWrite(vd, HIGH); // Liga o LED 'vd'
}
delay(10); // Pequeno atraso para estabilização
}