Помогите сделать измеритель пульсации

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


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

Почему-то китайцы дешёвых пульсметров не делают, на Aliexpress их нет. В России делают ТКА-ПКМ 09 за 36000 рублей, еЛайт02 за 28900 и Люпин за 7000 рублей. Люпин у меня есть, но он не очень удобен тем, что на результаты его измерений влияют электромагнитные помехи.

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

Есть две формулы расчёта коэффициента пульсации — простая и сложная. Вот простая формула (так считает пульсацию Uprtek MK350D).

Вот сложная (так считает Люпин).

Максимальный коэффициент пульсации по простой формуле составляет 100% (при такой пулсьсации источник света полностью гаснет 100 раз в секунду), по сложной формуле КП может быть больше 100%, если свет не только полностью гаснет, но время света меньше времени темноты.

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

Первая проблема: датчик света.

Удобнее всего использовать с Arduino цифровые датчики, вроде TLS2561 или BH1750, но для измерения пульсации они не годятся, так как слишком медленные. Эти датчики способны в лучшем случае делать 10 измерений в секунду, а нам нужно делать их хотя бы 400, а лучше 3000 (чтобы получать красивый график).

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

Я попробовал использовать датчик TSL257-LF, но оказалось, что он слишком высокочувствитлельный — при освещённости 8 люкс он «зашкаливает» (удивительно, но в даташите про люксы не слово). Вот что-то показывает, только если прикрыть его рукой.

Я пробовал обматывать датчик толстым слоем белой изоленты, но это, конечно, несерьёзно.

Ещё у меня есть датчики OSRAM SFH5711-2/3, у которых в даташите указан диапазон 3-80000 люкс, но они передают освещенность изменяющимся током на выходе (5-50 мкА) при напряжении 0.5 В и я не знаю, как такое сопрячь с Arduino, к тому же они оказались малюсенькие — я к ним вряд ли смогу припаять провода.

Думаю, надо попробовать датчик на фототранзисторе TEMT6000 (вот он на Али).

Дёшево и сердито, правда диапазон только 10-1000 люкс (1000 лк это приблизительно 40 см от лампы 1000 лм), но ничего — можно и светофильтр сделать, чтобы снизить чувствительность.

Вторая проблема: программирование. Я могу делать какие-то простые вещи на Arduino и наверное даже смогу считывать данные в массив, а потом выводить график на TFT-экран, но для правильного расчета КП нужно фильтровать и усреднять уровни минимума и максимума и с этим я уже точно не справлюсь.

Я себе представляю измеритель пульсации так:

Железки: Arduino, дешёвый TFT-экран 1.44″, аналоговый датчик света. Надеюсь, удастся обойтись без внешнего АЦП.

Программа:
— по нажатию кнопки запоминаем уровень темноты (фактически, уровень окружающей засветки);
— захватываем в буфер 160 значений яркости за ~0.05 секунды (~2.5 периода сети 50 Гц, одно измерение раз в 0.3 мс);
— выводим два периода в виде графика в нижнюю часть экрана (128 точек в ширину);
— считаем коэффициент пульсации по двум формулам, выводим два значения на экран.

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

© 2021, Алексей Надёжин


Десять лет я каждый день пишу о технике, скидках, интересных местах и событиях. Читайте мой блог на сайте ammo1.ru, в ЖЖ, Дзен, МирТесен, Telegram.
Мои проекты:
Lamptest.ru. Тестирую светодиодные лампы и помогаю разобраться, какие из них хорошие, а какие не очень.
Elerus.ru. Собираю информацию об отечественных электронных устройствах для личного использования и делюсь ей.
Вы можете связаться со мной в Телеграм @ammo1 и по почте ammo1@mail.ru.

Этот пост в моём блоге LiveJournal: Помогите сделать измеритель пульсации

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