Уровень водяного бака с микроконтроллером


24

Как измерить уровень воды в резервуаре с помощью микроконтроллера?


1
Это не заслуживает ответа, но мой друг сделал это для художественного проекта пару лет назад. Любой заинтересованный, я был бы рад представить вас, и я уверен, что он был бы рад объяснить, как он это сделал. Его проект находится здесь: unixarts.com/sealevel.html В нем объединены и насосы, и датчики, и требуется достаточная точность для циклического подъема и спуска без слишком большого перекоса
cyphunk

7
Когда микроконтроллер перестает работать - он под водой.
Джон У

Ответы:


23

Что ж, если вы работаете здесь на земле (в отличие от орбиты), вы можете использовать поплавковый датчик, который вы измеряете с помощью микро. Вопрос в том, нужно ли вам знать точный уровень или вам просто нужно какое-то путешествие, когда оно достигает максимума / минимума?

В теме «Поездка на конкретном уровне» вы можете получить такие переключатели - как правило, поплавок содержит некоторый переключатель определения положения. Когда уровень воды ниже, поплавок заканчивается на своей стороне, и переключатель «выключен», в то время как повышение уровня заставляет поплавок в вертикальном положении и, следовательно, «вкл». Они часто используются для отстойников. Они довольно надежны и с ними очень легко иметь дело, хотя вы должны быть осторожны, чтобы правильно их закрепить, и вы должны быть уверены, что ничто не помешает поплавку.

Если вам нужно знать фактический уровень, то у вас есть много вариантов, но это не так просто. Вы можете использовать что-то вроде ультразвукового датчика (ультразвуковой луч направляется вниз с верхней части резервуара, чтобы отразить уровень воды).

Эти парни, кажется, делают индикаторы уровня для БОЛЬШИХ резервуаров, которые состоят из поплавка и внешней массы, соединенных вместе. Когда поплавок движется вверх и вниз по жидкости, внешний индикатор перемещается соответствующим образом. Вы могли бы создать что-то похожее, не имея ничего более сложного, чем фотоэлементы для считывания уровня (если это большой резервуар или вы хотите много гранулярности, вам понадобится много фотоэлементов).

В качестве альтернативы, взяв идею кабельного поплавка, вы можете установить натяжное колесо, которое перемещается при каждом перемещении кабеля, и затем подключить к нему энкодер. Это позволит вам отслеживать уровень с довольно высокой точностью.


15

Я знаю, что в скором выпуске книги Practical Arduino есть проект датчика глубины резервуара для воды , в котором используется датчик перепада давления для измерения давления воды в нижней части резервуара, а также для расчета того, насколько заполнен резервуар.

Схемы находятся по ссылке выше, вместе со ссылкой на исходный код на github.

(Полное раскрытие: я не связан с книгой, но пару раз встречался с одним из авторов в наших местных хакерских пространствах.)


11

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

Вы можете получить аналогичный результат, подав сигнал переменного тока и измеряя ток через крышку.


Помните, это сильно зависит от диэлектрической проницаемости жидкости. Если я не ошибаюсь, емкостное зондирование используется больше для обнаружения присутствия / отсутствия, чем уровня. Кажется, что почти каждый метод, с которым я столкнулся, зависит от удельного веса. Резервуары с жидкостью переменного состава трудно регулировать.
wackyvorlon

Датчики уровня жидкости на основе емкости лучше всего работают при обнаружении присутствия или отсутствия жидкости. Для считывания уровня воды заряжайте / разряжайте пластины с помощью фиксированного резистора и измеряйте время. Как упомянуто выше, добавление загрязнений в воду (например, соли) может привести к резкому изменению емкости и, следовательно, ваших показаний для фиксированного уровня жидкости. Если жидкость, которую вы измеряете, является однородной, это гораздо меньше проблем.
mjh2007

Я сделал динатронный генератор с простой SMD-катушкой, которая резонировала с изолированными пластинами, подобными постулируемому руссу. Синусоида была возведена в квадрат, а кто-то еще посчитал импульсы в прошивке, иными словами, то, что рус говорит, работает.
Аутизм

10

Дополнительные подробности могут помочь, но я думаю, что ультразвуковой метод, возможно, является самым простым, концептуально, в любом случае (отсюда необходимость в более подробных данных: -]). Я собрал датчик уровня для топливного бака в подвале, используя ультразвуковой преобразователь MaxSonar. Я переключаюсь на датчик Parallax Ping, как только я получу его. Устройство MaxSonar оказалось чем-то вроде боли; Оказывается, он имеет разрешение всего один дюйм (2,54 см), что соответствует почти 7 галлонам в моем аквариуме. Я положил устройство MaxSonar в крышку из ПВХ в верхней части бака, направленной вниз (вне зоны действия жидкости).


7

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


1
кажется очень подверженным ошибкам, рассеянному свету, выплескиванию и т. д.
Jason S

7

