Примечание
Пассивные звукоизлучатели категорически запрещается подключать напрямую к выходу микроконтроллера, т. к. это может привести к перегрузке выхода по току и выходу контроллера из строя.
Оптимальным решением является использование готового активного звукоизлучателя, например, такого, как на рис. 3.15. Они стоят очень недорого, содержат встроенный генератор и транзисторный ключ, вход для управления логическим уровнем контроллера.
Имейте в виду, что звукоизлучатели разных типов могут иметь одинаковый корпус, поэтому однозначно отличить активный излучатель от пассивного можно не всегда. Кроме того, вам могут встретиться активные излучатели, рассчитанные на 12 В.
Прежде, чем подключать излучатель к контроллеру, подайте на его выводы питающее напряжение +5 В. Если он будет издавать звук достаточной громкости с частотой 1000 Гц, то все в порядке. Иначе придется искать другой бипер или делать простейшую схему звукового генератора. Контроллер генерирует только управляющий сигнал "вкл/выкл".
Простейший ключ для управления бипером можно сделать на основе биполярного или полевого транзистора, как показано на схеме рис. 6.4.
Рис. 6.4. Ключ на биполярном (а) и полевом (б) транзисторе
Подойдет любой маломощный биполярный n-p-n-транзистор или полевой N-канальный, затвор которого управляется логическими уровнями. Такие транзисторы еще называют "цифровыми".
Для активации функции бипера надо раскомментировать строку
#define BUZZER
После этого в интерфейсе конфигуратора появится опция BEEPER и можно будет назначить включение звукового сигнала на один из переключателей AUX. Если хотите, чтобы коптер коротким звуковым сигналом реагировал на изменение режимов, раскомментируйте строку
#define RCOPTIONSBEEP
По умолчанию вход бипера подключается к цифровому выходу D32 на плате контроллера. К сожалению, во второй версии платы Crius AIOP это не штыревой разъем, а контактная площадка на плате (рис. 6.5).
Рис. 6.5. Дополнительные цифровые выходы (D32-D37) контроллера
Рядом расположены площадки нескольких других дополнительных выводов. Крайне неудобное и опасное решение: эти площадки отслаиваются после перегрева при пайке, их можно легко оторвать, неосторожно дернув за провод. Эстетизма конструкции и удобства при эксплуатации торчащие из платы провода тоже не добавляют.
Поэтому желательно перенести выход бипера на один из свободных цифровых выходов, снабженных штыревым разъемом. Например, если вы не планируете использовать выход D46 для управления затвором фотокамеры, то для переноса выхода бипера на вывод D46 найдите в прошивке строки
//#define OVERRIDE_BUZZERPIN_PINMODE pinMode (A2, OUTPUT);
//#define OVERRIDE_BUZZERPIN_ON PORTC |= 1<<2;
//#define OVERRIDE_BUZZERPIN_OFF PORTC &= ~(1<<2);
Раскомментируйте их и замените аргументы определений следующими значениями:
#define OVERRIDE_BUZZERPIN_PINMODE pinMode (46, OUTPUT);
#define OVERRIDE_BUZZERPIN_ON PORTL |= 1<<3;
#define OVERRIDE_BUZZERPIN_OFF PORTL &= ~(1<<3);
Подключать бипер к выводу D46 удобно, т. к. в штатном режиме на гребенке разъема присутствует питающее напряжение +5 В и бипер можно подключить стандартным трехжильным проводом от сервомашинки.
Ультразвуковой сонар хорошо подходит для автоматического включения посадочных огней (фонарей подсветки посадочной площадки) в темное время суток, поскольку огни нужно включать на высоте менее 3 м. Это именно та дистанция, на которой обычный модуль сонара начинает достаточно точно и стабильно работать. Такой способ управлять включением огней не является расточительным, т. к. модули сонаров HC-SR04 (рис. 6.6) стоят в Китае менее двухсот рублей. Эти сонары используются во множестве любительских проектов и продаются, как аксессуар для Arduino.