Проблема с пьезодатчиком

Random
Offline
Зарегистрирован: 23.12.2016

andriano пишет:

Random пишет:
...тут есть человек, который ... любит глумиться, но при этом к нему должны обращаться вежливо...

1. Есть такой человек. Только он до этой темы, на Ваше счастье, еще не добрался.

2. Правила хорошего тона рекомендуют, зарегистрировавшись на новом форуме, прежде, чем начинать на него писать, 2-3 дня почитать его. Чтобы знать:

- как принято общаться на форуме,

- кто есть кто,

- чего категорически не следует делать на данном форуме.

Вы пренебрегли правилами хорошего тона и получили ожидаемый результат.

Этот человек в этой теме, я никого не оскорблял и вел себя с теми так, как они вели себя со мной.

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

Кстати, а я один вижу, что пьезик так включать нельзя?  На кол сажать нужно того, кто придумал так подключать. Вот картинко для наглядности. Взял стандартную ЗП-шку, зашунтировал мегаомом как на схеме, и счёлкнул по ней ногтем. Если счёлкнуть по обратной стороне, то такой же ипульс будет в отрицательную область.

У них нет плюса и минуса, 56 вольт переменки, Карл!

gena
Offline
Зарегистрирован: 04.11.2012

   Интересно, я дождусь результата по своему совету (или ардуина скорее грахнетца)?

Клапауций 234
Offline
Зарегистрирован: 24.10.2016

gena пишет:

   Интересно, я дождусь результата по своему совету (или ардуина скорее грахнетца)?

какому совету?

Random
Offline
Зарегистрирован: 23.12.2016

dimax пишет:

Кстати, а я один вижу, что пьезик так включать нельзя?  На кол сажать нужно того, кто придумал так подключать. Вот картинко для наглядности. Взял стандартную ЗП-шку, зашунтировал мегаомом как на схеме, и счёлкнул по ней ногтем. Если счёлкнуть по обратной стороне, то такой же ипульс будет в отрицательную область.

У них нет плюса и минуса, 56 вольт переменки, Карл!

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

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Random пишет:

с осциллографом, конечно, беда - нет его) а с millis() надо попробовать

Чтобы устранить проблему, нужно сначала выяснить ее причину. Без осциллографа это сделать вряд ли получится. Значит, нужен осциллограф. Вариантов не так уж мало:

1. Купить.

2. Одолжить.

3. Взять на прокат.

Но пытаться настроить радиоэлектронное устройство без осциллографа - пустая трата времени.

В конце концов, подключите пьезодатчик к линейному входу компьютера и запишите звук, а потом просмотрите его чем-то вроде Саундфоржа.

diakin
diakin аватар
Offline
Зарегистрирован: 04.06.2016

Поэтому и надо ставить стабилитрон (диод Зенера) параллельно пьезе (лучше через резистор 1кОм к примеру), чтобы обрезать минус на уровне -0.7, плюс на уровне 3.3 В. То есть стабилитрон надо брать на 3.3 В

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Random, чего Вы хотите добиться? Сделать MIDI-контроллер ударной установки?

Клапауций 234
Offline
Зарегистрирован: 24.10.2016

andriano пишет:

Random, чего Вы хотите добиться? Сделать MIDI-контроллер ударной установки?

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

Клапауций 234
Offline
Зарегистрирован: 24.10.2016

arduino_midi_schematic-png.1514

Клапауций 234
Offline
Зарегистрирован: 24.10.2016

projects_Collin's_Lab_-_MIDI-13.jpeg?140

ВН
Offline
Зарегистрирован: 25.02.2016

В общем нада ... куда бьет и как сильно бьет.

Куда - понятно, как сильно - зависит от исполнения датчика в целом.

Вариант решения, аналогово цифровать что там идет на вход и выводить в порт, т.е. можно пытаться это сделать без осцила.

С осцилом, безусловно, дело куда лучше  и быстрее пойдет.

Random
Offline
Зарегистрирован: 23.12.2016

andriano пишет:

Random, чего Вы хотите добиться? Сделать MIDI-контроллер ударной установки?


Что-то типо того

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Random пишет:
andriano пишет:

Random, чего Вы хотите добиться? Сделать MIDI-контроллер ударной установки?

