From 4bd0a060d100c7fb9ad657c939b954b081b62016 Mon Sep 17 00:00:00 2001 From: EnricoGuccii Date: Tue, 23 Dec 2025 16:59:20 +0100 Subject: eee --- firmware/lib/buzzer/buzzer.cpp | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 firmware/lib/buzzer/buzzer.cpp (limited to 'firmware/lib/buzzer/buzzer.cpp') diff --git a/firmware/lib/buzzer/buzzer.cpp b/firmware/lib/buzzer/buzzer.cpp new file mode 100644 index 0000000..089f814 --- /dev/null +++ b/firmware/lib/buzzer/buzzer.cpp @@ -0,0 +1,31 @@ +#include "buzzer.h" +#include "settings.h" +#include + +#define BUZZER_CHANNEL 3 +#define BUZZER_RESOLUTION 8 +#define BUZZER_FREQ 2000 + +BUZZER::BUZZER() {} + +void BUZZER::init() { + ledcSetup(BUZZER_CHANNEL, BUZZER_FREQ, BUZZER_RESOLUTION); + ledcAttachPin(BUZZER_PIN, BUZZER_CHANNEL); +} + +void BUZZER::playTone(uint16_t frequency, uint32_t duration) { + ledcWriteTone(BUZZER_CHANNEL, frequency); + if (duration > 0) { + delay(duration); + stop(); + } +} + +void BUZZER::playMelody(const uint16_t melody[][2], size_t length) { + for (size_t i = 0; i < length; i++) { + playTone(melody[i][0], melody[i][1]); + delay(50); + } +} + +void BUZZER::stop() { ledcWriteTone(BUZZER_CHANNEL, 0); } -- cgit v1.2.3