Проблема запуска нескольких прерываний на nodemcu 1.0 на одном импульсе восходящего фронта
Я работаю над проектом, который включает в себя подсчет капель, падающих в капельницу флакона для внутривенной гравитационной терапии (физиологический раствор).Я использую ИК-трансивер в капельной камере, чтобы обнаружить падающую каплю. Я использую компаратор для генерации импульса, когда ИК-напряжение падает ниже определенного порога. Выход компаратора подключен к D1 nodemcu. ISR вызывается при нарастающем импульсе компаратора .Но nodemcu вызывает ISR от 3 до 5 раз за одну каплю.что же мне делать?плз помогите.
@CHETAN NIRADWAR, 👍2
Обсуждение1 ответ
Сигнал, вероятно, "прыгает" между максимумом и МИНИМУМОМ вместо того, чтобы выполнять чистый край, как это происходит с кнопками.
Два простых решения:
- Аппаратное решение: используйте триггер Шмидта вместо компаратора
- Программное решение: определите мертвое время для получения сигнала (отключите прерывание, когда нужный край был обнаружен, и включите его снова после "мертвого времени").
Я попробую оба решения. сначала я использовал ацп на nodemcu. но для этого в nodemcu отсутствовали капли. поэтому, чтобы использовать прерывание, я должен использовать компаратор., @CHETAN NIRADWAR
Сим, сын, я могу отключить прерывание в isr. но как повторно включить его, не останавливая основной цикл, потому что проверка условия завершения времени ожидания не позволит выполнять другие действия? Я не могу написать код для этого, который вы можете разработать., @CHETAN NIRADWAR
- Как сделать выводы Tx и Rx на ESP-8266-01 в выводах GPIO?
- Как заставить 5-вольтовое реле работать с NodeMCU
- ESP8266 не подключается к Wi-Fi
- Разница между этими двумя платами NodeMCU?
- NodeMCU - использовать кнопку flash в качестве входного сигнала в loop()
- Как определить размер Flash?
- Как изменить имя модуля ESP8266-12E по умолчанию
- Простой запрос GET с ESP8266HTTPClient
Это звучит так, как будто ваша схема производит несколько восходящих ребер на падение. Вы можете проверить это, наблюдая за сигналом с помощью осциллографа или логического анализатора. Самый простой способ решения проблемы - это настроить вашу схему так, чтобы вы получали только 1 восходящий фронт на падение. Или вы можете отключить прерывание на определенное время после первого обнаружения падения (чтобы игнорировать ложные прерывания, @chrisl
Кажется, хорошо, я попробую. я должен отключить прерывание с помощью micros после обнаружения падения и снова включить прерывание через несколько миллисекунд. Я не могу прекратить выполнение основного цикла, поскольку он состоит из отправки оставшегося объема данных, скорости и т.д. к базе данных., @CHETAN NIRADWAR
какова самая быстрая скорость капельного введения физиологического раствора внутривенно?, @jsotola
На самом деле у меня не было идеальной идеи .Я погуглил это, но не получил прямого ответа. Затем я увидел изображения трубок "dial a flow", у них макс. на нем пометка 250 мл/час. А из Google я узнал, что максимальный коэффициент капель (капель, необходимых для 1 мл) равен 60. Исходя из этого, я подсчитал, что максимальная скорость капания может составлять от 4 до 5 капель в секунду., @CHETAN NIRADWAR
можно попробовать использовать небольшой конденсатор, например, 1 или 0,1 мкФ при ИК-напряжении, чтобы замедлить его и отфильтровать шум. по сути, вам нужен фильтр нижних частот частотой 10 Гц. кроме того, АЦП 8266 любит выполнять выборку только около 800 раз в секунду, и запрос большего количества данных может привести к ошибочным результатам., @dandavis