Два датчика расхода, один ESP32, ЖК-дисплей и/или Arduino
Я хочу построить расходомер, но оценка Gal/Min чего-то вроде этого расходомера слишком низкая. Я думаю о том, чтобы связать два бок о бок с подходящими пленумами для входа и выхода.
Я нашел несколько таких скетчей, но мне интересно, как использовать два входа для агрегирования результатов в GPM и общий объем галлонов для отображения на ЖК-экране. Я не уверен, что произойдет, если два результата Холла поступят или примерно в одно и то же время, но на разных выводах данных.
Я оценил некоторые одиночные датчики с более высоким расходом для размера трубы, но они стоят несколько сотен долларов. Галлоны не критичны до тех пор, пока я могу быть в пределах около 5% ошибки в течение десяти минут, наше среднее время заполнения бака.
Может кто-нибудь указать мне на какой - нибудь код, чтобы я начал работать с ESP32 и LCD. Я даже подумаю о том, чтобы добавить Нано, если это облегчит дело. Я думаю, что это, безусловно, предотвратит проблемы столкновения. В основном мне нужно уметь обрабатывать расход на один ЖК-дисплей.
Спасибо
@LinuxFerLife, 👍-2
1 ответ
Датчик эффекта Холла, подобный этому, просто дает вам импульс при каждом вращении (или два импульса на вращение и т. Д.) внутренних лопастей.
Если вы используете прерывания для подсчета импульсов, то два импульса, поступающие одновременно, будут обрабатываться последовательно. Флаг прерывания, указывающий на поступление импульса, устанавливается аппаратно в момент поступления импульса, и процессор проверяет все флаги прерывания между инструкциями. Каждый флаг обрабатывается последовательно, порядок определяется настройками приоритета прерывания и "естественным" порядком, определяемым внутренней проводкой процессора.
Однако на ESP32 есть лучший способ, и это периферийное устройство счетчика импульсов. Он предназначен для подсчета импульсов, таких как сигналы от датчиков эффекта Холла.
Вы можете просто оставить Счетчик импульсов для подсчета ваших импульсов, а затем периодически считывать и сбрасывать счетчик импульсов, чтобы увидеть, сколько воды утекло за этот период. Из документации видно, что у вас могут быть два входа, оба с одинаковым приращением счетчика, поэтому он выполнит агрегирование для вас.
- Подключение двух Arduino через I2C, когда контакты I2C A4/A5 уже используются.
- Проблема прерываний с датчиком потока
- Измерительный датчик HG-C 1100
- Как узнать, когда фильтр кофемашины закончен, используя любой датчик?
- Arduino Uno/Nano + ML
- avrdude ser_open() can't set com-state
- Какова работа pulseIn?
- Сколько датчиков может поддерживать один модуль Arduino?
Отлично, спасибо, но чтение этих документов и примеров кода немного выходит за рамки моей лиги программирования. Будут ли 2 входа подключаться к одному и тому же контакту или к разным контактам? Я не уверен, почему они говорят, что эти два порта должны быть закорочены. Мне нужно найти какой-то существующий код. Кажется, я могу понять это лучше, читая код, чем документы. Я стар. :), @LinuxFerLife
На этой странице приведен пример, связанный с этой страницей. Это не для Arduino IDE, но вы можете взять большую его часть. Весь SDK IDF входит в состав ядра ESP32 в среде IDE, поэтому все вызовы функций, которые они там описывают, работают нормально., @Majenko
Еще раз спасибо, это был "код", о котором я говорил выше. Я посмотрел на страницу .c, но все еще не уверен, где и как происходит второй ввод, чтобы он был объединен в графе. У меня есть датчик расхода небольшой версии, который прибудет через несколько дней для тестирования, но я хотел бы найти код, который уже использует два входа. Я не настолько умен-пока., @LinuxFerLife
TBH Я только что обнаружил, что периферийные устройства существуют. Я понятия не имею, как им пользоваться. Похоже, что у каждого счетчика есть два "канала", которые можно считать либо вверх, либо вниз. Каждый канал связан с одним выводом (понятия не имею, с какими выводами). Однако ESP-IDF гораздо лучше документирован, чем многие фреймворки, поэтому его не должно быть слишком сложно разработать., @Majenko
Перекрестная ссылка на эту документацию с кодом и таблицей данных ESP32 должна дать ключ к разгадке., @Majenko
Я нашел видео YT, в котором объясняются некоторые виды использования PCNT, и, похоже, это не то, что я ищу. Похоже, это больше похоже на систему запуска, которая будет отмечать событие на контрольном этапе подсчета. https://www.youtube.com/watch?v=vk5QZnWdlAA но все равно спасибо за вашу помощь. Я думаю, что пора вернуться к использованию прерываний и, учитывая ваши комментарии выше о том, что они обрабатываются последовательно, я думаю, что смогу заставить это работать для того, что мне нужно. Еще раз спасибо, что нашли время все объяснить., @LinuxFerLife
Я бы порекомендовал вам потратить несколько часов на просмотр базовых электронных руководств, а не вдвое больше времени на просмотр руководств по Arduino., @Gil