Что-то типо того

Ну тогда возникает вопрос: зачем?

- Что именно не устраивает в существующих контроллерах?

- Какие у Вас есть мысли, как преодолеть выявленные несовершенства?

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

dimax пишет:

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

Ну это все из-за ложного представления об экономности.

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

Random
Offline
Зарегистрирован: 23.12.2016

andriano пишет:

Random пишет:
andriano пишет:

Random, чего Вы хотите добиться? Сделать MIDI-контроллер ударной установки?

Что-то типо того

Ну тогда возникает вопрос: зачем?

- Что именно не устраивает в существующих контроллерах?

- Какие у Вас есть мысли, как преодолеть выявленные несовершенства?

Затем, что весь вопрос упирается в финансовую составляющую. Посмотрите сколько стоит готовый модуль и Вы все поймете сами. А еще не факт, что купленный модуль булет работать, как нужно.

Выход из ситуации - самопальство.

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

Random пишет:
Затем, что весь вопрос упирается в финансовую составляющую. Посмотрите сколько стоит готовый модуль и Вы все поймете сами. А еще не факт, что купленный модуль булет работать, как нужно.
Выход из ситуации - самопальство.

Но за то есть факт, что самопал уже не работает, как надо. И не факт, что заработает, как надо. Ведь исполнитель дилетант , да и без осцилографа. 

diakin
diakin аватар
Offline
Зарегистрирован: 04.06.2016

Поставьте диод зенера, чтобы не спалить ардуину, и попробуйте уменьшать резистор 1Мом, чтобы ослабить влияние помех.

Random
Offline
Зарегистрирован: 23.12.2016

qwone пишет:

Random пишет:
Затем, что весь вопрос упирается в финансовую составляющую. Посмотрите сколько стоит готовый модуль и Вы все поймете сами. А еще не факт, что купленный модуль булет работать, как нужно.
Выход из ситуации - самопальство.

Но за то есть факт, что самопал уже не работает, как надо. И не факт, что заработает, как надо. Ведь исполнитель дилетант , да и без осцилографа. 


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

Random
Offline
Зарегистрирован: 23.12.2016

diakin пишет:

Поставьте диод зенера, чтобы не спалить ардуину, и попробуйте уменьшать резистор 1Мом, чтобы ослабить влияние помех.


Хорого, попробую

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

Проснулся утром и гляжу, что цирк с конем продолжается.

1.ТС (Топик Стартер, тот кто открыл ветку)! А Вы переделали скетч так, как я указал? Ну штоп дальше двигаться, окромя демагогии.

2. ТС! Вот Вы ноете в стиле "Нiхто мене не любить нiхто не поважае", а я, интереса ради, в гугле набрал "arduino drum controller".

Чудо! Мне сразу упало много ссылок: Вот проект и вот. В каждой видео и по шагам, на уровне детсада раздожено именно то, что Вы делаете. С теми же пьезами и внешним миди устройством.  Посмотрел оба проекта. Проекты с ошибками, но работают, а что еще надо?

Посмотире видео от второго проекта. Там парень каждую мелочь проговаривает. И первый проект, с дисками от CD тоже забавный!

Там то, что непонятно, извините?

---------------

да! и тут, на этом форуме, если набрать "arduino drum" в поиске, есть несколько тем от прошлых лет.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

wdrakula пишет:

да! и тут, на этом форуме, если набрать "arduino drum" в поиске, есть несколько тем от прошлых лет.

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

Ви, що ще не зрозуміли цього, чи що?

Random
Offline
Зарегистрирован: 23.12.2016

wdrakula пишет:

Проснулся утром и гляжу, что цирк с конем продолжается.

1.ТС (Топик Стартер, тот кто открыл ветку)! А Вы переделали скетч так, как я указал? Ну штоп дальше двигаться, окромя демагогии.

2. ТС! Вот Вы ноете в стиле "Нiхто мене не любить нiхто не поважае", а я, интереса ради, в гугле набрал "arduino drum controller".

Чудо! Мне сразу упало много ссылок: Вот проект и вот. В каждой видео и по шагам, на уровне детсада раздожено именно то, что Вы делаете. С теми же пьезами и внешним миди устройством.  Посмотрел оба проекта. Проекты с ошибками, но работают, а что еще надо?

