Коммутация сигнала в зависимости от его длительности

kokuam
kokuam аватар
Offline
Зарегистрирован: 10.01.2017
Всем привет!
 
Делаю железку, в которой надо попискивать, озвучивая нажатия 
сенсорных клавиш и переодически орать громкой сиреной. Звук выдает
один и тот-же пьезо-динамик. 
С Arduino на схему подаётся меандр, так: tone( LOUD_BUZZER, 2500, 300);
если через 10КОм - тихо, если напрямую с пина - громко.
Тихие звуки короткие: 50ms, громкие писки - 500ms и более и могут начаться 
с тихого с постепенным нарастанием.
 
Как обойтись только одним пином(их почти не осталось и места на плате мало)? 
 
Пытался подавать этот меандр через диод на затвор N-Ch полевика 
(с задержкой из конденсатора), N-Ch открывался на громкие(т.к. они длинные) 
писки и открывал P-Ch полевик, на исток которого был подан этот-же 
меандр и задача худо-бедно решалась.
Обойтись одним тольк P-Ch полевиком не получилось, т.к. он меандром не открывался. 
Громкость получалась ниже, чем в схеме с раздельными пинами и деталей получалось многова-то.
Подскажите пожалуйста, может есть более элегантное решение? Спасибо )
ELITE
ELITE аватар
Offline
Зарегистрирован: 11.01.2018

на вскидку 2 варианта

1) - использовать ШИМ пин и им регулировать

2) - на рассыпухе сделать - собственно через резистор заряжать конденсатор от пина - и им открывать транзистор - плавно поднимая уровнь, ИЛИ через стабилитрон ступенчато открыть

kokuam
kokuam аватар
Offline
Зарегистрирован: 10.01.2017

для ШИМа ведь тоже пин понадобится ;-) а вот "через стабилитрон ступенчато" - это я еще не пробовал, спасибо!

ELITE
ELITE аватар
Offline
Зарегистрирован: 11.01.2018

1 вывод ШИМ

програмно выводите например 25% и 100% скважность

на выход конденсатор - получаете 2 уровня напряжения, высокий и средний

что фактически у вас и равное прямому подключению и через R17 на схеме

к томуже спокойно можете реализовать много уровней громкости с гибкой регулировкой просто скважностью ШИМ