Как измерить уровень воды в резервуаре с помощью микроконтроллера?
Как измерить уровень воды в резервуаре с помощью микроконтроллера?
Ответы:
Что ж, если вы работаете здесь на земле (в отличие от орбиты), вы можете использовать поплавковый датчик, который вы измеряете с помощью микро. Вопрос в том, нужно ли вам знать точный уровень или вам просто нужно какое-то путешествие, когда оно достигает максимума / минимума?
В теме «Поездка на конкретном уровне» вы можете получить такие переключатели - как правило, поплавок содержит некоторый переключатель определения положения. Когда уровень воды ниже, поплавок заканчивается на своей стороне, и переключатель «выключен», в то время как повышение уровня заставляет поплавок в вертикальном положении и, следовательно, «вкл». Они часто используются для отстойников. Они довольно надежны и с ними очень легко иметь дело, хотя вы должны быть осторожны, чтобы правильно их закрепить, и вы должны быть уверены, что ничто не помешает поплавку.
Если вам нужно знать фактический уровень, то у вас есть много вариантов, но это не так просто. Вы можете использовать что-то вроде ультразвукового датчика (ультразвуковой луч направляется вниз с верхней части резервуара, чтобы отразить уровень воды).
Эти парни, кажется, делают индикаторы уровня для БОЛЬШИХ резервуаров, которые состоят из поплавка и внешней массы, соединенных вместе. Когда поплавок движется вверх и вниз по жидкости, внешний индикатор перемещается соответствующим образом. Вы могли бы создать что-то похожее, не имея ничего более сложного, чем фотоэлементы для считывания уровня (если это большой резервуар или вы хотите много гранулярности, вам понадобится много фотоэлементов).
В качестве альтернативы, взяв идею кабельного поплавка, вы можете установить натяжное колесо, которое перемещается при каждом перемещении кабеля, и затем подключить к нему энкодер. Это позволит вам отслеживать уровень с довольно высокой точностью.
Я знаю, что в скором выпуске книги Practical Arduino есть проект датчика глубины резервуара для воды , в котором используется датчик перепада давления для измерения давления воды в нижней части резервуара, а также для расчета того, насколько заполнен резервуар.
Схемы находятся по ссылке выше, вместе со ссылкой на исходный код на github.
(Полное раскрытие: я не связан с книгой, но пару раз встречался с одним из авторов в наших местных хакерских пространствах.)
Метод, который мне нравится, но я не пробовал, - это поместить две изолированные пластины в жидкость. Отсутствие проводимости, электролиза, контанимации ....... Они образуют пластины из колпачка. и используются в каком-то осцилляторе (выбор за вами). Поскольку вода является хорошим диалектиком, частота сильно зависит от количества воды между пластинами. Измерьте частоту, чтобы получить глубину.
Вы можете получить аналогичный результат, подав сигнал переменного тока и измеряя ток через крышку.
Дополнительные подробности могут помочь, но я думаю, что ультразвуковой метод, возможно, является самым простым, концептуально, в любом случае (отсюда необходимость в более подробных данных: -]). Я собрал датчик уровня для топливного бака в подвале, используя ультразвуковой преобразователь MaxSonar. Я переключаюсь на датчик Parallax Ping, как только я получу его. Устройство MaxSonar оказалось чем-то вроде боли; Оказывается, он имеет разрешение всего один дюйм (2,54 см), что соответствует почти 7 галлонам в моем аквариуме. Я положил устройство MaxSonar в крышку из ПВХ в верхней части бака, направленной вниз (вне зоны действия жидкости).
Один из способов сделать это - разместить светодиод внизу резервуара, указывающий на верх, и фотодиод вверху резервуара, направленный на светодиод. Светодиод будет ослаблен водой в резервуаре, вам нужно будет поэкспериментировать, чтобы определить, сколько. Кроме того, лучше всего использовать серию быстрых измерений и усреднить их при использовании этого метода.
Есть удивительное количество способов проверить уровень. Существуют датчики, которые используют РЧ, посылая импульс по волноводу и обнаруживая отражение от поверхности жидкости в резервуаре. Есть ультразвук, поплавки, барботажные трубки, отводы давления ... Используемый метод зависит от размера резервуара, его содержимого, окружающей среды и других факторов.
Я удивлен всеми сложными электронными решениями здесь, я бы использовал простой потенциометр. Большинство микроконтроллеров имеют базовый аналоговый I / P.
+V
-----
|
|
/
\
/<----------> to analog i/p
\
|
|
-----
GND
Используйте стандартный поплавок клапана водяного бака (возможно, он уже есть). Оставшаяся проблема - привязать поплавок к банку, чтобы получить максимальный размах (вы также можете использовать горшок-слайдер).
|-|
| |
|o| <--------Slider pot.
|||
|||
|
| <--------Coupling.
|
____ |
(float)----------o-----o <--Anchor point of float.
----
Самый простой подход
Поместите небольшую трубку в угол резервуара, диаметр которого немного больше размера шара для пинг-понга.
Поместите инфракрасный светодиод с одной стороны трубки, а фоторезистор - напротив светодиода (просверлив отверстие в трубке, если оно непрозрачное, или поместите снаружи, если оно прозрачное). Горячим клеем электрические детали, чтобы сделать их водонепроницаемыми и бросить мяч для пинг-понга в трубу.
Когда уровень воды поднимается или опускается до такой степени, что шарик для пинг-понга разбивает инфракрасный луч, вы узнаете, что он достиг желаемого уровня. Это работает, если вам просто нужен дискретный (вкл / выкл) индикатор уровня.
Эта система также используется в пейнтбольных ружьях, разработанных для предотвращения порезов шарами, так как весь шар находится в камере обжига перед тем, как электронный триггер активирует электромагнитный клапан.
Это просто, эффективно и практически не требует калибровки.
Еще один умный подход: использовать большую теплопроводность воды (жидкости). Идея состоит в том, чтобы иметь температурный датчик и измерять разницу его самонагревания при погружении в воду и в воздухе.
Другое решение (без каламбура);
Используйте потенциометр, как указано выше. Нормальный диапазон вращения составляет 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 конечно)
Пожалуйста, проверьте следующую ссылку:
http://www.edgefxkits.com/contactless-liquid-level-controller
Я думаю, что это может быть полезно для вас.