Датчик уровня жидкости

Nemo
Offline
Зарегистрирован: 07.03.2015

Поискал на форме - не нашел. Может кому сгодиться.

Вроде бы все просто. В описании сказано:

спецификации:
имя продукта: датчик уровня воды
рабочее напряжение: dc3-5v
рабочий ток: менее 20 ма
тип датчика: аналоговый
зоны обнаружения: 40mmx16mm
производственный процесс: fr4 двойной- односторонняя hasl
рабочая температура: 10 образный #8451;- 30 образный #8451;
влажность: 10%- 90% не- конденсации
продукта размеры: приблизительно. 62mmx20mmx8mm( l*w*h)
вес: около 3.5g

Подключик к аналоговому входу А0

Написал код:

void setup()
{
  pinMode(0, INPUT);
  digitalWrite(0, HIGH);
  Serial.begin(9600);
}

void loop()
{
    int val = analogRead(0);
    Serial.println (val);
}

Проверил. Работает.

Значения от 0 - при идеально сухом датчике, до 685

Причем чем выше столб воды по датчику, тем значение выше.  При падении уровня воды, значения уменьшаются, то так как датчик уже "сырой", то идеального 0 не получаю. Но значения приближены к 0. Зависят от размеров капли на кончике датчика.

А дальше поли вопросы:

1. Почему на аналоговом входе функция analogRead() по идее должна возвращать значения от 0 до 1023, а у меня с максимально утопленным датчиком всего 685.

2. Если в коде программы изменить значения выхода 0 на 14, (1 = 15, 2 = 16 и т.д.) тоже все работает. В описании по цоколевке сказано: Выводы Arduino, соответствующие аналоговым входам, имеют номера от 14 до 19. Но информация разниться, и у меня все работало не только при значениях 0 и 1 (физически конечно же переключал провода с А0 на А1) но и при 2,3,4,5. Как все же правильно в коде указывать аналоговые выходы: с 0 по 5 или с 14 по 19 ?

3. Нужен ли подтягивающий резистор при подключении данного датчика или он уже установлен на самом датчике? (Там есть пара. На фото видно.)

4. Нужно ли включать резистор дуни командой digitalWrite(14, HIGH); как в коде - или при работе с аналоговыми выходами это лишнее?

5. По коду все верно? Или есть грубые ошибки? Чет слишком простенький получился. Может чего не учел.

Вообщем - кому есть что сказать - давайте обсудим.

std
Offline
Зарегистрирован: 05.01.2012

Nemo пишет:
1. Почему на аналоговом входе функция analogRead() по идее должна возвращать значения от 0 до 1023, а у меня с максимально утопленным датчиком всего 685.

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

И тащемта сейчас читаем из входа 0 (Rx), плюс запущен сериал. Удивительно, что вообще есть внятная корреляция уровня и показаний. Хотя может среда не так тупа и поняла что 0 это A0. Но лучше подправить.

Nemo пишет:
2. Как все же правильно в коде указывать аналоговые выходы: с 0 по 5 или с 14 по 19 ?

С 14 по 19. Или с A0 по A5 (A7 в 32-ногих корпусах). Написано в %Arduino%\hardware\arduino\variants\standard\pins_arduino.h

Nemo пишет:
3. Нужен ли подтягивающий резистор при подключении данного датчика или он уже установлен

Уже установлен. Левый же (как на фотке, если смотреть со стороны штырей и они вверх).

Nemo пишет:
4. Нужно ли включать резистор дуни командой digitalWrite(14, HIGH); как в коде - или при работе с аналоговыми выходами это лишнее?

Ненужно и бесполезно. АЦП входы не являются выходами и никаких резисторов у них нет.

Nemo пишет:
5. По коду все верно? Или есть грубые ошибки? Чет слишком простенький получился.

Чтение, вывод в сериал. А что ещё нужно?

Nemo
Offline
Зарегистрирован: 07.03.2015

std - Спасибо за развернутый ответ. Вроде бы все вопросы сняты. Юзаем.

Tomasina
Tomasina аватар
Offline
Зарегистрирован: 09.03.2013

Nemo пишет:
Почему на аналоговом входе функция analogRead() по идее должна возвращать значения от 0 до 1023, а у меня с максимально утопленным датчиком всего 685.

Потому что сопротивление воды тоже надо учитывать. Если дорожки замкнуть чем-то металлическим, будет тебе 1023.

Nemo
Offline
Зарегистрирован: 07.03.2015

Вот теперь к весне можно мутить автонаполнение поливочной емкости. Ток вот думаю, придется 2 таких датчика ставить: 1 вверху, 1 внизу. Верхний отключает насос (перекрывает кран) когда емкость полная, нижний - включает насос (открывает кран), когда емкость пустая.

Интересно, если контакы и резисторы со светодиодом - все залить термоклеем, можно нижний датчик в воде топить? Или придется с внешней стороны емкости врезаться?

Tomasina
Tomasina аватар
Offline
Зарегистрирован: 09.03.2013

без разницы, у тебя через 2 месяца по-любому от дорожек ничего не останется :)

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

Каких-таких? Сопротивление у них воды, понимаешь....... Сгниют нафик.......

Выбирайте: http://www.ebay.com/sch/i.html?_sacat=0&_nkw=water+tank+level+sensor&_frs=1

