Два датчика расхода, один ESP32, ЖК-дисплей и/или Arduino

Я хочу построить расходомер, но оценка Gal/Min чего-то вроде этого расходомера слишком низкая. Я думаю о том, чтобы связать два бок о бок с подходящими пленумами для входа и выхода.

Я нашел несколько таких скетчей, но мне интересно, как использовать два входа для агрегирования результатов в GPM и общий объем галлонов для отображения на ЖК-экране. Я не уверен, что произойдет, если два результата Холла поступят или примерно в одно и то же время, но на разных выводах данных.

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

Может кто-нибудь указать мне на какой - нибудь код, чтобы я начал работать с ESP32 и LCD. Я даже подумаю о том, чтобы добавить Нано, если это облегчит дело. Я думаю, что это, безусловно, предотвратит проблемы столкновения. В основном мне нужно уметь обрабатывать расход на один ЖК-дисплей.

Спасибо

, 👍-2


1 ответ


0

Датчик эффекта Холла, подобный этому, просто дает вам импульс при каждом вращении (или два импульса на вращение и т. Д.) внутренних лопастей.

Если вы используете прерывания для подсчета импульсов, то два импульса, поступающие одновременно, будут обрабатываться последовательно. Флаг прерывания, указывающий на поступление импульса, устанавливается аппаратно в момент поступления импульса, и процессор проверяет все флаги прерывания между инструкциями. Каждый флаг обрабатывается последовательно, порядок определяется настройками приоритета прерывания и "естественным" порядком, определяемым внутренней проводкой процессора.

Однако на ESP32 есть лучший способ, и это периферийное устройство счетчика импульсов. Он предназначен для подсчета импульсов, таких как сигналы от датчиков эффекта Холла.

Вы можете просто оставить Счетчик импульсов для подсчета ваших импульсов, а затем периодически считывать и сбрасывать счетчик импульсов, чтобы увидеть, сколько воды утекло за этот период. Из документации видно, что у вас могут быть два входа, оба с одинаковым приращением счетчика, поэтому он выполнит агрегирование для вас.

,

Отлично, спасибо, но чтение этих документов и примеров кода немного выходит за рамки моей лиги программирования. Будут ли 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