Микроконтроллер ESP32-C3, установленный на платы быстрой разработки NodeMCU ESP-C3-13 Kit (ESP-C3-32S Kit), поддерживает 4 независимых канала  с Sigma-Delta модуляцией второго порядка.

Сигма-дельта каналы модуляции, по английски Sigma-Delta, преобразует аналоговый сигнал напряжения в частоту импульсов или плотность импульсов, что можно понимать как модуляцию плотности импульсов (PDM).

sigmaDeltaSetup функция используется для настройки подключения к GPIO и частоты и выбранного Sigma-Delta канала :

double sigmaDeltaSetup(uint8_t pin, uint8_t channel, double freq);
  • pin номер IO вывода GPIO,
  • channel номер канала LEDC, выбранного для настройки (0 - 3),
  • freq частота генератора, до 16383Гц (14 бит).

Если эта функция возвращает 0, возникла ошибка, и канал Sigma-Delta не был настроен.

sigmaDeltaWrite функция используется для установки коэффициента заполнения SigmaDelta канала:

void sigmaDeltaWrite(uint8_t chan, uint8_t duty);
  • chan номер SigmaDelta канала для записи.
  • duty режим работы канала.

Ниже следующая программа плавно меняет яркость жёлтого светодиода на плате NodeMCU ESP-C3-13 Kit (ESP-C3-32S Kit) в противофазе с белым.

void setup()
{
  //setup on IO18, channel 0 with frequency 16383 Hz
  sigmaDeltaSetup(18, 0, 16383);
}

void loop()
{
  static uint8_t i = 0;
  sigmaDeltaWrite(0, i++);  // i переполнится при 256
  delay(20);
}

Лист. 1. Программа Sigma-Delta для NodeMCU ESP-C3-13 Kit (ESP-C3-32S Kit)

Рис. 1. Параметр duty = 64.

Литература:

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