Nemo
Offline
Зарегистрирован: 07.03.2015

Tomasina пишет:

без разницы, у тебя через 2 месяца по-любому от дорожек ничего не останется :)

Вот незадача. А куда ж их таких красивых использовать? Если от простой воды гниют?

trembo пишет:

Каких-таких? Сопротивление у них воды, понимаешь....... Сгниют нафик.......

Выбирайте: http://www.ebay.com/sch/i.html?_sacat=0&_nkw=water+tank+level+sensor&_frs=1

Интересная ссылка. Спасибо. Но там как я понял только верхний предел можно использовать. (датчики поплавковые)  А если емкость большая, то как низ проконтролировать? Разве что такие 2 шт задействовать.

http://www.ebay.com/itm/1Pcs-Water-Level-Sensor-Liquid-Floating-Switch-T...

Tomasina
Tomasina аватар
Offline
Зарегистрирован: 09.03.2013

Nemo пишет:
Вот незадача. А куда ж их таких красивых использовать? Если от простой воды гниют?

Гниют не от воды, а от проходящего через них электричества. Дешевый вариант - два параллельные спицы из нержавейки. Красивый вариант - ссылки были выше.

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

10 дырок в баке, 10 датчиков, 10 светодиодов, 10 резисторов, один блок питания- будет ёлка ;)

Nemo
Offline
Зарегистрирован: 07.03.2015

Tomasina пишет:

Дешевый вариант - два параллельные спицы из нержавейки. Красивый вариант - ссылки были выше.

А к спицам "обвес" нужен? Резисторы и т.д.

И если спицы, то 4 - 2 низ, 2 верх. Да?

Tomasina
Tomasina аватар
Offline
Зарегистрирован: 09.03.2013

Каждые две спицы - это один датчик. Расстояние между спицами в пару мм. Нужен транзистор или нет - лучше проверить экспериментально: одну спицу подключить к A0, другую к GND и замерить показания (если и близко к 512 не будет при полном уровне, значит сигнал надо усиливать).

P.S.

Датчик уровня жидкости

Датчики уровня воды в 7-8 колодцах

Измерение уровня воды

Прошивка для измерителя воды в баке

Подключение и индикация датчика уровня жидкости

Датчик глубины для Ардуино

Arduino и датчик уровня поплавковый

Дайте мне что-нибудь тяжелое или стреляющее... Народ совсем читать разучился, все надо подать разжеванным и переваренным.

maxi_10
Offline
Зарегистрирован: 05.01.2012

quote=Nemo]

Вот теперь к весне можно мутить автонаполнение поливочной емкости. Ток вот думаю, придется 2 таких датчика ставить: 1 вверху, 1 внизу. Верхний отключает насос (перекрывает кран) когда емкость полная, нижний - включает насос (открывает кран), когда емкость пустая.

Интересно, если контакы и резисторы со светодиодом - все залить термоклеем, можно нижний датчик в воде топить? Или придется с внешней стороны емкости врезаться?

[/quote]

тут не нужен описываемый датчик, да и Ардуино не нужна.

http://rusautomation.ru/poplavkovye-datchiki-urovnya-vody

Nemo
Offline
Зарегистрирован: 07.03.2015

Все. Закидали помидорами. Сдаюсь.

Подитожу - тот датчик который я анонсировал в первом посте этой темы - совершенно бесполезный девайс. Раз так быстро гниют контакты, и не от воды, а от проходимого через них тока, то он даже на сигнализацию от затопления не годится. Так. Детям поиграться. В школу для опытов.

Tomasina
Tomasina аватар
Offline
Зарегистрирован: 09.03.2013

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

Nemo
Offline
Зарегистрирован: 07.03.2015

Tomasina пишет:

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

Не-е-е-е. По человечески, это для профи. А мне, как далеко не электронщику, и ардуино в дом поставить не стыдно будет. Пробовал МК напрямую програмировать, с одними фьюзами гемор нереальный. А ассемблер - вообще молчу. То ли дело С++ и дуня: кномпу нажал, и вперед! Вот только с шилдам повнимательнее нужно. Вот обрадовался что готовый за 80 рублей есть, а оказывается - в топку. Пока не купишь и не попробуешь, не поймешь.

Хорошо что подсказали про дорожки, а то на сарайчик на чердачек бы впер пару-кубовую емкость, а через пару недель затопило бы нафиг все добро. Вот был бы номер!

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

555 таймер. Компаратор с окном ( гистерезисом) Выход прямо на реле. Вместо электродов герконы. Как резисторы подобрать- разберётесь. ( ключевое слово- половина питания в покое.)

http://www.qrz.ru/schemes/contribute/digest/pobyt02.shtml

fixedip
Offline
Зарегистрирован: 16.03.2015

Добрый день.

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

Вообщем буду брать пластикову трубу, вниз и вверх поставлю герконы, внутри трубы будет поплавок (пластиковая крышка с пенопластом внутри) на котором будут магниты.

 

Nemo
Offline
Зарегистрирован: 07.03.2015

fixedip пишет:

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

Меня данный датчик интересовал только в качестве отбоя на переполнение емкости.  Т.е. - как таковой уровень воды - не интересен пока. Так что остановлюсь на электродах из нержавейки.

А вообще - может кому и ваша задумка пригодится. Спасобо.