Детектор звуков

Привет! Сегодня мы будем собирать акустический датчик.

Анализ голоса и другой хай-тек оставим профессионалам, а себе возьмём задачу попроще: по команде (пара хлопков в ладоши) устройство должно выполнять какое-либо действие. Пусть, таким действием будет включение/выключение освещения. При этом, конечно, устройство должно отличать команду от всякого шума.

Преобразовать звук в электрический сигнал можно двумя способами: с помощью пьезодинамика или микрофона. На выходе у них напряжение. У пьезодинамика, в состоянии покоя выход = 0В, а у микрофона, обычно, около 2В, в зависимости от подтягивающего резистора.

Пьезодинамик подойдёт не всякий. Простая «пластинка с двумя проводками» имеет маленькую чувствительность, хотя если её запихнуть в резонатор, то, наверное, станет лучше. Идеально подходят пьезодинамики марки 3П-22. Это такая кругляшка 3 см в диаметре, с отверстием в центре. Выглядит так:

Такие стоят в совковых часах с будильником, и ещё много где.

Загнать полученный сигнал в МК можно при помощи усилителей и АЦП – тогда мы получим полную информацию о форме сигнала. Но для наших целей такой подход избыточен – поступим проще – пропустим сигнал через компаратор:

При подключении пьезоизлучателя нужно повесить шунтирующий резистор (R3 на схеме), чтобы через него стекал заряд. Иначе, из-за огромного входного сопротивления компаратора, напряжение на пьезоизлучателе будет спадать дико медленно, и никаких импульсов нам не видать. Номинал в 24кОм я подобрал экспериментально. Можно снизить до 10к, но тогда упадёт чувствительность. Если взять больше, то чувствительность повысится, но напряжение будет спадать медленно, что приведёт к ошибкам.

Порог срабатывания компаратора настраивается с помощью подстроечного резистора. Ради экономии, я не стал ставить многооборотный подстроечник, а поступил хитрее. Верхний резистор (R1=47к) ограничивает диапазон напряжений – больше 0.104V ты из этой штуки не выжмешь. А подстроечным резистором, номиналом 1к, можно регулировать порог от 0 до 104 мВ. Это, если питаемся от 5V, иначе нужно пересчитать резисторы. Хотя, такого диапазона для работы с пьезоизлучателем более чем достаточно, поэтому можно использовать такие-же номиналы и при питании от 3V.

При подключении микрофона я использовал многооборотный подстроечник.

Кстати, активный уровень у нашей схемы – низкий. Если кому не нравится – меняют местами пороговое напряжение и входной сигнал.

С выбором МК я не стал заморачиваться и взял ATTiny13. Килобайта памяти нам вполне хватит. А компаратор можно использовать встроенный. «+» вход у него – AIN0 (PB0), а «-» — AIN1 (PB1).

Питать устройство можно разными способами. Зависит от того, куда его планируется запихнуть. Мой девайс управлял светильником, и питался от маленького трансформатора (достал из китайского БП).

В верхней части схемы – блок питания. Переменное напряжение с трансформатора выпрямляется диодным мостом и сглаживается конденсатором. Второй конденсатор (С4) служит для подавления ВЧ помех. Затем напряжение понижается до 5В (LM7805).

Компаратор я использовал встроенный, хотя большинство дешевых компараторов обгоняют его по характеристикам. Зато я избавился от лишней мелкосхемы, сильно упростив разводку.

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

В нижней части расположен силовой модуль. Это симистор и оптическая развязка. DI HALT уже писал про то, как устроен симистор, и как его заюзать поэтому не буду повторяться.

Печатку нарисовал в SprintLayout и изготовил ЛУТ’ом:

Трансформатор и пьезодинамик подключаются к разъёмам, и запихиваются — куда удобно. Причем, пьезодинамик не стоит запирать в корпусе устройства – лучше, чтобы он выглядывал наружу.

Теперь начинается самое главное – прошивка!
Сразу оговорюсь, что буду описывать алгоритм, который реагирует на 3 хлопка, потому-что команда из двух хлопков даёт многовато «ложных срабатываний».

От МК нам понадобятся две вещи: компаратор с его прерыванием и 16и разрядный таймер. Такого жирного таймера в Tiny13 нету, поэтому сделаем его сами. Компаратор настроим на прерывание по «Falling output edge», т.е. бит ACIS1 в единичку. У таймера поставим предделитель = 64. Т.е. полный период = 0.873 секунды с копейками.

Во главе угла стоит переменная state. Если, к моменту переполнения таймера она равна 3, то можно переключать свет. Изначально она = 0, после каждого переполнения таймера она опять сбрасывается в ноль.

Вся магия будет твориться в обработчике прерывания от аналогового компаратора. Здесь МК будет определять время появления очередного импульса, и, в зависимости от этого изменять значение state.

