Buzzer: различия между версиями
Fizikdaos (обсуждение | вклад) |
Fizikdaos (обсуждение | вклад) |
||
Строка 40: | Строка 40: | ||
</pre> | </pre> | ||
[https://github.com/contactless/wirenboard/tree/master/examples/beeper '''Пример'''] | |||
[https://github.com/contactless/wirenboard/tree/master/examples/beeper] |
Версия 16:50, 28 апреля 2015
Излучатель звука подключен в 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