mefi73

рН-датчик с аналоговым выходом

5 сообщений в этой теме

mefi73    15

Что такое pH знает каждый, ещё из школьного курса химии, где рН замеряли при помощи лакмусовых бумажек и фенолфталеина. Но для измерения уровня рН существуют и электронные способы определения, которые позволяют определить уровень рН с точностью до второго знака после запятой. Электронные датчики рН состоят из двух электродов: измерительного электрода и электрода сравнения.

Измерительный электрод.

image1.png.75387bf855338431e513697d53cee139.png

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

image2.png.a77e061f098f8555671e5365a2725b12.png

Электрод сравнения.

image3.png.abe646d32a5c8ae1d447f5ddeefa59d4.png

Очень похож на измерительный электрод, так же содержит серебряную проволоку покрытую хлоридом серебра и в качестве раствора используется хлорид калия, но с измеряемым веществом контактирует не через стеклянную мембрану, а через пористую керамическую диафрагму. Через эту диафрагму раствор хлорида калия может вытекать или из него может испаряться вода, поэтому электрод сравнения имеет специальное отверстие, через которое можно заполнить электрод свежим раствором хлорида калия. У меня был бытовой электронный рН-метр РН-009(I), у которого за 5 лет высох электрод сравнения. А поскольку отверстие для заполнения электрода сравнения в бытовых рН-метрах не предусмотрено, то по назначению я его применять больше не могу (зато смог разобрать и использовать его с внешними рН-электродами)

Комбинированный электрод.

image4.png.ff83e23e1f42c15c351cbda21cd6238e.png

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

Бытовые электронные рН-метры позволяют измерять уровень кислотности с точностью до  одного знака после запятой и выглядят так.

image5.jpg.5fd32c1354e1c730de0f6b626851b128.jpg

Если же вам необходимо построить какую-либо автоматическую систему управления, например аквариумом или гидропонной установкой, то такой рН-метр в свою автоматическую систему вы встроить не сможете. Вам понадобится вот такой датчик:

image6.jpeg.3cfd2b27e6a902429be44393f6d38d82.jpeg

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

image7.jpeg.c992b390aa9a5dc551caff9f9f345434.jpegimage8.jpeg.b1c838404bf3d272d7334c9f3d45c38c.jpeg

Именно такой рН-электрод с усилителем достались мне на обзор  от сайта cxem.net за что выражаю огромную благодарность.

Кратко о характеристиках

Плата-усилитель:

·         Напряжение питания: 5±0.2 В

·         Рабочий ток: 5-10mA

·         Рабочая температура: -10…50 С

·         Срок службы: 3 года

·         Размеры: 42 мм x 32 мм x 20 мм

·         Вес: 25 г

рН-сенсор:

·         Диапазон рН: 0-14 рН

·         Диапазон температур измеряемого раствора: 0-60 ℃

·         Нулевая точка: 7 ± 0.5PH

·         Время ответа: ≦1min

·         BNC разъем.

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

Адрес товара https://ru.aliexpress.com/item/Liquid-PH-Value-Detection-detect-Sensor-Module-Monitoring-Control-For-arduino-BNC-Electrode-Probe/32797327021.html

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

Первым делом смотрим схему, которую приложил к датчику продавец.

image9.png.f575e83626e068f4c5f08f64b9b1522c.png

Что мы здесь видим?

Во-первых,  усилительный каскад датчика рН.

Во-вторых, цепочка из повторителя, резисторного моста с термистором в одном из плеч, дифференциального усилителя и не инвертирующего усилителя составляют датчик температуры.

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

На печатной плате находятся 2 подстроечных резистора, один для калибровки нулевой точки датчика рН, второй для компаратора.  Настраивать показания рН можно и программно, а резистор использовать только для того, чтобы настроить нулевую точку (то есть настроить датчик так, что бы при рН=7.0 на выходе датчика рН было 0 мВ).

Сенсор рН можно представить как батарейку, которая вырабатывает очень низкое напряжение, которое строго линейно кислотности измеряемой жидкости. При этом напряжение, вырабатываемое сенсором, может быть любой полярности. При рН=0 напряжение равно 413 мВ, при рН=1 – 354 мВ. Так при изменении рН на одну единицу напряжение изменяется на 59,16 мВ (это число называют мВ/рН фактор). Это значение характеризует наклон прямой графика. Стоит заметить, что значение 59,16 это теоретическое расчетное значение. На деле же это число может отклоняться как в меньшую, так и в большую сторону из-за изменения температуры и особенностей конкретного сенсора (например, может меняться из-за износа стеклянной мембраны или из-за особенностей изготовления данной партии сенсоров). Поэтому это значение мы будем считать переменной, что бы производить программную коррекцию показаний датчика.

Зависимость мВ/рН фактора выражена в следующей таблице.

image10.png.4b77ea01aa455d2ef0e1a91c37a777eb.png

Из нее следует, что мВ/рН фактор изменяется примерно на 0,2 мВ на один градус. Поэтому значение мВ/рН фактора можно записать как 59,16+(T-25)*0,2, где Т – температура по шкале Цельсия.

Второй переменной будет значение сдвига нулевой точки. Как я уже упоминал, у идеального теоретического сенсора при рН=7 на выходе будет напряжение 0 мВ. А на деле сенсор у нас не идеальный, и поэтому значение напряжение при рН=7 может отличаться как в меньшую, так и в большую сторону. Поэтому значение сдвига будет второй переменной в нашей формуле.

