Найти в Дзене

Пищалка для Ардуино - 1001-й вариант.

Есть у меня семисегментное табло в котором цифры формируются плашками двигаемыми сервоприводами. Используется оно для обратного отсчёта при старте ракетомоделей. Всё бы ничего, жить не тужить, но иногда случаются выезды на общественные мероприятия, где много людей, шум, гам. И, чтобы привлечь внимание почтеннейшей публики, приходиться громко считать предстартовые секунды. Ну, а глотка не лужёная, и к концу мероприятия голос становится сиплым и хриплым. Решил я, чтобы самому не кричать, поставить пищалку, которая в такт изменяющимся цифрам подавала бы сигналы. Торжественно и технологично! Времени перед выступлением оставалось два вечера, и я решил собрать схемку из того что было под рукой. Вариант - навесить на свободную ногу Ардуино пьезоэлектрический буззер, и управлять им командой tone() рассматривать не стал. Не хотелось лезть в отлаженный код накануне выступления - с одной стороны, а с другой - стоковые пищалки для Ардуино не такие уж и громкие. Под рукой оказалось несколько тайм

Есть у меня семисегментное табло в котором цифры формируются плашками двигаемыми сервоприводами. Используется оно для обратного отсчёта при старте ракетомоделей.

Всё бы ничего, жить не тужить, но иногда случаются выезды на общественные мероприятия, где много людей, шум, гам. И, чтобы привлечь внимание почтеннейшей публики, приходиться громко считать предстартовые секунды. Ну, а глотка не лужёная, и к концу мероприятия голос становится сиплым и хриплым.

Решил я, чтобы самому не кричать, поставить пищалку, которая в такт изменяющимся цифрам подавала бы сигналы. Торжественно и технологично! Времени перед выступлением оставалось два вечера, и я решил собрать схемку из того что было под рукой.

Вариант - навесить на свободную ногу Ардуино пьезоэлектрический буззер, и управлять им командой tone() рассматривать не стал. Не хотелось лезть в отлаженный код накануне выступления - с одной стороны, а с другой - стоковые пищалки для Ардуино не такие уж и громкие.

Под рукой оказалось несколько таймеров 555, динамическая головка на 8Ом и готовый УНЧ на 5V. Услужливый Интернет сразу вывалил мне ворох простых схем. Собрал первую попавшуюся, не понравилось. Динамик верещал не столько громко, сколько мерзостно. Как я не подбирал компоненты, звук приятней не становился. Отложил эту схему в сторону.

Звук этой пищалки не понравился.
Звук этой пищалки не понравился.

Нашел на антресолях ультраортодоксальные транзисторы КТ315Г, КТ361Г. Собрал пищалку из них. Звук понравился. Тон изначально подбирал вращением переменного резистора подключенного вместо R1, а затем впаял подходящий номинал.

Пишалка с нормальным писком (ну это на вкус и цвет, конечно).
Пишалка с нормальным писком (ну это на вкус и цвет, конечно).

К сожалению, к этому моменту я сжег УНЧ (случайно крутанул регулятор блока питания на большое напряжение) и динамик пришлось цеплять напрямую в цепь коллектора КТ361Г. Из-за этого пищал он негромко, практически, как среднестатистический буззер. Так что - тут я прокололся, быстро сделать УНЧ я не мог. Но тем не менее, решил доделать то, что можно было доделать.
Для подключения пищалки к Ардуино, опять же, решил использовать микросхему 555. Для этого сконфигурировал её в режиме ждущего мультивибратора (
хорошее объяснение см.здесь). Получилось.

Итоговая схема пищалки с одновибратором для Ардуино
Итоговая схема пищалки с одновибратором для Ардуино

Работает это всё так. В обычном режиме - Ардуино на вход схемы Sig подает положительное напряжение. На выходе Out при этом напряжение ноль. Ток на базу КТ315 не подаётся и пищалка не работает. Если Ардуино кратковременно снизит напряжение на входе Sig до нуля (для верности результата поставил подтягивающий резистор R6), то на выходе Out сигнал примет противоположное значение, то есть станет положительным. Без нагрузки напряжение на нем около 4V. Были опасения, что оно может сжечь транзистор KT315Г, но при подключении его базы на выход микросхемы (через R4) напряжение сразу упало до 0.5V, что просто прекрасно.
А теперь поясню, зачем мне нужен мультивибратор?
Как я написал в начале, не хотелось ломать код. А нужно было сделать что? Чтобы пищалка пищала не нарушая тайминг работы основных функций пускового устройства. Поэтому в код контроллера для подачи сигнала я включил метод, который, в случае нужды, формировал короткий импульс на вход мультивибратора. Сейчас это 10мс. Одновибратор фиксирует сигнал, включает пищалку, но не выключает её при окончании импульса на входе Sig, а оставляет её включенной на время обусловленной RC цепью (R5, С7). В моём случае это около 0.3с. И только после этого выключит звуковой генератор. Благодаря этому время работы пищалки, как впрочем и её тон, не зависит от того, что написано в скетче для Ардуино, а сам код, в свою очередь, не отягощен простыми но требующими контроля по времени методами.

Так как схема не сложная, я собрал её на макетной плате. Всё, кроме R5 разместил с внешней стороны.

-5

Места в корпусе было достаточно и проблем с её размещением не было.

-6

PS.
Конечно, первое же выступление на фестивале подтвердило насущную необходимость усиления сигнала. Шум, гам... Так что УНЧ буду добавлять по любому.

"3, 2, 1, пуск"!
"3, 2, 1, пуск"!

PPS: На следующий день, с подачи За_тех_кто_в_коде();, я провел небольшой эксперимент. Сократил импульс сигнала для одновибратора с 10мс до 1мс. Схема словно и не заметила перемены, работала также устойчиво, как и при длинном импульсе. Так что потенциал у этой пищалки вполне достойный, можно рекомендовать в массы.

Для себя я поставил 5мс.
Код импульса простейший, где out_beep переменная с номером цифрового выхода Ардуино:

-8