FastLED и цифровые датчики звука

beerfect
Offline
Зарегистрирован: 17.02.2019

Не могу подружить библиотеку FastLED с цифровым датчиком звука.  

Проблема такая: датчик звука работает идеально, но стоит подключить библиотек FastLED (управление светодиодной лентой), как датчик начинает "тупить". 

На видео для сравнения прикрутил еще цифровой датчик касания.

https://www.youtube.com/watch?v=gO-eGE-ihwI&feature=youtu.be?

ВОПРОС:
1. Как мне их "подружить"?
2. Поможет ли замена цифрового датчика звука на анологовый?

PS: Не знаю программная или аппаратная это проблема, поэтому пишу здесь.
Заранее спасибо за помощь!!!!!

 

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

Что за датчик, конечно, секрет, что за софт для него - тоже, а потом и ответ будет "в общем".

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

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

leks
Offline
Зарегистрирован: 22.10.2017

Странно. Делал куб на ws2812b, с таким же датчиком (как в ролике) и библиотекой "адафруктнеопиксель". Датчик работает устойчиво - по хлопкам в ладоши переключает эффекты с 3-7 метров, почти без ошибок. Подстроечным резистором настраивают чуствительность - два светодиода без шума гореть не должны как у вас, второй моргает в момент звука.

Гриша
Offline
Зарегистрирован: 27.04.2014

leks пишет:

Странно. Делал .......  Датчик работает устойчиво ...

ответ уже дали:

ЕвгенийП пишет:

Что за датчик, конечно, секрет, что за софт для него - тоже, а потом и ответ будет "в общем".

может там delay через строчку...

я бы еще про питание вспомнил и блокировки помех по нему..

sadman41
Offline
Зарегистрирован: 19.10.2016

Проблема, похоже, комплексная; замена не поможет. Можно попытаться посадить его на ногу с внешним прерыванием.

beerfect
Offline
Зарегистрирован: 17.02.2019

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

sadman41
Offline
Зарегистрирован: 19.10.2016

Нет разницы - аналоговый, цифровой... Пока FastLED (и иные схожие библиотеки) пушит в шину данные - порт в loop() не опрашивается. На тач палец давит дольше, поэтому значение с сенсора успевает считываться. А с звукового сенсора приходит быстрый пик и он, в ряде случаев, не успевает быть считанным. Надо или затягивать время импульса или что-то другое придумывать.

Гриша
Offline
Зарегистрирован: 27.04.2014

sadman41 пишет:

Нет разницы - аналоговый, цифровой... Пока FastLED (и иные схожие библиотеки) пушит в шину данные - порт в loop() не опрашивается.

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

b707
Онлайн
Зарегистрирован: 26.05.2017

beerfect пишет:
Спасибо всем за участие. Попробую потестить с другой библиотекой и с аналоговым датчиком

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

Если хотите дальнейших советов - написшите модель датчика и показывайте код целиком

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

sadman41 пишет:
или что-то другое придумывать.
И я уже написал что именно. Выбросить библиотеку датчика и писать ручками, держа в уме, что рядом фастлед работает. Только вот ТС не верит.

sadman41
Offline
Зарегистрирован: 19.10.2016

ЕвгенийП пишет:

sadman41 пишет:
или что-то другое придумывать.
И я уже написал что именно. Выбросить библиотеку датчика и писать ручками, держа в уме, что рядом фастлед работает. Только вот ТС не верит.

Да нет там библиотеки. Есть адский луп без задержек и digitalRead(). Всё, как в #7 написато.

leks
Offline
Зарегистрирован: 22.10.2017

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