Микроконтроллер ESP32-C3, установленный на платы быстрой разработки NodeMCU ESP-C3-13 Kit (ESP-C3-32S Kit), поддерживает 6 каналов ШИМ (широтно-импульсная модуляция).

Каналы ШИМ, по английски PWM (Pulse-width modulation), в документации к библиотекам ESP32 называют LEDC каналами (LED control). LEDC - устройство управления светодиодами, оно же ШИМ, может управлять многими другими устройствами.

ledcSetup функция используется для настройки частоты и разрешения канала LEDC:

double ledcSetup(uint8_t channel, double freq, uint8_t resolution_bits);
  • channel номер канала LEDC, выбранного для настройки (0 - 5),
  • freq частота ШИМ генератора,
  • resolution_bits разрешение таймера-счётчика для канала ledc, диапазон 1-12 бит.

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

ledcAttachPin функция используется для подключения IO вывода к каналу LEDC:

void ledcAttachPin(uint8_t pin, uint8_t chan);
  • pin номер IO вывода GPIO,
  • chan номер канала LEDC (0 - 5).

ledcWrite функция используется для установки режима работы канала LEDC:

void ledcWrite(uint8_t chan, uint32_t duty);
  • chan номер канала LEDC для записи.
  • duty скважность сигнала для выбранного канала (в пределах установленного разрешения таймера-счётчика).

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

#define LED_PIN_GREEN           4             // Номер IO
#define LEDC_CHANNEL_GREEN      0             // От 0 до 5
#define LEDC_TIMER_RESOLUTION   12            // От 0 до 4095
#define LEDC_BASE_FREQ          200           // Гц

void setup() {
  ledcSetup(LEDC_CHANNEL_GREEN, LEDC_BASE_FREQ, LEDC_TIMER_RESOLUTION);
  ledcAttachPin(LED_PIN_GREEN, LEDC_CHANNEL_GREEN);
}

void loop() {
  for (int i = -64; i < 64; i++) {
    int duty = i* i;
    ledcWrite(LEDC_CHANNEL_GREEN, duty);
    delay(50);
  }
}

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

Литература:

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