Посмотире видео от второго проекта. Там парень каждую мелочь проговаривает. И первый проект, с дисками от CD тоже забавный!

Там то, что непонятно, извините?

---------------

да! и тут, на этом форуме, если набрать "arduino drum" в поиске, есть несколько тем от прошлых лет.


Я видел эти видосы, не совсем то, что мне нужно. Там физический миди-разъем, а у меня он программный. Да и проблема в том, что я не понимаю из-за чего датчик так себя ведет, как написано в моем первом посте. Вот кто-то подсказал, попробовать со стабилитроном и попробовать менять сопротивления, кто-то написал, что в скетче поковыряться еще нужно.

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

Random пишет:

Я видел эти видосы, не совсем то, что мне нужно. Там физический миди-разъем, а у меня он программный. Да и проблема в том, что я не понимаю из-за чего датчик так себя ведет, как написано в моем первом посте. Вот кто-то подсказал, попробовать со стабилитроном и попробовать менять сопротивления, кто-то написал, что в скетче поковыряться еще нужно.

Физический или програмный - имеет значение? Кроме кода посылки/останова ноты - все одинаково.

Из-за чего датчик так себя ведет - я написал. Вы, кроме обидок, ничего не вынесли для себя из того, что я вчера написал?

Вот картинка:

Вот ссылка на весь документ в сети, там много ерунды, но много и полезного.

=============================

Я поэтому и спросил, переделали ли Вы код, как я указал вчера? ПЕРЕДЕЛАЙТЕ! В коде проблема, не в стабилитроне.

Тут Андриано - ОЧЕНЬ сильный спец по МИДИ. Смотрите, что он написал: если "по большому", то там фильтр нужен и много чего еще. Не заморачивайтесь на начальном этапе. Повторите хоть что-то из тех иностранных проектов.

Свой стабилитрон ... эх! не могу материться, пока трезвый! .... Припаяйте, если хотите. Он ничему не помешает.

Он нужен только чтобы вход не погорел. В обоих проектах его нет и все работает. Многое от пьезы зависит.

Сделайте что-то рабочее, потом стабилитронами украшить станете и молодежь учить.

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Random][quote=andriano пишет:

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

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

Т.е. сэкономить Вы можете исключительно за счет качества. Без вариантов.

 

Скажу еще одну вещь.

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

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

Вот так и DIY - не для того, чтобы получить вещь, а для того, чтобы с удовольствием потратить время.

Но для того, чтобы работать в удовольствие, нужно обладать некоторой квалификацией. Без нее Вы удовольствие не получите.

 

И еще один важный момент: бывают случаи, когда нечто изготовленное по методу DIY оказывается существенно либо лучше, либо дешевле промышленного без ущерба качеству. НО! Это, как говорится, один проект на тысячу. И чтобы выделить именно этот проект из тысячи возможных, тоже нужна квалификация.

 

Есть и еще один вариант применения DIY - сделать то, что купить невозможно. По причине полного отсутствия. Либо нужна вещь с очень специфическими свойствами, которая, вероятно, никому кроме Вас никогда не понадобится, а поэтому такие и не выпускают. Либо такой "гаражный проект" реально сопряжен с целой кучей изобретений, и в перспективе может рассматриваться и как основа для вполне успешного инновационного бызнеса. Такое тоже встречается.

 

Но всех, кто думает, что DIY поможет им сэкономить деньги, ждет в конеце разочарование.

Random
Offline
Зарегистрирован: 23.12.2016

andriano] </p> <p>[quote=Random пишет:
andriano пишет:

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

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

Т.е. сэкономить Вы можете исключительно за счет качества. Без вариантов.

 

Скажу еще одну вещь.

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

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

Вот так и DIY - не для того, чтобы получить вещь, а для того, чтобы с удовольствием потратить время.

Но для того, чтобы работать в удовольствие, нужно обладать некоторой квалификацией. Без нее Вы удовольствие не получите.

 

И еще один важный момент: бывают случаи, когда нечто изготовленное по методу DIY оказывается существенно либо лучше, либо дешевле промышленного без ущерба качеству. НО! Это, как говорится, один проект на тысячу. И чтобы выделить именно этот проект из тысячи возможных, тоже нужна квалификация.

 

Есть и еще один вариант применения DIY - сделать то, что купить невозможно. По причине полного отсутствия. Либо нужна вещь с очень специфическими свойствами, которая, вероятно, никому кроме Вас никогда не понадобится, а поэтому такие и не выпускают. Либо такой "гаражный проект" реально сопряжен с целой кучей изобретений, и в перспективе может рассматриваться и как основа для вполне успешного инновационного бызнеса. Такое тоже встречается.

 

Но всех, кто думает, что DIY поможет им сэкономить деньги, ждет в конеце разочарование.


Не думаю, что моя самопальная затея выйдет дороже 30-40к

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Random][quote=andriano пишет:

Не думаю, что моя самопальная затея выйдет дороже 30-40к

Она может "уместиться" и в 1к.

Вопрос в том, будет ли Вас устраивать результат.

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

wdrakula пишет:

Вот ссылка на весь документ в сети, там много ерунды, но много и полезного.

Да уж...

Цитирую:

Цитата:

Если Вы хотите собрать такую схему на практике, Вы, возможно, захотите добавить дополнительный
защитный диод, под названием “диод Зенера” (стабилитрон).
Он невидим до тех пор, пока напряжение не превысит его номинальный порог (например, 5 вольт,
как в нашем случае), тогда он разрывает цепь.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

А еще диод шотки паралельно, отрицательное даже 0,7 вольта многовато, есть новые типы диодов для схем блоков питания работающих в параллель, структура сходна с Шотки, у них прямое еще меньше, раз в шесть, от Шотки

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

andriano, ну этот треш возможно следствие бездарного перевода. Но очевидно что и автор не сильно подкован в области электроник :)