Я использую дешевый датчик в местном магазине бытовой техники с фототранзистором, чтобы почувствовать индикатор. Приклеив его к боковой стенке резервуара, он ощущает, когда уровень поднимается выше датчика, и предупреждает нас о высоком уровне воды.


6

Есть удивительное количество способов проверить уровень. Существуют датчики, которые используют РЧ, посылая импульс по волноводу и обнаруживая отражение от поверхности жидкости в резервуаре. Есть ультразвук, поплавки, барботажные трубки, отводы давления ... Используемый метод зависит от размера резервуара, его содержимого, окружающей среды и других факторов.


4

Я удивлен всеми сложными электронными решениями здесь, я бы использовал простой потенциометр. Большинство микроконтроллеров имеют базовый аналоговый I / P.

 +V
-----
  |
  |
  /
  \
  /<----------> to analog i/p
  \
  |
  |
-----
 GND

Используйте стандартный поплавок клапана водяного бака (возможно, он уже есть). Оставшаяся проблема - привязать поплавок к банку, чтобы получить максимальный размах (вы также можете использовать горшок-слайдер).

                  |-|
                  | |
                  |o| <--------Slider pot.
                  |||
                  |||
                   |
                   |  <--------Coupling.
                   |
   ____            |
  (float)----------o-----o  <--Anchor point of float.
   ----

Как вы убедитесь, что банк возвращается в исходное положение?

Вес поплавка опустит его, когда уровень воды упадет ...
тт

Не уверен в этом. Найти правильный вес поплавка так, чтобы он плавал в присутствии воды и опускал котел в отсутствие воды, не так просто. Большинство горшков имеют довольно высокое статическое трение. Я думаю, что это возможно, однако, при правильной механической настройке.

Многие более длинные ползунки имеют очень низкое трение (используются в микшерах, управляемых кончиками пальцев, и в диджейских колодах). Я использовал 4-дюймовый слайдер из своей коробки битов и протестировал его с обычным поплавком в баке с водой. Он работал даже на меньшем поплавке унитаза! Кстати, я бы использовал последовательный резистор последовательно с баком, чтобы даже если он шорты во влажной среде не превышают выходной сигнал порта контроллера (или потребляют слишком большой ток от фиксированного Vref). В моей тестовой настройке я использовал резистор 10 кОм с потенциалом 10
кб

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

4

Самый простой подход

Поместите небольшую трубку в угол резервуара, диаметр которого немного больше размера шара для пинг-понга.

Поместите инфракрасный светодиод с одной стороны трубки, а фоторезистор - напротив светодиода (просверлив отверстие в трубке, если оно непрозрачное, или поместите снаружи, если оно прозрачное). Горячим клеем электрические детали, чтобы сделать их водонепроницаемыми и бросить мяч для пинг-понга в трубу.

Когда уровень воды поднимается или опускается до такой степени, что шарик для пинг-понга разбивает инфракрасный луч, вы узнаете, что он достиг желаемого уровня. Это работает, если вам просто нужен дискретный (вкл / выкл) индикатор уровня.

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

Это просто, эффективно и практически не требует калибровки.



1

Еще один умный подход: использовать большую теплопроводность воды (жидкости). Идея состоит в том, чтобы иметь температурный датчик и измерять разницу его самонагревания при погружении в воду и в воздухе.


Это на самом деле было сделано в CHCH NewZealand, где я нахожусь, но я этого не делал, я думаю, ему около 20 лет. Снаружи резервуара было множество термисторов. Так что все работает нормально, так что вы получите мой голос.
Аутизм

1

Другое решение (без каламбура);

Используйте потенциометр, как указано выше. Нормальный диапазон вращения составляет 270 градусов. Прикрепите поплавок к потенциометру с помощью стрелы. (длина = 1 единица)

Между полным и пустым рычагом стрелы будет двигаться на 90 градусов.

АЦП на PIC - это либо 256, либо 1024 шага (да, ноль - это шаг).

Я буду использовать 256 шагов для ясности.

270 градусов = 256 шагов АЦП. 270/90 = 3 (одна треть диапазона потенциометра)
255/3 = 85 шагов АЦП

Запрограммируйте некоторый код, чтобы отметить точку 0 градусов (резервуар пуст), когда кнопка нажата.

Это сохраняет точку смещения в EEPROM PIC. Теперь потенциометр не должен быть точно на нуле, потому что эта точка калибровки может быть установлена.

Используя тригометрию, рассчитайте таблицу соответствия (подсказка: скрипт php), чтобы соответствовать каждому шагу АЦП.

Подсказка: каждый шаг АЦП соответствует 90/85 = 1,0588 градуса.

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

Сокращение: старый араб нес тяжелый мешок сена.

Гипонтенус - это длина стрелы. Сделайте это 1 единица длиной. Затем в таблице поиска указывается процент от глубины резервуара. (умножьте на 100 конечно)


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.