Buzzer: различия между версиями
Fizikdaos (обсуждение | вклад) |
(Подготовка страницы к переводу) |
||
Строка 1: | Строка 1: | ||
<languages/> | |||
<translate> | |||
Излучатель звука подключен в Wiren Board Smart Home к выходу ШИМ и управляется через sysfs-интерфейс ядра. | Излучатель звука подключен в Wiren Board Smart Home к выходу ШИМ и управляется через sysfs-интерфейс ядра. | ||
Номер порта PWM - 2. | Номер порта PWM - 2. | ||
Строка 41: | Строка 43: | ||
[https://github.com/contactless/wirenboard/tree/master/examples/beeper '''Пример'''] | [https://github.com/contactless/wirenboard/tree/master/examples/beeper '''Пример'''] | ||
</translate> |
Версия 19:53, 28 мая 2019
Излучатель звука подключен в Wiren Board Smart Home к выходу ШИМ и управляется через sysfs-интерфейс ядра. Номер порта PWM - 2.
ШИМ - это прямоугольные импульсы, интерфейс ядра позволяет регулировать частоту импульсов и коэффициент заполнения. Коэффециент заполнения влияет на громкость звука.
Экспорт порта в sysfs:
echo 2 > /sys/class/pwm/pwmchip0/export
После этого появляется директория /sys/class/pwm/pwmchip0/pwm2
Установка периода в наносекундах. Пересчёт из частоты(в килогеграцах в период в наносекундах производится по формуле: T(ns) = 1 000 000 / f(kHz)
echo 250000 > /sys/class/pwm/pwmchip0/pwm2/period # устанавливаем период в 250 000 нс, т.е. в 250мкс, что соответствует частоте 4кГц
Установка duty_cycle (длительности высокого состояния) в наносекундах. Максимальная громкость достигается при duty_cycle = period / 2
echo 125000 > /sys/class/pwm/pwmchip0/pwm2/duty_cycle # устанавливаем duty_cycle в 125 000 нс, т.е. в половину периода
Включение выхода ШИМ:
echo 1 > /sys/class/pwm/pwmchip0/pwm2/enable
Выключение:
echo 0 > /sys/class/pwm/pwmchip0/pwm2/enable