Картинка с затухающей синусоидой в статье очевидно снята с готового пьезо-барабана, т.к. голый датчик затухающих повторных колебаний не даёт.

Клапауций 234
Offline
Зарегистрирован: 24.10.2016

dimax пишет:

Картинка с затухающей синусоидой в статье очевидно снята с готового пьезо-барабана, т.к. голый датчик затухающих повторных колебаний не даёт.

dimax, а попробуй приклеить пьезо на металлическую пластину - будет оно звенеть?

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

Клапауций 234, нужно что-то с резонирующими свойствами. Приклеил к гитаре, струны заглушил. Ударил по корпусу (не по пьезику, а рядом). Как видно около 2х вольт ушло в минус, и около 5 в плюсе. Число выбросов и их амплитуда зависит от силы удара конечно, я выбрал средне-статическую картинку из нескольких ударов.

Клапауций 234
Offline
Зарегистрирован: 24.10.2016

dimax пишет:

Клапауций 234, нужно что-то с резонирующими свойствами. Приклеил к гитаре, струны заглушил. Ударил по корпусу (не по пьезику, а рядом). Как видно около 2х вольт ушло в минус, и около 5 в плюсе. Число выбросов и их амплитуда зависит от силы удара конечно, я выбрал средне-статическую картинку из нескольких ударов.

красота - теперь подключить халабуду через керамику 1 мкф, что бы поднять над +0V

diakin
diakin аватар
Offline
Зарегистрирован: 04.06.2016

dimax пишет:

...нужно что-то с резонирующими свойствами. ...

А разве сам звук не формируется искусственно, из сэмплов там или еше как. От пьезы разве не нужен только сигнал о начале воспроизведения? Ну там можно еще громкость вытащить от силы удара, если нужно конечно.

Клапауций 234
Offline
Зарегистрирован: 24.10.2016

diakin пишет:

А разве сам звук не формируется искусственно, из сэмплов там или еше как. От пьезы разве не нужен только сигнал о начале воспроизведения? Ну там можно еще громкость вытащить от силы удара, если нужно конечно.

я выше говорил, что тогда ТС нужна тактовая кнопка - нафик городить огород с пьезо?

diakin
diakin аватар
Offline
Зарегистрирован: 04.06.2016

По кнопке неудобно палкой бить 64.png

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

diakin пишет:

А разве сам звук не формируется искусственно, из сэмплов там или еше как. От пьезы разве не нужен только сигнал о начале воспроизведения? Ну там можно еще громкость вытащить от силы удара, если нужно конечно.

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

