PWM
Этот модуль описывает работу с ШИМ (PWM).
Чтобы использовать этот модуль, необходимо учитывать следующее:
-
Подключите устройство к выводу PWM, используя функцию pwm.attach, и сохраните экземпляр в переменной.
device = pwm.attach(.....)
-
Используйте экзмепляр для управления.
device:start(...) ... device:stop(...)
-
Отсоедините устройство, если оно больше не нужно.
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()