buzzer coba — ESP32-S3 simulation

An interactive ESP32-S3 circuit simulation you can run free in your browser on Velxio, by itsmebenn.

Components

Sketch code

// #define BUZZER_PIN 45 

// void setup() {
//     Serial.begin(115200);
//     pinMode(BUZZER_PIN, OUTPUT);
//     pinMode(14, INPUT_PULLUP);
//     digitalWrite(BUZZER_PIN, LOW);
// }

// void loop() {
//     if (digitalRead(14) == LOW) {
//         digitalWrite(BUZZER_PIN, HIGH); // Buzzer nyala saat ditekan
//     } else {
//         digitalWrite(BUZZER_PIN, LOW);  // Langsung mati saat dilepas
//     }
// }

#define BUZZER_PIN 45 
#define BUTTON_PIN 14

const int freq = 2000;     // Frekuensi nada (2000 Hz adalah suara standar alarm/bip)
const int resolution = 8;  // Resolusi 8-bit (rentang nilai 0 - 255)

void setup() {
    Serial.begin(115200);
    pinMode(BUTTON_PIN, INPUT_PULLUP);
    
    // Inisialisasi PWM ESP32 v3 pada pin Buzzer
    ledcAttach(BUZZER_PIN, freq, resolution);
    
    // Matikan buzzer di awal (Duty cycle 0%)
    ledcWrite(BUZZER_PIN, 0); 
}

void loop() {
    if (digitalRead(BUTTON_PIN) == LOW) {
        Serial.println("Tombol ditahan! Volume naik bertahap...");
        
        // Fase 1: Volume naik dari 0% ke 50% (Maksimal)
        // Menurut teori forum: Suara paling keras ada di duty cycle 50% (nilai 128)
        for (int volume = 1; volume <= 128; volume++) {
            ledcWrite(BUZZER_PIN, volume);
            delay(10); // Jeda singkat agar efek volume naik terdengar jelas
        }
        
        // Fase 2: Volume turun kembali ke pelan
        for (int volume = 128; volume >= 0; volume--) {
            ledcWrite(BUZZER_PIN, volume);
            delay(10);
        }

        // one shot
        // ledcWrite(BUZZER_PIN, 128);
        
    } else {
        // Saat tombol dilepas, pastikan bunyi benar-benar mati
        ledcWrite(BUZZER_PIN, 0); 
    }
}

More projects by itsmebenn