Регистрация импульса
- Войдите на сайт для отправки комментариев
Есть схема с ИК светодиодом и фототранзистром. Между ними пролетает капля и нужно этот момент как-то зарегистрироват на ардуино.
Проблема в том, что изначальный уровень освещения фототранзистра может от раза к разу отличаться, изменение интенсивности освещения при пролёте капли тоже может не совпадать.
На данный момент фототранзистор с последовательным сопротивлением 37кОм и подключенным выводом между ними на аналоговый вход ардуино даёт уровень порядка 920 при свободном освещении и может опускаться до 850 при пролёте капли.
Как организовать регистрацию этого изменения в сигнале, с учётом того, что могут изменяться обе границы и возможны шумы? И как лучше увеличить этот диапазон чувствительности в некоторых пределах от измеряемых мною значений? Может на аппаратной стороне 850 притянуть ближе к нулю, а 920 ближе 1023
Итересно откуда цыфры напряжения при пролёте капли, как и чем мерили? Судя по описанию цифрофого осцилоскопа у вас нет?
Нет, это уровень сигнала на аналоговом входе при подаваемом напряжении 5В
А если измерять отраженный свет от капли?
А разница? Темновой ток будет всё равно, плюс помехи останутся и сквозь канал для капель так-же будет поступать фоновое освещение.
И не совсем понятно как это сделать, так как диаметр капли меньше диаметра светодиода и фототранзистра.
Уровень сигнала на входе в каких попугаях? AnalogRead?
При пролете? или при медленном перемещении имитации капли?
AnalogRead
Именно при пролёте
Ну вы же не написали что у вас за установка.
Стабильность размера капель и т.д?
Прозрачность?
Каплю можно использовать как линзу.
Мало информации...
Тогда лучше поставить компаратор и выход завести на цифровой вход.
И линзы для фокусировки никто не отменял.
Размер и состав будут варьироваться, вот почему возникает такой вопрос и почему решил делать перекрытием.
Компаратор было бы здорово, если бы было с чем сравнивать сигнал.
В готовом изделии может и можно будет усовершенствовать оптику, но сейчас это не нужно и не поможет с моим вопросом.
Какая нужна информация, кроме той, что у меня есть некий фоновый сигнал с временными провалами, которые мне надо использовать как триггер? При этом надо учитывать, что величина фонового сигнала и величина изменения могут меняться при каждом новом запуске. Ещё есть шумы, но я уже нашёл простой способ фильтрации для низкочастотных сигналов.
Капля быстро летит, а аналогреад медленный, и не факт что мерил он как раз в момент когда капля была напротив фототранзистора, система не синхронна. Ну да ладно.
Компаратор самое простое решение. У ардуино кстати есть внутренний, но сначала разберитесь с каким нить внешним. Схема простая.
Для компенсации засветки на 5-й пин надо подавать напряжение не с регулятора, а с самой ардуино - отфильтрованый ШИМ или с ЦАПа. Интересная система коррекции могла бы получиться.
То есть мне нужно найти способ задать сигнал с которым сравниваю?
А разница по сравнению со сравнением внутри самой ардуино? Зачем на компаратор что-то подавать?
Может тогда ультразвуковой датчик лучше использовать?
http://electrolend.ru/files/catalog/pepperl_fuchs/05_2015_ultrazvukovye_...
Подумайте сначала, и вопросов меньше будет. С какой скоростью капля летит? Как быстро меряет аналогРеад? Тогда станет понятно зачем компаратор, выход с него на атачИнтеррапт (attachInterrupt()) - гугле подскажет с чем его едят.
AnalogRead справляется, капля недалеко от пипетки регистрируется, изменение сигнала всегда видно.
Ультразвук бы не хотелось использовать, по крайней мере пока, уже всё собрано так.
Пока хочется на программном уровне найти способ обнаружения сигнала некоторой (допустим даже приблизительно известной) формы на фоне постоянного сигнала, но заранее не известной величины
Что аналогРеад (что ультразвук) работают на периодической основе, по запросу от оператора таймера и т.д. и т.п. Они не мониторят сигнал непрерывно. Т.е. измерения аналогРеад могут стартануть до того как капля в фокусе или после как пролетела. Вам нужно устройство которое мониторит непрерывно, и после регистрации события запоминает факт наличия импульса до тех пор пока ардуина это не посчитает как пульс. Вариантов много, но компаратор с атачинтераптом самой простой, там компаратор непрерывно мониторит а атачинтерапт запоминает, 'залипает' пока не посчитано.
А каплю нельзя на пиезо пищалку уронить, там и без компаратора могло бы получиться
Спасибо, понял наконец про компаратор, я дурной. Но это не меняет темы - как из неизвестного сигнала найти тот, с которым сравнивать. Наверное это из области обработки сигналов уже, а не программирования.
Так же как и новую мебель выбирают, сравнивают длину-ширину с размером квартиры. Для импульса это будет магнитуда и время сравнительно с эффектом капли на ИК поглощение и скоростью её пролёта соответственно
Это инженерная задача, а не программная, и ее решение, старо, как мир. Три варианта на вскидку:
1. пролет капли должен проходить вблизи фокальной плоскости оптической системы, тогда, если размер капли соизмерим с изображением светящейся точки, то перепад яркости будет очень даже значителен, даже если капля прозрачна как слеза
2. фронт света перепендикулярен фотодатчику, который смотрит на черную поверхность. Пролетая, капля освещается и датчик это улавливает. Для увеличения чуствительности опять же желательна оптическая система
3. простейший интерферометр (даже из лазерной указки). Капля, проходя через один из разделенных пучков изменяет дифракционную картинку
Это инженерная задача, а не программная, и ее решение, старо, как мир. Три варианта на вскидку:
1. пролет капли должен проходить вблизи фокальной плоскости оптической системы, тогда, если размер капли соизмерим с изображением светящейся точки, то перепад яркости будет очень даже значителен, даже если капля прозрачна как слеза
2. фронт света перепендикулярен фотодатчику, который смотрит на черную поверхность. Пролетая, капля освещается и датчик это улавливает. Для увеличения чуствительности опять же желательна оптическая система
3. простейший интерферометр (даже из лазерной указки). Капля, проходя через один из разделенных пучков изменяет дифракционную картинку
Намногого проще:
4. Фотоприемник помещается в один из торцов трубки, черной внутри. Второй открытый торец смотрит на светодиод и/или каплю. Далее - компаратор и потом уже всякая логика.
это до обработки: напряжение с выхода фотоприемника компаратор сравнивает с экспериментально подобранным напряжением делителя.
Намногого проще:
4. Фотоприемник помещается в один из торцов трубки, черной внутри. Второй открытый торец смотрит на светодиод и/или каплю. Далее - компаратор и потом уже всякая логика.
Попробуйте расчитать приблизительно какой процент светового потока будет перекрыт в вашем простом варианте?
Второе плечо компаратора посадить на другой фототранзистор, он будет задавать уровень фона.
Намногого проще:
4. Фотоприемник помещается в один из торцов трубки, черной внутри. Второй открытый торец смотрит на светодиод и/или каплю. Далее - компаратор и потом уже всякая логика.
Попробуйте расчитать приблизительно какой процент светового потока будет перекрыт в вашем простом варианте?
для непрозрачной капли: 100%.
И в догонку, вместо фототранзистора попробовать использовать модуль OPT101
Намногого проще:
4. Фотоприемник помещается в один из торцов трубки, черной внутри. Второй открытый торец смотрит на светодиод и/или каплю. Далее - компаратор и потом уже всякая логика.
Попробуйте расчитать приблизительно какой процент светового потока будет перекрыт в вашем простом варианте?
для непрозрачной капли: 100%.
Ну, если капля непрозрачна и не отражает ничего и аппертура трубки меньше размера капли и траектория одна и таже - то вы правы на 90%
а, кто и чем замерял прозрачность капли для инфракрасного излучения?
Гы,
Ну и продолжить- от 9 до 30 милиметров за милисекунду. При размере капли 5 мм время пролета мимо датчика от 500 до 170 микросекунд. За это время надо оцифровать, сравнить и принять решение о наличии капли.
По алгоритму - используйте для анализа разность между двумя измерениями. Определите порог дребезга без капель. Если разность положительна и больше порога - капля началась, если отрицательна - кончилась. Разность не зависит от текушего значения детектора.
а, кто и чем замерял прозрачность капли для инфракрасного излучения?
Дык... ТС же ничего не пишет про капли: прозрачность, размеры, скорость и т.д.
Одно дело коньяк, другое - брага или там сироп какой нибудь вишневый...
Какие дождевые капли на уровне моря? У меня растворы с красителями на уровне конца пипетки. Пока без краситклей. Фототранзистр в корпусе с линзой 3мм, капля прозрачная 3мм, ИК светодиод 5мм, всё в пластиковых непрозрачных трубках длиной 5см. Повысив сопротивление в цепи фототранзистра до 74кОм удалось получить уровень сигнала при постоянном освещении в 450 и при пролёте капли до 850 в пике (изначально ошибся, написав, что уровень падает при пролёте).
Странно, что при постоянном выводе данных с AnalogRead на каплю приходятся всего 1-2 значения, а если поставить вывод только при привышении некоторого уровня, то 10 значений. Это как-то связано с буфером при отправке, что оно начинает тормозить?
Конечно тормозит. Посчитайте время посылко одного символа и умножте на длину строки.
А почему я получаю больше значений при выборочной отправке? Куда они девсются при неприрывной отправке?
Скорость в обоих случаях одна - 9600. Полагаю, увеличив скорость, то можно увеличить количество выводимых значений?
Всё равно интересно про какому принципу теряются значения. Тормозится работа цикла или из буфера стираются данные?
Вы не приводили кода. Я не могу знать, как у вас устроена прграмма. Если отправка в цикле - то ничего не теряется, а только тормозит. Я обычно ставлю скорость 115200 и с ней тоже тормозит отправка, но не так критично.