pwm - ШІМ (PWM)

Функції для генерації ШІМ-сигналу на пінах роз’єму розширення за допомогою периферії ESP32 LEDC.

Примітка

Системний бузер також використовує LEDC, тому радимо використовувати вищі номери каналів (наприклад, 2..``15``), щоб уникнути конфлікту.

Приклад:

-- Плавна зміна яскравості світлодіода на піні 12

led_pin = 12
channel = 2

pwm.setup(channel, 5000, 8) -- канал 2, 5 кГц, 8 біт
pwm.attach_pin(led_pin, channel)

while true do
    for duty = 0, 255 do
        pwm.write(channel, duty)
        util.sleep(0.005)
    end
    for duty = 255, 0, -1 do
        pwm.write(channel, duty)
        util.sleep(0.005)
    end
    if controller.get_state().a.just_pressed then
        break
    end
end
class pwm

Апаратний ШІМ (PWM) на основі периферії ESP32 LEDC.

Зверніть увагу: системний бузер також використовує LEDC, тому радимо використовувати вищі номери каналів (наприклад, 2..``15``), щоб уникнути конфлікту.

static setup(channel, freq, resolution_bits)

Налаштовує канал ШІМ.

Parameters:
  • channel (integer) – номер каналу (0..``15``)

  • freq (integer) – частота в Гц

  • resolution_bits (integer) – ? розрядність (1..``16``, за замовчуванням 8)

Returns:

actual фактична встановлена частота в Гц

Return type:

integer

static attach_pin(pin, channel)

Прив’язує GPIO-пін до каналу ШІМ.

Parameters:
  • pin (integer) – номер піна

  • channel (integer) – номер каналу

static detach_pin(pin)

Відв’язує GPIO-пін від каналу ШІМ.

Parameters:

pin (integer) – номер піна

static write(channel, duty)

Встановлює коефіцієнт заповнення (duty) для каналу.

Parameters:
  • channel (integer) – номер каналу

  • duty (integer) – значення заповнення (0..``2^resolution - 1``)

static write_tone(channel, freq)

Генерує тон заданої частоти на каналі.

Parameters:
  • channel (integer) – номер каналу

  • freq (integer) – частота в Гц

Returns:

actual фактична встановлена частота в Гц

Return type:

integer

static read(channel)

Читає поточне значення заповнення (duty) каналу.

Parameters:

channel (integer) – номер каналу

Return type:

integer