/*
int trigPin = 13;
int echoPin = 12;
int duration, distance;
void LedON(int dist){
digitalWrite(10, dist <= 25);
digitalWrite(8, dist <= 20);
digitalWrite(7, dist <= 15);
digitalWrite(5, dist <= 10);
}
void setup() {
Serial.begin (9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(10, OUTPUT);
pinMode(8, OUTPUT);
pinMode(7, OUTPUT);
pinMode(5, OUTPUT);
}
void loop() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = duration / 58;
Serial.print(distance);
Serial.println(" cm");
LedON(distance);
delay(100);
}
*/
/*
* This ESP32 code is created by esp32io.com
*
* This ESP32 code is released in the public domain
*
* For more detail (instruction and wiring diagram), visit https://esp32io.com/tutorials/esp32-ultrasonic-sensor-piezo-buzzer
*/
#define TRIG_PIN 26 // ESP32 pin GPIO26 connected to Ultrasonic Sensor's TRIG pin
#define ECHO_PIN 25 // ESP32 pin GPIO25 connected to Ultrasonic Sensor's ECHO pin
#define LED_PIN 17 // ESP32 pin GPIO17 connected to Piezo Buzzer's pin
#define BUZZER_PIN 16 // ESP32 pin GPIO16 connected to Led's pin
//#define DISTANCE_THRESHOLD 150 // centimeters
// variables will change:
float duration_us, distance_cm;
void setup() {
pinMode(TRIG_PIN, OUTPUT); // set ESP32 pin to output mode
pinMode(ECHO_PIN, INPUT); // set ESP32 pin to input mode
pinMode(BUZZER_PIN, OUTPUT);
pinMode(LED_PIN, OUTPUT);
Serial.begin(115200);
}
void loop() {
// generate 10-microsecond pulse to TRIG pin
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
// measure duration of pulse from ECHO pin
duration_us = pulseIn(ECHO_PIN, HIGH);
// calculate the distance
distance_cm = 0.017 * duration_us;
Serial.print("Measured distance: ");
Serial.println(distance_cm);
if (distance_cm < 350 & distance_cm > 200) {
tone(BUZZER_PIN, 400, 250); // Plays 262Hz tone for 0.250 seconds
delay (1000);
tone(BUZZER_PIN, 800, 250); // Plays 262Hz tone for 0.250 seconds
}
if (distance_cm < 200 & distance_cm > 100) {
tone(BUZZER_PIN, 1000, 250); // Plays 262Hz tone for 0.250 seconds
delay (100);
tone(BUZZER_PIN, 1200, 250); // Plays 262Hz tone for 0.250 seconds
}
if (distance_cm < 100) {
digitalWrite(LED_PIN, HIGH);
tone(BUZZER_PIN, 1400, 250); // Plays 262Hz tone for 0.250 seconds
delay (100);
tone(BUZZER_PIN, 1600, 250); // Plays 262Hz tone for 0.250 seconds
}
else digitalWrite(LED_PIN, LOW);
}