Page 114 - 1156_Arduino-Polnyy-uchebnyy-kurs-ot-igry-k-inzhenernomu-proektu
P. 114
5.4. Функции Wiring и ШИМ. Работа со звуками
113
5.4. Функции Wiring и ШИМ.
Работа со звуками
Широтно-импульсная модуляция (ШИМ, см. главу 2) помога-
ет переводить цифровые выходы в псевдоаналоговые. Поэтому
в языке Wiring существует стандартная функция analogWrite().
Для демонстрации работы ШИМ воспользуемся зуммером (пье-
зоэлектрическим звукоизлучателем). У него всего два контакта:
плюс и минус. Закрепите зуммер на макетной плате (рис. 5.3).
Красным проводом соедините контакт зуммера на стороне « »
с цифровым ШИМ-выходом № 3 платы Arduino Uno. Второй
контакт зуммера соедините черным проводом с шиной земли на
макетной плате.
Переведите цифровой порт № 3 в режим выхода:
5. pinMode(3, OUTPUT);
Существует два способа воспроизведения звука:
1) с помощью функции tone() стандартной библиотеки;
2) с помощью библиотеки Arduino Tone Library.
Способ 1. Функция tone() генерирует сигнал в форме прямо-
угольной волны заданной частоты. В стандартном виде ШИМ
включается на 50%-й рабочий цикл. Функция может иметь два
или три аргумента: порт с поддержкой ШИМ, частота звука
в герцах и длительность в миллисекундах. Если длительность
не указана, функция работает до поступления команды noTone(),
аргументом которой является номер порта. Загрузите скетч на
плату и проверьте выполнение.
Рис. 5.3. Закрепление зуммера на макетной плате
16 / 17