PWM

PWM

Этот модуль описывает работу с ШИМ (PWM).

Чтобы использовать этот модуль, необходимо учитывать следующее:

  1. Подключите устройство к выводу PWM, используя функцию pwm.attach, и сохраните экземпляр в переменной.

    device = pwm.attach(.....)
  2. Используйте экзмепляр для управления.

    device:start(...)
    ...
    device:stop(...)
  3. Отсоедините устройство, если оно больше не нужно.

    device:start(...)
    ...
    device:detach(...)

device = pwm.attach(pin, frequency, initial duty)

Подключить устройство к выводу PWM.

Аргументы:

  • pin: идентификатор GPIO, который следует использовать. Используйте pio.GPIOx, определенный для этой цели.
  • frequency: частота импульсов, выраженная в герцах.
  • initial duty: начальное значение скважности, десятичное число между 0 и 1, где 0 соответствует 0%, а 1 — 100%.

Возвращает: экземпляр PWM или исключение. Этот экземпляр необходимо сохранить в переменной для дальнейших операций с ним.

-- Attach a device to PWM pin at GPIO16, at 10 Khz, with initial duty value of 50%.
device = pwm.attach(pio.GPIO16, 10000, 0.5)

device:start()

Запустить генерацию PWM.

Возвращает: ничего или исключение.

-- Attach a device to PWM pin at GPIO16, at 10 Khz, with initial duty value of 50%.
device = pwm.attach(pio.GPIO16, 10000, 0.5)

-- Start the PWM generation
device:start()

device:stop()

Остановить генерацию PWM.

Возвращает: ничего или исключение.

-- Attach a device to PWM pin at GPIO16, at 10 Khz, with initial duty value of 50%.
device = pwm.attach(pio.GPIO16, 10000, 0.5)

-- Start the PWM generation
device:start()

....

-- Stop the PWM generation
device:stop()

device:setduty(duty)

Установить новое значение скважности.

Аргументы:

  • duty: новое значение скважности, десятичное число между 0 и 1, где 0 соответствует 0%, а 1 — 100%.

Возвращает: ничего или исключение.

-- Attach a device to PWM pin at GPIO16, at 10 Khz, with initial duty value of 50%.
device = pwm.attach(pio.GPIO16, 10000, 0.5)

-- Start the PWM generation
device:start()

....

-- Set duty to 25%
device:setduty(0.25)

....

-- Stop the PWM generation
device:stop()

device:setfreq(frequency)

Установить новое значение частоты.

Аргументы:

  • frequency: частота импульсов, выраженная в герцах.

Возвращает: ничего или исключение.

-- Attach a device to PWM pin at GPIO16, at 10 Khz, with initial duty value of 50%.
device = pwm.attach(pio.GPIO16, 10000, 0.5)

-- Start the PWM generation
device:start()

....

-- Set frequency to 5 khz
device:setfreq(5000)

....

-- Stop the PWM generation
device:stop()

device:detach()

Отключить устройство от вывода PWM. При отключении генерация PWM останавливается. Устройство также может быть отключено, если оно присвоено значению nil.

Аргументы: нет.

Возвращает: ничего.

-- Attach a device to PWM pin at GPIO16, at 10 Khz, with initial duty value of 50%.
device = pwm.attach(pio.GPIO16, 10000, 0.5)

-- Start the PWM generation
device:start()

....

-- Detach the device
device:detach()