// Define os pinos para o Trigger e Echo do sensor ultrassônico
const int triggerPin = 17;
const int echoPin = 16;
#define green 32
#define blue 26
// Define o pino para o buzzer
const int buzzerPin = 33;
// Define as variáveis para armazenar a duração do pulso e a distância
long duration;
int distanceCm;
void setup() {
// Inicializa a comunicação serial a uma taxa de 9600 bps
Serial.begin(9600);
// Define o pino Trigger como saída
pinMode(triggerPin, OUTPUT);
// Define o pino Echo como entrada
pinMode(echoPin, INPUT);
// Define o pino do buzzer como saída
pinMode(buzzerPin, OUTPUT);
pinMode(green, OUTPUT);
pinMode(blue, OUTPUT);
}
void loop() {
// Gera um pulso curto no pino Trigger para iniciar a leitura
digitalWrite(triggerPin, LOW);
delayMicroseconds(2);
digitalWrite(triggerPin, HIGH);
delayMicroseconds(10);
digitalWrite(triggerPin, LOW);
// Mede a duração do pulso no pino Echo
duration = pulseIn(echoPin, HIGH);
// Calcula a distância em centímetros
distanceCm = duration * 0.0343 / 2;
// Imprime a distância no Serial Monitor
Serial.print("Distância: ");
Serial.print(distanceCm);
Serial.println(" cm");
// Verifica as condições de distância e reage de acordo
if (distanceCm < 200) {
Serial.println("Perto");
// Pode adicionar um som mais suave aqui, se desejar
}
if (distanceCm < 100) {
Serial.println("Mais perto");
tone(buzzerPin, 262); // Emite um som (Dó médio)
} else {
noTone(buzzerPin); // Desliga o buzzer se a distância for maior ou igual a 100
}
if (distanceCm < 50) {
Serial.println("Preste atenção, esta mais perto que o esperado");
tone(buzzerPin, 294); // Emite um som mais agudo
}
if (distanceCm < 10) {
digitalWrite(green, HIGH);
digitalWrite(blue ,HIGH);
delay(150);
Serial.println("Mais perto que o normal, TOME CUIDADO");
tone(buzzerPin, 380); // Emite um som ainda mais agudo
// Adiciona um pequeno delay entre as leituras
delay(100);
} else {
digitalWrite(green, LOW);
digitalWrite(blue ,LOW);
}
}