Stas48x
Offline
Зарегистрирован: 07.11.2017

Есть тут еще кто живой? Собрана установка? А то я тоже собираю. Но у меня код посложнее и датчики по другому подключал - резистор 1 Мом параллельно с датчиком, плюс резистор 510 кОм - последовательно на датчик, иначе без него звук заикался при сильных ударах. Стабилитрон еще не пробовал.

Random
Offline
Зарегистрирован: 23.12.2016

Здравствуйте! Мне один человек хорошо помог с кодом

в электронике оказалось все проще: к датчику параллельно втыкаем резистор 1МОм и этого достаточно. Если делаете самодельный пэд, то советую отнестись более серьезно к этому вопросу. Я сначала думал "фигня, главное код...", а в итоге оказалось что датчик очень чувствительная и капризная штука и при ударе, как писалось выше выдает "серию затухающих колебаний" поэтому нужно при изготовлении пэда делать конструкцию, которая максимально быстро возвращает пьезо в исходное положение.

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

/*

  MIDI ударная установка
 
  sslobodyan@ya.ru 2017
 
*/

#define LED 13

#define PIEZ_CNT 1 // количество датчиков
#define DRUM_CHANNEL 9

#define ANOTHER_MUTE_PIN
//#define SHOW

// пороговый уровень датчика
int kick_treshold[PIEZ_CNT]={15};

// время на остановку колебаний
long kick_mute_time[PIEZ_CNT]={60000};

// ноты на каналах
byte kick_note[PIEZ_CNT]={38};

// канал молчит
bool mute[PIEZ_CNT]={1};

// ножка датчика
const uint8_t kick_pin[PIEZ_CNT]={A0};

#ifdef ANOTHER_MUTE_PIN
  const uint8_t stop_pin[PIEZ_CNT]={A0};
#endif

int kick_val[PIEZ_CNT]; // предыдущее значение датчика
int velocity;

//int foto_val = 0;
//int foto_pin = A15;
int flag = 0;

uint32_t tm[PIEZ_CNT], tm_led;
byte cnt=0, piez_idx=0;

void noteOn(int chan, int note, int velocity) {
    Serial.write( (0x90 | chan) );
    Serial.write(note);
    Serial.write(velocity);
}

void noteOff(int chan, int note, int velocity) {
    Serial.write( (0x80 | chan) );
    Serial.write(note);
    Serial.write(velocity);
}

void channelVolume(int chan, int velocity) {
    Serial.write( (0xb0 | chan) );
    Serial.write( 0x07 );
    Serial.write(velocity);
}

void channelPan(int chan, int pan) {
    Serial.write( (0xb0 | chan) );
    Serial.write( 0x0a );
    Serial.write(pan);
}

void channelBank(int chan, int dat) {
    Serial.write( (0xB0 | chan) );
    Serial.write( 0x00 );
    Serial.write( dat );
}

void channelInstrum(int chan, int dat) {
    Serial.write( (0xC0 | chan) );
    Serial.write( dat );
}

void setup() {
  //Serial.begin(115200); // эмулятор МИДИ на компе
  Serial.begin(115200); // реальный МИДИ
 
//  pinMode(foto_pin, INPUT);
  pinMode(LED, OUTPUT);
  digitalWrite(LED, LOW);
  for (byte i=0; i<PIEZ_CNT; i++) {
    digitalWrite(kick_pin[i], LOW);
    pinMode(kick_pin[i], INPUT);
#ifdef ANOTHER_MUTE_PIN   
    digitalWrite(stop_pin[i], LOW);
    pinMode(stop_pin[i], INPUT);   
#endif   
  }
 
  channelBank(1, 0);
  channelInstrum(1, DRUM_CHANNEL);
  channelVolume(1, 70);

  // делитель 16 - частота опроса 1МГц разрешение 8 бит
  ADCSRA |= (1 << ADPS2);                     //Биту ADPS2 присваиваем единицу
  ADCSRA &= ~ ((1 << ADPS1) | (1 << ADPS0));  //Битам ADPS1 и ADPS0 присваиваем нули
}




