// Pinos HC-SR04
#define TRIG 2
#define ECHO 3
// Atuadores
#define LED 9 // PWM
#define BUZZER 10
long duracao;
float distancia;
void setup() {
pinMode(TRIG, OUTPUT);
pinMode(ECHO, INPUT);
pinMode(LED, OUTPUT);
pinMode(BUZZER, OUTPUT);
Serial.begin(9600);
}
void loop() {
// Envia pulso ultrassônico
digitalWrite(TRIG, LOW);
delayMicroseconds(2);
digitalWrite(TRIG, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG, LOW);
// Recebe eco
duracao = pulseIn(ECHO, HIGH);
// Distância em cm
distancia = duracao * 0.034 / 2;
Serial.print("Distancia: ");
Serial.print(distancia);
Serial.println(" cm");
// Limite de atuação
if (distancia <= 100) {
// Brilho do LED
int brilho = map(distancia, 100, 5, 0, 255);
brilho = constrain(brilho, 0, 255);
analogWrite(LED, brilho);
// Frequência do buzzer
int frequencia = map(distancia, 100, 5, 200, 3000);
frequencia = constrain(frequencia, 200, 3000);
tone(BUZZER, frequencia);
}
else {
analogWrite(LED, 0);
noTone(BUZZER);
}
delay(50);
}