#define TRIG 3
#define ECHO 4
#define BUZZER 5
void setup() {
Serial.begin(115200);
pinMode(TRIG, OUTPUT);
pinMode(ECHO, INPUT);
pinMode(BUZZER, OUTPUT);
}
void loop() {
// Pulso ultrasónico
digitalWrite(TRIG, LOW);
delayMicroseconds(2);
digitalWrite(TRIG, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG, LOW);
long duration = pulseIn(ECHO, HIGH, 30000);
if (duration == 0) return;
float distancia = duration * 0.0343 / 2;
Serial.print("Distancia: ");
Serial.println(distancia);
if (distancia <= 20) {
reproducirCancion();
}
delay(200);
}
void reproducirCancion() {
tone(BUZZER, 262, 400); // C
delay(450);
tone(BUZZER, 294, 400); // D
delay(450);
tone(BUZZER, 330, 600); // E
delay(650);
tone(BUZZER, 294, 400);
delay(450);
tone(BUZZER, 262, 800);
delay(850);
noTone(BUZZER);
}Loading
xiao-esp32-c3
xiao-esp32-c3