void loop(){

  
    if(piez_idx>0) piez_idx--; else piez_idx=PIEZ_CNT-1; // выбор следующего датчика
 
    int adc = analogRead(kick_pin[piez_idx]);  //начинаем чтение выводов датчиков А0-А15
    
   
    if (adc > kick_treshold[piez_idx]) {  //если напряжение на выводе превышает пороговое значение конкретного датчика
      if ( tm[piez_idx] == 0){          //если время датчика равно нулю
        tm[piez_idx] = micros() + 2000; //присваиваем времени значение от момента начала скетча + 0,002 секунды
        kick_val[piez_idx] = 0;          //сбрасываем значение датчика
        digitalWrite(LED, HIGH);        //включаем светодиод
        tm_led = millis()+10;            //присваиваем времени свечения диода значение от момента начала скетча + 10 мс
      }
    }

    if (tm_led > 0) {                  //если время диода больше нуля
      if (millis() > tm_led) {          //если время скетча больше времени диода
        tm_led = 0;                    //обнуляем время диода
        digitalWrite(LED, LOW);        //и гасим диод
      }
    }
       
    if ( tm[piez_idx] > 0 ) {               //если время датчика больше нуля
      if ( micros() > tm[piez_idx] ) {      //если время в мкс больше времени датчика
        if ( mute[piez_idx] ) {              //и если датчик молчит
          mute[piez_idx] = false;          //включаем датчик
          
          velocity = map(kick_val[piez_idx], kick_treshold[piez_idx], 850, 1, 127);    //и задаем громкость ноты
          if (velocity > 127) velocity = 127;      //но если громкость ноты превышает верхний предел, то присваиваем ей максимально возможную громкость
          
          
         //------------------
          
//    foto_val = analogRead(foto_pin);
//    if(foto_val >= 0 && foto_val <= 5 && flag == 0 && piez_idx == 2)
//    {
//      kick_note[2] = 49;
//    }
//    if(foto_val >= 6 && foto_val <= 15 && flag == 0 && piez_idx == 2)
//    {
//      kick_note[2] = 51;
//    }
//    if(foto_val >= 16 && foto_val <= 25 && flag == 0 && piez_idx == 2)
//    {
//      kick_note[2] = 52;
//    }
//    if(foto_val >= 26 && foto_val <= 40 && flag == 0 && piez_idx == 2)
//    {
//      kick_note[2] = 54;
//    }
//    if(foto_val >= 41 && foto_val <= 55 && flag == 0 && piez_idx == 2)
//    {
//      kick_note[2] = 55;
//    }
//    if(foto_val >= 56 && foto_val <= 60 && flag == 0 && piez_idx == 2)
//    {
//      kick_note[1] = 56;
//    }
//    if(foto_val >= 61 && foto_val <= 66 && flag == 0 && piez_idx == 2)
//    {
//      kick_note[2] = 57;
//    }
//    if(foto_val > 66 && flag == 0 && piez_idx == 2)
//    {
//      flag == 1;
//    }
          
          //------------------
          
          
          noteOn(DRUM_CHANNEL, kick_note[piez_idx], velocity); // играем ноту
          tm[piez_idx] += kick_mute_time[piez_idx];
          #ifdef ANOTHER_MUTE_PIN
            pinMode(stop_pin[piez_idx], OUTPUT); // разряжаем кондер   
          #else
            pinMode(kick_pin[piez_idx], OUTPUT); // разряжаем кондер   
          #endif
          #ifdef SHOW
            cnt++;
            velocity = kick_val[piez_idx];
            Serial.print("IDX="); Serial.print(piez_idx);
            Serial.print(" Vel="); Serial.print(velocity);
            Serial.print(" cnt="); Serial.println(cnt);
          #endif
        }
      }
      if ( kick_val[piez_idx] < adc ) {
        kick_val[piez_idx] = adc; // ищем максимум сигнала от датчика
      }
      if ( micros() >  tm[piez_idx] ) {
        // закончили сканирование одного удара
        tm[piez_idx] = 0;
        mute[piez_idx] = true;
        // отключаем разрядку кондера
        #ifdef ANOTHER_MUTE_PIN
          pinMode(stop_pin[piez_idx], INPUT);
        #else
          pinMode(kick_pin[piez_idx], INPUT);  
        #endif       
      }
    }
    

}

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