#include "Ultrasonic.h" // Esse comando é para incluir a biblioteca no programa
Ultrasonic ultrasonic(8, 9); // São as portas do sensor, Trigger na porta 8 e Echo na porta 9
// Declarando os LEDs e o Buzzer e suas portas onde estão conectados
int ledVerde = 2;
int ledAmarelo = 3;
int ledVermelho = 4;
int buzzer = 5;
// Variáveis de controle
float distanciaCM = 0;
void setup() {
Serial.begin(9600); // Iniciando o monitor serial na velocidade 9600
// Declarando os LEDs e o Buzzer como saídas
pinMode(ledVerde, OUTPUT);
pinMode(ledAmarelo, OUTPUT);
pinMode(ledVermelho, OUTPUT);
pinMode(buzzer, OUTPUT);
}
void loop() {
// Ler a distância do sensor ultrassônico
distanciaCM = ultrasonic.read();
// Mostrar a distância no monitor serial
Serial.print(distanciaCM);
Serial.println(" cm");
// Atualizar os LEDs e o Buzzer com base na distância
ledDistancia();
delay(500);
}
void ledDistancia() {
// Se inicia com todos os LEDs apagados
digitalWrite(ledVerde, LOW);
digitalWrite(ledAmarelo, LOW);
digitalWrite(ledVermelho, LOW);
// Se a distância for menor ou igual a 30 cm e maior ou igual a 20
if (distanciaCM <= 30 && distanciaCM >= 20) {
digitalWrite(ledVerde, HIGH); // LED Verde liga
}
// Se a distância for menor ou igual a 20 cm e maior ou igual a 10
if (distanciaCM <= 20 && distanciaCM >= 10) {
digitalWrite(ledAmarelo, HIGH); // LED amarelo acende
tone(buzzer, 2500, 100); // Buzzer começa a emitir som
}
// Se a distância for menor que 10 cm
if (distanciaCM < 10) {
digitalWrite(ledVermelho, HIGH); // LED vermelho acende
tone(buzzer, 2500, 500); // Buzzer começa a emitir som com duração maior
}
}