Adafruit_NeoPixel Потушить ленту, не портя массив
- Войдите на сайт для отправки комментариев
Добрый день All !
Есть проблемка. Во время работы часиков нужно периодически измерить освещенность помещения
Но лента светит на датчик освещенности и с этим ничего поделать не удаётся.
ВОПРОС:
Как резко на миллисекундочку потушить ленту, а потом зажечь снова в том же виде как она была ?
На сколько я понимаю не влезая в код библиотеки нельзя заставить её прописать в ленту все нули.
Подскажите как это сделать.
Я бы с удовольствием подсунул либе указатель на обнулённый массив нужного размера, хотя очень жалко памяти под это дело. Но похоже что нельзя даже изменить её внутренний указатель на массив, в котором хранятся все цвета всех свеиков.
Как крайний вариант можно сохранить массив где-то в сторонке и обнулить рабочий массив, а потом после измерения вернуть всё назад, но хочется как-то покрасивее.
Вам по уму или как получится?
Если по уму, то никто не мешает написать функцию аналогичную функции отображения ленты из массива, но вместо содержимого массива использовать константу. Можно даже задавать константу снаружи - чтобы можно было не только погасить, но и, скажем, залить ленту белым (а то и вообще любым цветом радуги).
Не думаю, что сделать копию функции, изменив лишь источник данных, - сложная программистская задача.
Ну а если "как получится", то надо считать, осталась ли свободная память: одно дело лента в 100 светодиодов, и совсем другое - в 600.
Как резко на миллисекундочку потушить ленту, а потом зажечь снова в том же виде как она была ?
Можно подать в ленту нужное количество нулей и она погаснет, а затем заново загрузить в неё массив.
Как резко на миллисекундочку потушить ленту, а потом зажечь снова в том же виде как она была ?
А просто вырубить питание ленты релюхой или полевиком? Не?
Посмотрел библиотеку Adafruit_NeoPixel 1.1.8. Там есть функция fill(), которая может заполнять часть ленты (всю ленту) нужным цветом. Соответственно, с нулевым агрументом лента погаснет.
Функция заполняет ленту или буфер ? Скорее всего буфер.
Если по уму, то никто не мешает написать функцию аналогичную функции отображения ленты из массива,
Вроде так заработало
Прикольно, шаманство чистейшее 8) Еще немного и получится функция вывода в ленту без ассемблера.
Но это придумано не мной https://habr.com/ru/post/257057/
Обнаружена странная проблема. Гашу ленту, через 50мкс измеряю освещенность - результат как будто лента НЕ ПОГАШЕНА !
Даже чере 3 миллисекунды лента тухнет НЕ ПОЛНОСТЬЮ
Только через 6-10 м.сек можно нормально мерить освещенность.
Помеху по питанию я практически исключаю, поскольку опорным напряжением для моста с фоторезистором
и для АЦП = напряжение питания, соответственно результат от питания зависеть не должен.
https://electrosam.ru/glavnaja/slabotochnye-seti/oborudovanie/fotorezistory/ -> ^F Инертность.
https://electrosam.ru/glavnaja/slabotochnye-seti/oborudovanie/fotorezistory/ -> ^F Инертность.
Может быть подскажете, чем можно заменить эту "черепаху" ?
Полупроводниковым фотодатчиком.
Всем СПАСИБО !
Вот мои часики
https://youtu.be/m-ZY15XYFMU
правда фоторезистор для них же но в другом исполнении
Симпатичные, понравились. Только динамика, не слишком быстрая?
Симпатичные, понравились. Только динамика, не слишком быстрая?
А вообще они у меня и у родни уже почти год. Всем нравится.