А на компаратор, от каждого хлопка, прилетает куча импульсов. Если поделить всё время работы таймера на периоды, то получится что-то вроде этого:

Теперь, попробуем разобраться, с тем, что-же тут происходит:

  • Устройство ловит первый хлопок, начинается период p1 (pulse 1). Он будет продолжаться до p_len. В этот момент запускается таймер, а state становится = 1.
  • Пока state = 1, проверяем, не попал-ли очередной импульс между p_len и p2e_begin. Если попал, то он в периоде Q1 (quietness 1), а в нём должна быть тишина. Значит это не команда, а шум – записываем в state 0xFF (Типа, ошибка).
  • Если state = 1, и импульс попал между p2e_begin и p2e_end, то есть в период p2e (pulse 2 expectation – «Ожидание второго хлопка»), то мы проделываем такую штуку: записываем текущее значение таймера в переменную Temp_pulse_begin, и пишем в state 2. Усё! Второй хлопок ловится.
  • Если state = 2, то, как и в первый раз, проверяем – не попал-ли импульс в период Q2. Только сравниваем не с p2_end, а с Temp_pulse_begin + p_len. Если попал – пишем в state 0xFF.
  • Если state = 2, и импульс попал в p3e, то делаем, как в п.3 – записываем время в Temp_pulse_begin, а в state пишем 3.
  • Если state = 3, и импульс объявился после Temp_pulse_begin + p_len, т.е. в периоде Q3, то пишем в state 0xFF.

Вот так. Получается, что система сработает только, если три хлопка попадут в периоды p1, p2 и p3, а во всех периодах Q будет тишина.

На наше счастье, пьезодинамик обладает избирательной чувствительностью – реагирует только на резкие звуки. Т.е. на музыку из колонок, мяуканье кота и т.п., он не обратит внимания, а вот на хлопок в ладоши отзовётся радостным всплеском напряжения на выходе. Он, кстати, очень хорошо реагирует на вибрации. Если постучать пальцем по моему светильнику (или поверхности, на которой он крепится), то он включится, также как от хлопков в ладоши.

У микрофона чувствительность тоже избирательная, но в другую сторону. Во-первых, он, довольно бодро, реагирует на голос, музыку, и другие, не нужные нам звуки. Во-вторых, микрофон хорошо ловит резкие изменения давления. Я пару раз наблюдал, как с компаратора прилетал импульс, когда захлопывалась входная дверь в квартиру (Устройство при этом находилось в дальней комнате!).

Не важно, что ты решил использовать – пьезодинамик или микрофон. Программная часть от этого почти не меняется. Хотя, возможно, придётся изменить длительности периодов.

Не гарантирую, что устройство будет работать без ошибок, но о том как свести их число к минимуму сейчас расскажу.

Ошибки бывают двух типов – «ложное срабатывание» и «пропуск команды». В первом случае устройство принимает шум за команду, а во втором – команду за шум.

Как лечить «ложные срабатывания»:

  • Нужно убрать «лишнюю» чувствительность, отрегулировав подстроечник так, чтобы через компаратор не проходили тихие шумы.
  • Отделить устройство от той поверхности, на которой оно крепится. Например, прокладкой из поролона. Тогда оно перестанет реагировать на вибрации.
  • Можно увеличить длительность Q-периодов (пропорционально уменьшив p2e и p3e), хотя такой метод может стать причиной «пропусков команды».
  • Увеличить длительность последнего «тихого» периода (Q3) можно, увеличив полный период таймера. Тут главное – не перестараться :)

Борьба с «пропусками команды»:

  • Возможно, что чувствительность системы слишком высока, и в периоды Q попадает всякий шум. Тогда чувствительность нужно снизить.
  • А может быть наоборот – чувствительность низкая, и хлопки «пропадают»
  • Может быть неправильно подобраны длительности периодов. В таком случае можно записать хлопки через микрофон на комп, и в аудио-редакторе измерить паузы между ними. Потом изменить длительности и перепрошить МК.

Пример борьбы с ложными срабатываниями
Устройство установлено в комнате и управляет «большим» светом. Чтобы снизить вероятность ложного срабатывания в таком приложении можно внести несколько конструктивных изменений.

Раз управление устройством ведётся на небольшом расстоянии (допустим, комната 3х4 метра), большая чувствительность не нужна. Уменьшение чувствительности устройства позволит сократить количество ложных срабатываний. Устройство можно смонтировать так, чтобы звук из-за пределов комнаты звук не мог попасть к нему напрямую. Отражённый звук имеет намного меньшую энергию, а значит шумы, пришедшие из-за пределов помещения, будут подавляться.
Для подавления вибраций, можно отделить устройство прослойкой из поролона. Но это повлияет и на чувствительность устройства (обычно, в таких случаях чувствительность уменьшается). Устройство управляет освещением, значит, на него можно установить фотодиод. Если нагрузка (лампа) отключена, а внешнего освещения и так достаточно, то можно не воспринимать команду включения. Это позволит избавиться от ложных срабатываний в светлое время суток, а именно тогда бывает больше всего внешних шумов.