О какой формуле вообще идет речь? О формуле прямой: x=a*y+b, где вместо a подставляем мВ/рН фактор 59,16 (здесь и далее я не учитываю поправку на температуру), а вместо b напряжение смещения. О чем ещё надо знать - чем выше рН тем ниже напряжение на выходе, поэтому получается вот такая функция: Uвых=-59,16*(рН-7)+0 (формула 1), согласно этой формуле получается вот такая вот табличка:

image11.thumb.png.66a3179898a8c363ac375cbe12979ea8.png

Теперь преобразуем эту формулу так, что бы вычислять значение рН по полученному напряжению: рН=(Uвых-a)/(-b)+7 (формула 2).

Но напряжение на выходе мало того что с низким напряжением, так ещё и двуполярное. Поэтому усилительный каскад на плате должен сдвинуть напряжение, получаемое с сенсора так, что бы даже при самом максимальном отрицательном значении оно было положительным, а затем усилить его. Поскольку опорное напряжение на микроконтроллерах зачастую 5 вольт, и напряжения, получаемые с датчика рН в граничных значениях равны, то после сдвига и усиления нулевая точка должна составлять 2,5. Так же необходимо знать коэффициент усиления. Я провел небольшой опыт, подключал вместо рН-сенсора разряженные батарейки с различным напряжением и измерял напряжение на выходе после усилителя, и в итоге выявил закономерность, которую представил в виде таблицы. В левом столбце напряжение, подаваемое на вход платы, в правом – напряжение после усилителя.

image12.png.f32d36b2f428acc78f3ff2e53e3cbd7d.png

Как видите при напряжении 0 вольт на входе, напряжение на выходе составляет 2,5 вольт, это и есть наша сдвинутая нулевая точка. В левом столбце указано напряжение в мВ с шагом в 10 мВ. В правом столбце напряжение в вольтах, и мы видим, что разница между соседними значениями составляет 0,03 вольта или 30 мВ. Таким образом, сигнал усиливается в 3 раза и сдвигается в моем случае на 2,5 вольт. Поскольку с АЦП мы получаем не напряжение, то полученное с АЦП значение первым делом необходимо привести к напряжению при помощи формулы (5/1024)*ADC, затем отнять 2,5 и поделить на 3 [Uвых=((5/1024)*ADC-2,5)/3]. Таким образом, мы получим реальное значение напряжения, которое присутствует на рН сенсоре. А затем, используя формулу 2, вычисляем значение рН.

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

P.S. Надо сказать ещё о том, что сенсоры рН приходят не активированными. Для того что бы активировать рН сенсор необходимо выдержать сенсор в слабом растворе соляной кислоты (достаточно и 1%) в течение суток. Определить активирован ли сенсор легко, у не активированного сенсора показания скачут, довольно сильно. Я активировал сенсор в самодельной соляной кислоте. Для этого я поставил в пол-литровую банку рюмку с холодной водой, на дно банки насыпал обыкновенной поваренной соли и налил на соль аккумуляторную кислоту. Банку закрыл крышкой и оставил на несколько дней. Вода впитывает пары соляной кислоты. Я не знаю, какая концентрация соляной кислоты у меня получилась, но её было достаточно для того, чтобы после двух дней вымачивания сенсора в ней значения, выдаваемые сенсором, стабилизировались.

Ну и в заключении. Полученным датчиком и приобретенным при работе с ним опытом я очень доволен, да и проект с его участием уже в стадии программирования. Благодарность форумe cxem.net за предоставленный датчик. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
java    0

Так что в итоге, вы собрали РН метр на микроконтроллере?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
mefi73    15
21 час назад, java сказал:

собрали РН метр на микроконтроллере?

получается что так )) но проект с использованием рН-датчика о сих пор не реализован

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Впервые на русском языке! Работаем с микроконтроллерами STM32F7(на основе STM32F7 Online Training)

Цикл материалов на основе STM32F7 Online Training от компании STMicroelectronics. Описаны функциональные блоки и инструменты разработки для семейства микроконтроллеров STM32F7, охватывающие тематику системной периферии, памяти, безопасности, аналоговой периферии, цифровой периферии, таймеров, экосистемы.

Подробнее>>

java    0

не смог найти ни одной схемы и ни одной прошивки для этого датчика, хотел сделать дозатор с двумя дозирующими насосами, готовые изделия есть, а схем в инете не нашёл! 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
mefi73    15
В 08.03.2019 в 01:21, java сказал:

не смог найти ни одной схемы и ни одной прошивки для этого датчика, хотел сделать дозатор с двумя дозирующими насосами, готовые изделия есть, а схем в инете не нашёл! 

Этот датчик полностью аналоговый, там нет никакой прошивки.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Похожие публикации

    • Автор: Vit@lik
      Спаял светомузыку. Но проблема в том что не могу прошить фьюзы. Так как у я работаю с другой програмой (у меня программатор USBASP).
      Дорисуйте пожалуйста на картинке как их нужно выставить.
      Программа AVRDudeProg_3.
      Перед прошывкой нужно нажать "верификация" ?... ето проверка?
      Вот схема цветомузыкы
      http://cxema.at.ua/publ/svetomuzyka_na_atmega8_6_kanalov/1-1-0-53
      Фьюзы кажиться должны бить так как здесь...
      http://cxema.at.ua/publ/10_ti_polosnyj_svetodiodnyj_analizator_spektra/1-1-0-34
      ....но я не уверен подскажите пожалуйста как МК прошыть.