В библиотеке Arduino ESP32 определена функция ledcWriteNote. Эта функция настраивает канал LEDC (генератор) микроконтроллера ESP32-C3 на частоту заданной музыкальной ноты.

double ledcWriteNote(uint8_t chan, note_t note, uint8_t octave);
  • chan выбор канала LEDC (для ESP-C3 от 0 до 5),
  • note выбор ноты (NOTE_C, NOTE_Cs, NOTE_D, NOTE_Eb, NOTE_E, NOTE_F, NOTE_Fs, NOTE_G, NOTE_Gs, NOTE_A, NOTE_Bb, NOTE_B),
  • octave выбор октавы для ноты (число 4 - выбор первой октавы).
/*
  A — ля
  B — си
  C — до
  D — ре
  E — ми
  F — фа
  G — соль
*/

#define SPEAKER_PIN                8             // Номер IO
#define SPEAKER_CHANNEL            0             // От 0 до 5

void setup() {
  ledcAttachPin(SPEAKER_PIN, SPEAKER_CHANNEL);
}

void loop() {
  ledcWriteNote(SPEAKER_CHANNEL, NOTE_C, 4);
  delay(200);
  ledcWriteNote(SPEAKER_CHANNEL, NOTE_D, 4);
  delay(200);
  ledcWriteNote(SPEAKER_CHANNEL, NOTE_E, 4);
  delay(200);
  ledcWriteNote(SPEAKER_CHANNEL, NOTE_F, 4);
  delay(200);
  ledcWriteNote(SPEAKER_CHANNEL, NOTE_G, 4);
  delay(200);
  ledcWriteNote(SPEAKER_CHANNEL, NOTE_A, 4);
  delay(200);
  ledcWriteNote(SPEAKER_CHANNEL, NOTE_B, 4);
  delay(200);
  ledcWrite(SPEAKER_CHANNEL, 0);
  delay(2000);
}

Лист. 1.

Рис. 1. Принципиальная электрическая схема.

Литература:

https://docs.espressif.com/projects/arduino-esp32/en/latest/api/ledc.html