Видео демонстрация работы устройства

P.S.
Смотрим схему – у нас ведь пьезоПИЩАЛКА подключена прямо к МК!! Значит ей можно пьезоПИЩАТЬ!!!! Например, для того, чтобы оповестить о срабатывании системы, если мы управляем не светильником, а чем-то «менее заметным».

Архив с проектом – исходники (mikroPasсal & ASM), разводка платы

107 thoughts on “Детектор звуков”

  1. Очень полезная штуковина!!! Но хотелось бы узнать про «лейбл» на печатной плате, это теперь новая подпись автора???!! ))))

  2. ИМХО. Чушь. Полная чушь. Еще контроллер зачем то припахали.
    Во-первых, сама идея похожа на «детекторный приемник».
    Во-вторых, схемотехнически контроллер здесь и не нужен. Нужен D-триггер, в режиме счетчика. Который стоит в 4 раза дешевле.
    Да и питание можно взять от схемы, куда встраивается данное устройтсво.
    Извините, если кого то обидел.

    1. А если надо что то сложней чем включить лампочку? Мыслите шЫрше и только потом выносите свои вердикты.

    2. Питание, конечно можно взять и от схемы. Например поставить конденсаторный БП.
      Но так делают, когда пипец мало места, а у меня с этим проблем нет. Да и трансформатор выигрывает в плане безопасности.

  3. Очень даже классная штука! Вот только надо подумать, как все-таки бороться с ложными срабатываниями от музыки.

    1. Если стоит пьезодинамик, то ложных срабатываний от музыки, голоса и т.п. нет. Скорее, они будут от резких звуков (упало чё-нибудь).
      С микрофоном дело обстоит примерно так-же, если не ставить девайс рядом с колонками, то всё ок :)
      Более того, чтобы устройство сработало, звук должен точно совпасть по ритму с «шаблоном».

      Так-что скорее, внешние шумы приведут к «пропуску команды», попав в периоды Q.

      1. Спорить не буду, т.к. не экспериментировал.
        Согласен, если слушать Моцарта или там еще кого из этих парней, все будет хорошо. А вот если транс какой-нибудь, с изобилием резких звуков и целым букетом «паттернов»…
        Но тем не менее, девайс на пятерку. Следующую статейку хотелось бы увидеть про анализ голоса…
        ПС. на тини13 :)))
        ППС шутка.

        1. Анализ голоса я, вроде-бы «оставил профессионалам», но может-быть напишу. Хотя для этого нужны камни побыстрее…. ARM чтоли раскурить :)

          Но это будет позже, ибо сейчас я вовсю занялся строительством робота, на него, возможно, поставлю такой датчик.

          Про моего робота, можно почитать тут: [url]http://forum.easyelectronics.ru/viewtopic.php?f=11&t=2448[/url]

          А здесь есть ещё немного про этот датчик: [url]http://forum.easyelectronics.ru/viewtopic.php?f=16&t=2375[/url]

      2. «Если стоит пьезодинамик, то ложных срабатываний от музыки, голоса и т.п. нет. Скорее, они будут от резких звуков (упало чё-нибудь).
        » Упало чё-нибудь, и так три раза))))

      3. Чтобы там не стояло — простейший ФНЧ, ФВЧ или ППФ может исправить проблему ложников. Смотря от чего надо и от чего не надо ловить звук.

        Можно ещё попробовать в контроллере организовать измерение средней частоты (посчитать кол-во пересечений сигналом нуля) — это вообще без аппаратной переделки.

  4. DI HALT,
    цитирую:

    Анализ голоса и другой хай-тек оставим профессионалам, а себе возьмём задачу попроще: по команде (пара хлопков в ладоши) устройство должно выполнять какое-либо действие. Пусть, таким действием будет ВКЛЮЧЕНИЕ /ВЫКЛЮЧЕНИЕ освещения.

    конец цитаты.
    Постановка задачи — управление освещением, это раз.
    Бесит, когда чуть-что, сразу хватаются за контроллеры, не подумав что и другими способами, менее затратными можно решить проблему, это два.

    1. Задачу я поставил таким образом для того, чтобы описать конкретное решение, а «сферических коней». Без МК, конечно получается проще, но отваливается возможность модернизировать девайс.

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

      Можно было и на триггере делать, но тогда полезной информации от статьи было бы в разы меньше.

      Кто то тут говорил о том, что это будет ультимативное промышленное решение для управления светом? Нет. Цель статьи описать способы управления светом? Нет. Так кому тут уперся триггер?

    3. Ну и да, для единичного случая запросто дешевле может окзааться сделать на Тини13. Т.к. она стоила последний раз в розницу около 30рублей. И если она есть в наличии, а триггера нет, то это дешевле чем 30 рублей на дорогу туда-обратно и 10р за триггер. Ну и можно побаловаться с алгоритмами еще. Тем более когда такая неоднозначная реакция на шумы, вибрации и прочие приколы. На триггере такого не нагородишь.

    4. А кроме вышесказанного, самых умных и самых нервных я бы попросил, прежде чем кричать, хотя бы у себя на листочке или в голове прикинуть схему этого дела «на триггере в режиме счётчика» и осознать всю глубину огорода, который придётся нагородить вокруг.

      PS Я тоже не сторонник пихать контроллеры туда, где без них лучше, но это не тот случай.

      PPS Я тоже бываю нервный.

      1. Как то делал мигалку на тиньке 13))) , реально надо было светодиодом мигать для имитации сигнализации. Первое что пришло в голову таймер 555, пришлось от нее отказаться т.к. делать на тиньке меньше деталюх.

  5. таки да, контроллер тут не нужен
    но я вот 13х брал горсть по дешевке и в отдельности 1шт будет чуть дороже того же триггера

    можно чуть усложнить и 3й хлопок должен следовать через другой промежуток

    например на видео видно 2 хлопка ..
    а можно сделать 3 ..-. и тогда ложное срабатывание на 95% исключится
    еще можно сделать фотодатчик и днем вообще гореть не будет и будет выключаться само при наступлении дня

    причем регулировка делается без резистора и записывается в прошивку или в память

    1. Ну, а если почитать текст, то выясняется, что алгоритм я описывал как-раз для ТРЁХ хлопков. И как-раз потому, что с двумя хлопками много ложных срабатываний.

      И прошивка под три хлопка.

      Про фотодиод я тоже писал, в самом конце.

      Да, на видющке два хлопка, но это только потому, что более поздние тесты я не снимал.

      1. Последовательности нет и не будет. Равно как и общей цели. Я пишу статьи по мере того как меня творчески прёт. Есть настроение написать про что то — пишу. Потом, спустя какое то время, статьи мною сортируются в категориях в подобии логического порядка. Иногда я оглядываю содержимое, ищу нераскрытые темы и вписываю недостающие, на мой взгляд, статьи. Опять же делаю это по желанию левой пятки.
        А пишу я в основном о том, над чем работал в последнее время. Для себя, для своего самообразования. Я ведь тоже многого не знаю и осваиваю по ходу процесса. Иначе это из прикольного хобби станет нудной работой, а сайт быстро сдохнет как десятки других аналогичных.

        Опять же сайт читают почти десять тысяч человек каждый день. У всех у них разный уровень. Кто то только вчера включил паяльник в розетку, кто то вовсю программирует контроллеры и вникает в прочую электронику, а кто то уже свои компьютеры разрабатывает (есть тут и такие продвинутые товарищи). И если я буду писать последовательно от самых азов, то отвалится огромный кусок аудитории тех, кто это уже знает и ему это не интересно. А я пишу для всех.

        С другой стороны, невозможно обьяснить все. И мои статьи это не энциклопедия электроники, а скорей вектор. Из серии «Народ, зырьте, а тут еще вот так можно!»

        И масса тех кто думал о подобном, но еще в принципе не знал как реализовать дружно говорит «О!» и начинает уже самостоятельно рыть в указанном мною направлении. Задавать правильные вопросы гуглю и на форумах и получать на них правильные ответы. Попутно отвечая на сотни других своих вопросов и раскрывая для себя новые горизонты. А те кто не думал мотают на ус и это пригодится им в будущем.

        Как то так.

    1. Я думаю что цель изучить электронику ВООБЩЕ.
      И ещё, когда выходил курс по АВР, в то же время иногда выходили статьи и на другие темы, например про технологии пайки, ЛУТа, или обзоры разных девайсов, книг.

      1. Вообще все изучить досконально невозможно. Что касается автора, то статей толковее его я мало встречал, но диапазон интересов слишком обширен.

        1. Конечно не возможно, но к этому надо стремиться))

          Автора какого? Dcoder или DiHalt ? Ди — конечно крутой чувак, но у него на всё времени не хватает. А чтоб сайт не стоял без дела пусть пока другие попишут. Тем более не плохо ведь пишут!

        2. Да, лучше бы больше по конкретному применению AVR. Больше практики. А то в последнее время пошло по верхам, одна теория, да еще эти метания по ARMам… С одной стороны, вроде ориентация на начинающих, с другой — некоторые темы и профессионалам — то не всегда пригодятся… Можно довольно много для дома сделать и на 8 — битных контроллерах, а морочить голову изучением ARMов за ради помигать светодиодом на отладочной плате — толку то с того. И что потом дальше с ними делать? Телефон или DVD плэер изобретать?

          1. Зачем надо изучать ARM? На ARM сейчас идет постепенный переход производственников. От восьмибитников они точно не откажутся, но 32х разрядные контроллеры уверенно лезут в те ниши где были AVR. ATMega128 так теснится только так. Причем тут начинающие?
            Ну так среди начинающих очень много (а по факту не менее 50% аудитории сайта) студентов которые после выпуска пойдут работать инженерами и там от них будут уже требовать знания контроллеров и ARM в том числе. Хотя бы на базовом уровне игры в светодиодики. Это просто резко повышает их шансы на рынке труда. Если ты думаешь, что все плохо и эти студенты никому не нужны и пойдут торговать на рынок картошкой, то это не так. Нужны и еще как.
            Примеры у меня есть уже сейчас, а будет еще больше.

            А уж интересующихся ARM контроллерами становится все больше и больше. Многие лезут в них потому что интересно. Пофиг на практический смысл. Изучение ради изучения это же еще и прикольное хобби! Но доступной инфы очень мало, только сухие справочные данные. И вот тут я имею все шансы сгрести эти толпы под свои знамена.

            1. Польза от ARM громадна. Лично для меня это ресурсы под Ethernet и кодирование звука. Да и те же линуксы были бы очень кстати в куче приложений. Так что, пожалуйста, продолжай в том же направлении :)

  6. Ога
    кому тут вперся этот контроллер?
    в большинстве случаев элементарная логика решает все проблемы.
    Если ты, дружок, не в курсах, то у триггера шмита есть такое понятие, как петля гистерезиса, которая как раз-таки ограничивает такие эффекты как неоднозначная реакция на шумы. А вибро — устраняется разумной конструкцией.

    1. Приятель, шумы бывают разными. Разные условия. В одной комнате раз в пол часа может трамвай с грохотом под окнами проезжать, генерируюя очень похожие на полезный сигнал звуки, в другой же тишь да благодать. Или захочется сделать командную систему на два-три-четыре хлопка. Да с индикацией сработки, да с отсечением звуков в светлое время суток. А коли потом к общей системе управления светом подконнектить по какому нибудь Micro-LAN Шо под каждую комнату и идею свою схему на дискретке разрабатывать?

      Кому вперся тут контроллер? Тому кто захочет сделать что-то сложней чем вкл/выкл. И будет уже иметь кусок готового решения. Это обучающий материал, а не инструкция как сделать практичный и дешевый выключатель освещения.

      1. Недавно делал подобный проект на работе, кстати тоже на тиньке13А (благо недавно умудрился по 22 рубля целую кучу накупил!), подключал микрофон через транзистор на АЦП (обнаруживать надо было не громкие хлопки, а присутствие кого либо живого) поэтому требовалась высокая чувствительность.
        через семистор обеспечает плавное включение-выключение.
        Получившийся алгоритм реализации анализа шумов напоминает хвост крокодила (см. фильм «Страх и ненависть в лас-вегасе»), такой же беспощадный!

  7. Вот все классно) DI.. А можешь все таки добраться как нибудь до
    «Плавного управления» нагрузкой переменного тока в 220В? :)) Пожалуйста)

    1. А там ведь просто всё:
      Нужно питать нагрузку импульсами.
      Включаем в момент пересечения нуля, а выключаем через Х.
      Если Х = длительности полупериода, то считай, что нагрузка включена на 100%.
      С уменьшением Х, уменьшается и мощность.
      При частоте 50 Hz, полупериод будет 10мс. Вообще, его лучше замерить один раз (время от одного пересечения нуля, до второго), а то 50 герц, это только номинал :)

      Это программная часть, а схему DI выкидывал в комменты к статье про симистор.

      1. Да, но разве симистор закроется сразу, как снимем питание на управляющем электроде? Вроде же он будет ждать окончания полупериода, и только потом выключится.. :/

        1. А… эээ… точно! Ты прав. Тогда делаем так:
          Ловим начало полупериода
          1)Ждём Х.
          2)Открываем симистор.
          3)Держим открытым до конца… потом закрываем.

          Наверное можно, для открывания подать короткий импульс, а он сам потом закроется. Но это лишь моё ИМХО, т.к. плавную регулировку я сам не делал.

          Получается инверсия. Рано открыли — много светит, поздно открыли — мало светит.

          Если есть опторазвязка, то нельзя ставить МОС3041, ибо она открывается только при пересечении нуля. Подойдёт МОС3051, МОС3023 и т.п.

          1. Спасибо большое :) Наверное так и буду делать… Единственное что меня волнует.. Отложилось у меня в голове почему то.. Что если открывать симистор на 50% (например) — т.е. не на возрастающем напряжении, а на пике — то можно быстрее «поломать» лампочку :/ Типа перегорать будут.. Это так, или тут без разницы как и когда?)

            1. Спасибо большое :) Наверное так и буду делать… Единственное что меня волнует.. Отложилось у меня в голове почему то.. Что если открывать симистор на 50% (например) — т.е. не на возрастающем напряжении, а на пике — то можно быстрее «поломать» лампочку :/ Типа перегорать будут.. Это так, или тут без разницы как и когда?)

              P.S. А еще — можно поподробнее про «ловим начало полупериода»? :) Не знаю как лучше это сделать :/ Можете тыкнуть носом куда смотреть? Просто читал про делители на резисторах и т.д… боязно мне что то заводить 220 пусть даже через делитель напрямую на МК без развязки.. :/

            2. Лампочке пофиг. Устройства плавного включения им наоборот жизнь продлевают, а кроме как через симистор это сделать разумных способов нет. Лампочка дохнет от слишком больших токов (например, при включении в холодном состоянии, когда у неё сопротивление меньше, чем у нагретой).

              Лампы дневного света дохнут иногда, да :) Но это совсем другая история, для них этот метод регулирования вообще не подходит.

              Тут есть ещё один момент, правда. У меня паяльник (обычный, не то 25, не то 35 ватт) работает как раз через такой регулятор (древний, собранный не мной). Так вот он отчётливо гудит, если к нему ухо поднести. Это как раз когда включение идёт где-то около пика. И помех при этом выдаёт, наверняка, мама не горюй. Нормальные люди там фильтр ставят, чтобы включение было не таким резким, поищи в сети — схем много.

              1. Вот про гудит я читал вроде уже… Гудят конденсаторы, да, из за большого тока. Советовали на форуме ставить Бумажно-??? (совсем я в этом ноль, уж извините.. Еще не начитался пока не напробывался..) Вроде того что они не гудят в итоге..

                1. Там как раз нет ни одного конденсатора внутри :)
                  Подозреваю, что гудит сам паяльник :)
                  В общем, затрудняюсь с ходу сформулировать, что же там в точности гудит, но уверен в одном — дело в слишком резком включении большого тока. Это вообще вещь очень неприятная — помех море, любая случайная индуктивность норовит или сама умереть, или убить что-нибудь поблизости…
                  Как раз от таких вещей и ставят фильтр (конденсатор), чтобы ток нарастал чуть медленнее.

                2. Нагреватель вроде паяльника можно вообще постоянным током питать. Т.е. выпрямляем, шимуем и подаем. Ему то пофиг, зато помех минимум.

                  1. Конечно проще. Можно ещё переменным, но включать сразу после нуля, а регулировать количеством полуволн. Этот регулятор старше меня, тогда всё это было несколько сложнее. Как раз думаю ему замену собрать, а его на заслуженный отдых.

                    1. Не, не то. ЧАстота там все равно низкая и если нагрузка мощная, то окружающие лампочки будут мерзко мерцать. У меня фен походу так управляется.

              2. UPD: Раскрутил, конденсатор там один таки есть, но, кажется, для других целей. Надо будет на досуге срисовать схему, разобраться.

  8. Полностью поддержтапю Дихалта. Всё он правильно говорит по поводу ориентации сайта и тем которые здесь освящаются. Почитайте как называется сайт, правильно «Электроника для всех», а не «изучаем AVR». А статья хорошая, спасибо автору

  9. не раскрыта тема имитатора хлопков

    в детстве, в библиотеке взял книжку, а в ней схемы акустических выключателей,
    собрал, работает, пока настраивал хлопал, да так, что синяки на ладонях появились
    пошёл к другу, (он также такое собирал) а у него тоже ладошки синие :)

    1. Ну сейчас не всё так страшно :)
      Записал один раз каманду через микрофон на комп, измерил паузы между хлопками, расставил длительности периодов…. ну и еще немного отладки, но не настолько :)))

  10. не хватает стабилитрона (или TVS) паралельно пьезоизлучателю.
    мало ли кто может по нему шелбаном стукнуть…

    1. Да, напруга там вылетает неслабая.
      НО! Во-первых ток там миллипуперный.
      Во-вторых часть заряда стекает через шунтирующий резистор.
      В-третьих в Тини13 стоят защитные диоды, которые стравливают излишки напряжения на шины питания.
      В-четвёртых — я по ней щелкал — и оно продолжает работать :)

    1. 4.8 МГц. По-хорошему нужно заиметь МикроПаскаль, чтобы можно было прошивку корректировать (Ну там длительность периодов изменить или ещё что.)

  11. Отличная статья!!!
    Хотелось бы по подробнее узнать как правильно подключать микрофоны и пьезоизлучатели.

  12. Господа, а что у меня от хлопка компаратор частенько 2 раза срабатывает? :) соответственно, второй импульс приходится на «время тишины» и state сбрасывается

    1. Можешь попробовать уменьшить чувствительность. Если не помогло — открывай код, там в самом начале идут константы (которые без буковок H и L), это длительности периодов. Их можно скорректировать. Потом скомпилить и залить в проц. Для этого найди МикроПаскаль.

      Прошивка настроена срабатывание от 3х хлопков. Если хочешь, чтобы работала от 2х — меняй константу State_SignalAccepted на 2.

      1. Чтобы эхо от хлопка попало в Q-период нужно довольно большое помещение. Иначе оно просто наложится на импульсы от самого хлопка.

        И это помещение должно обладать необычными акустическими свойствами. Иначе отражённый звук будет слишком слабым.

        При тестировании устройства с пьезодинамиком, эха не наблюдалось нигде: ни в помещении, ни на улице. С микрофоном похожая картинка, хотя он более чувствителен.

        1. А какая длительность Q-периода?
          Я сам лично достаточно серьезно изучал эхо — скажем, обычная бетонная стена очень неплохо отражает звук (и можно хорошо сыграть на резонансах), а всякие разные одеяла и ковры — злейшие враги электроники (статика и пыль), действительно отлично звук гасят.
          Потом, может быть вторичный резонанс, например в стеклянной посуде — тоже получится очень искаженное, но по сути эхо.

            1. Да, сейчас прикинул на пальцах — действительно, врядли без резонансного контура может случиться больше десятка отражений от стен.

              Но стеклянный столик, зеркало, стекло в двери, вполне могут резонировать.
              Я даже видел резонанс плохо закрепленной, точнее свободно болтающейся в двери вместо стекла фанеры — когда дверью сильно хлопали, она дребезжала очень долго и очень противно.

              Кстати, надо будет попробовать поэкспериментировать с бабушкиным сервантом и с компом в качестве генератора — интересно, какая получается резонансная частота и добротность хрустального бокала, стоящего на стеклянной полке — я в детстве визгом вызывал резонансный звон, и он затухал, ИМХО, чуть ли не секунду ;D

    1. CKSEL0 — галочка;
      CKSEL1 — не галочка :)
      И ещё CKDIV8 — не галочка, а то будет у тебя в восемь раз меньще частота.

  13. Чем заменить MOC3041M? В интернет-магазине, где отовариваюсь, этой детали нету :)
    Зато есть MOC3042,MOC3052,MOC3063,MOC3083…

    1. MOC3042 полный аналог.

      MOC3052 не имеют датчика пересечения нуля. Ими можно организовать регулировку яркости. (об этом где-то выше в комментах писали)

      1. Большое спасибо за помощь!Еще один вопрос, какой тиристор поставить на U4?
        Наверное его надо брать из расчета какая нагрузка будет?

        1. Да. Если габариты схемы не критичны, то можно поставить BT136 или BT139. У первого ток до 4А, у второго до 16А. Если будут сильно греться можно прикрутить радиатор (корпус ТО-220).

          Когда нужно сделать пипец мелкую схему я ставлю BT131 (корпус ТО-92), но у него ток всего 1А и на него проблематично приколхозить радиатор. (Плату с BT131 можно посмотреть в моей второй статье)

  14. Пожалуйста помогите кто-нибудь, соображаю в железе, но с программированием пока проблеммы. Понимаю что покажусь тупым, но все же :). Начал изучать немного язык СИ, но вы тут то на АСМЕ, то какой то Микропаскаль. Пробовал в АВР Студию вставить прошивку (файл с расширением ASM)все строки бракует как Error. Что не так? Пожалуйста подскажите, я только начинаю изучать контроллеры, заранее благодарен.

    1. Потому что надо изучать не Си, АСМ или микропаскаль, а контроллер. Тогда совершенно без разницы на каком языке будет написан код. Будет понятен общий принцип работы алгоритма и переписать его на любой язык будет делом не хитрым.

  15. Ну вот этот кусок он на чем написан я так и не понял расширение вроде АСМ:

    acoustix_2shots_TIMER0_OVERFLOW:
    PUSH 30
    PUSH 31
    PUSH 27
    IN 27, 95
    PUSH 27
    ;acoustix_2shots.mpas,53 :: begin
    ;acoustix_2shots.mpas,54 :: TCCR0B := 3; //Таймер переполнился, а значит, его нужно опять запустить.
    LDI 27, 3
    OUT 83, 27
    ;acoustix_2shots.mpas,58 ::

    Или его блокнотом нельзя открывать, ваще не втыкаю. У меня ощущение что все чего-то недоговаривают))). И спасибо за ответ.

    1. Там всё написано на МикроПаскале с кучей ассемблерных вставок.
      Вставлять asm файлы, которые генерит компилятор, в студию бессмыслено. Там много чего опущено.
      Вообще в коде куча комментариев, так-что можно разобраться даже не зная паскаля.

    1. В принципе можно и на свист. Но там будет другой принцип работы. И придётся однозначно ставить микрофон.

      У меня девайс прекрасно реагирует на вибрации — можно постучать по полочке, на которой он закреплён, и свет всключится.

    1. Я использовал фотодиод ФД265А в металлическом корпусе. Включал его в фотогальваническом режиме. Напряжение на фотодиоде изменялось от 10 до 200мВ (вот тут могу соврать, ибо точно не помню).

      Катод фотодиода подключался ко входу аналогового компаратора. Ко второму входу — потенциометр. У меня стоял многооборотный, но можно взять и обычный, подключив так, как я описал в статье.

      Направлять светодиод надо в сторону от источников света. У меня он был направлен в потолок.

  16. Подскажите, пожалуйста, может ли пьезоизлучатель быть бракованным (сломанным) и как бы это проверить?

    Собрал схему из статьи — на хлопки не реагирует. Проверка показала, что проблема именно в пьезо. Вся остальная цепь работает на отлично.

    Построил с этим пьезоизлучателем на arduino такую простую схему
    http://www.arduino.cc/en/Tutorial/Tone
    Звук не громче дешевых китайских часов (кто помнит, в 90ые годы были популярны часы Montana — такого же уровня сигнал).
    По datasheet-у, громкость должна быть 75дБ, что, насколько я понимаю, много больше.

    1. У меня вообще ничего не работает :) Поставил ЗП-5…сегодня постараюсь наладить,это уже третья плата детектора))

  17. Интересная цацка, но я бы у себя дома, да и негде бы еще не ставил. Какой то дятел петарду ночью взорвет, а у меня по всему дому свет в 3 ночи включится )))

    На регулирующем входе компаратора я бы вставил детектор (по подобию тех что используются в радио приемниках) а не простой делитель. Так хоть от фона как то можно защитить.

  18. Вопрос не совсем по теме, но связанный. ПРодаются ли мелкие пьезодинамики, типа того, что на картинке? Если нет, то откуда их в случае чего выдрать в количестве хотя бы десятка? Спасибо заранее.

  19. Что-то чувствительности совсем никакой. Пробовал с двумя разными пьезодинамиками — срабатывает только при щелчке по корпусу. Поигрался с номиналами резисторов — толку тоже нет :(

  20. Хочется внести свой вклад в тему уместности применения микроконтроллера.
    Алгоритм работы железяки такой:
    1. Слушаем громкий звук
    2. Если звук есть включить электромотор на 15 сек
    3. Если звук есть а мотор уже включен сбросить счётчик времени.

    Железяка выпускается серийно в китае. В качестве датчика звука стоит микрофон. Логика работы реализована на микроконтроллере.

    При помощи этого устройства реализована шароподача в страйкбольных пулемётах м249 и тп.
    Так что вот.

  21. Dcoder подскажи пожалуйста необходимо ли выставлять фьюзы или нет? У меня схемка не фурычит.

      1. Какой проект? Это не проект, а пример. Он на него забил сразу же как только получил работающий результат. С тех пор задача не интересна.

        1. Это понятно, что ему не интересно. Но, молодежи его детище все еще интересно. До сих пор вопросы задают. С моей точки зрения это как бы безответственно. Он мог бы, например, взять пример с тебя, ведь ты, как я посмотрел, на все вопросы стараешься ответить, независимо от срока давность своего проекта, ой… извини, ПРИМЕРА.

  22. А-а-а ничего не работает. Собрал на монтажке, прошил тиньку, стучу по пъезику на осцилографе на выходе пъезика вижу сигнал, светодиоды не мигают, всё пропало.
    Через сопротивление на вход МК подавал импульсы всё равно тишина. Как проверить прошивку в МК, если как-то программно то пожалуйста подробней. Хочу светильником вмонтированным в кровать управлять, до выключателя вставать надо через спящую жену, сами понимаете….

  23. Предложенная печатка не соответствует схеме, где правда в соответствии с прошивкой?
    Что такое тестовая прошивка, её предназначение?

Добавить комментарий

Ваш e-mail не будет опубликован.

Перед отправкой формы:
Human test by Not Captcha