pH-метр (измеритель кислотности) на Arduino Uno и ЖК дисплее


Скала pH используется для измерения кислотности и валентности жидкостей. Диапазон pH составляет 1-14, где 1 соответствует наиболее кислотной жидкости, а 14 – основной жидкости. 7 pH соответствует нейтральным веществам (субстанциям), которые не являются ни кислотными, ни основными. Параметр pH играет достаточно важную роль в жизни людей. Например, его можно использовать для определения качества воды в бассейне. Также параметр pH имеет большое число разнообразных применений в сельском хозяйстве, очистке сточных вод, промышленности, мониторинге состояния окружающей среды и т.п.

Внешний вид pH-метр на основе Arduino Uno и ЖК дисплея

В данной статье мы рассмотрим создание pH-метра (pH Meter) на основе платы Arduino Uno и гравитационного датчика pH. Значение pH мы будем показывать на экране ЖК диcплея 16x2. Также мы рассмотрим вопросы калибровки датчика pH чтобы повысить точность его измерений.

Необходимые компоненты

  1. Плата Arduino Uno (купить на AliExpress).
  2. ЖК дисплей 16х2 (купить на AliExpress).
  3. Модуль I2C для ЖК диcплея (купить на AliExpress).
  4. Аналоговый гравитационный датчик pH (Gravity Analog pH sensor) (купить на AliExpress).
  5. Соединительные провода.
  6. Макетная плата.

Что такое значение pH?

Параметр, который мы используем для измерения кислотности веществ, называется pH. Термин “H” здесь обозначает концентрацию ионов водорода. Диапазон pH содержит значения от 0 до 14. Значение pH равное 7 обозначает нейтральную, чистую жидкость. Чистая вода имеет pH точно 7. Значения меньшие 7 обозначают кислотность, а большие 7 – основной или щелочной характер жидкости.

Скала pH

Как работает аналоговый гравитационный датчик pH

Аналоговый датчик pH предназначен для измерения значения pH и показывает кислотность или щелочность (щелочные свойства) вещества. Датчик содержит в своем составе встроенный чип регулятора напряжения, который поддерживает широкий диапазон питающих напряжений - 3.3-5.5V DC (постоянного тока), что позволяет его подключать к контактам 5V и 3.3V любых плат Arduino. Выходной сигнал фильтруется аппаратным фильтром.

Технические характеристики модуля преобразования:

  • питающее напряжение: 3.3~5.5V;
  • BNC-соединитель (стандартный байонетный соединитель);
  • высокая точность: ±0.1@25°C;
  • диапазон измерений pH: 0~14.

Технические характеристики pH электрода датчика:

  • диапазон рабочих температур: 5~60°C;
  • точка нуля (нейтральная точка): 7±0.5;
  • простая калибровка;
  • внутреннее сопротивление: <250MΩ.

Внешний вид pH электрода датчика показан на следующем рисунке.

Внешний вид pH электрода датчика

Внешний вид платы преобразования сигнала pH (pH Signal Conversion Board) показан на следующем рисунке.

Внешний вид платы преобразования сигнала pH

Назначение контактов (распиновка) платы датчика pH:
V+: вход напряжения 5V постоянного тока (DC);
G: контакт земли (Ground pin, общий контакт);
Po: аналоговый выход pH;
Do: выход напряжения 3.3V постоянного тока (DC);
To: выход температуры.

Внешний вид конструкции электрода показан на следующем рисунке.

Внешний вид конструкции электрода pH

Электрод pH выглядит обычно как трубка, сделанная из стекла, с наконечником в виде стеклянной мембраны. Эта мембрана наполняется буферным раствором с известным pH (обычно pH = 7). Электрод спроектирован таким образом, что на стеклянной мембране всегда поддерживается постоянная концентрация ионов H+. Когда электрод погружается в тестируемое вещество, ионы водорода этого вещества начинают обмен с другими позитивно заряженными ионами стеклянной мембраны, в результате чего создается электрохимический потенциал на концах мембраны, который подается на модуль электронного усиления - он измеряет разность потенциалов между двумя электродами и преобразует ее в значения pH. Преобразование разности потенциалов в значение pH осуществляется на основе уравнения Нернста.

Уравнение Нернста

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

Также уравнение Нернста может быть использовано для расчета общей электродвижущей силы (ЭДС) электрохимической ячейки. В нашем случае мы его используем для расчета значения pH тестируемого вещества. На основе данного уравнения разность потенциалов на концах стеклянного электрода может быть рассчитана следующим образом:

E = E0 - 2.3 (RT/nF) ln Q

где
Q= коэффициент реакции
E = выход в mV на концах электрода
E0 = напряжение "нуля" для электрода
R = идеальная газовая постоянная= 8.314 J/mol-K
T = температура в ºK (Кельвинах)
F = константа Фарадея = 95,484.56 C/mol
N = ионный заряд

Схема проекта

Схема pH метра на основе платы Arduino Uno представлена на следующем рисунке.

Схема pH метра на основе платы Arduino UnoСоединения между платой Arduino и платой преобразования сигнала pH показаны в следующей таблице.

Плата Arduino Плата преобразования сигнала pH
5V V+
GND G
A0 Po

Внешний вид конструкции проекта показан на следующем рисунке.

Внешний вид конструкции проекта

Объяснение программы для Arduino

Полный код программы для нашего pH метра на основе Arduino приведен в конце статьи, здесь же мы кратко рассмотрим его основные фрагменты.

Первым делом в программе мы должны подключить все используемые библиотеки. В нашем случае мы подключили библиотеку “LiquidCrystal_I2C.h” для использования интерфейса I2C с целью обмена данными с ЖК дисплеем и библиотеку “Wire.h” для использования функционала интерфейса I2C в плате Arduino.

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

Внутри функции setup() мы будем отображать на экране ЖК дисплея приветственное сообщение.

Внутри функции loop() мы будем считывать 10 аналоговых значений (отсчетов) и сохранять их в массив – это необходимо для сглаживания результата измерений.

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

Наконец, мы рассчитаем среднее 6-ти центральных отсчетов в наших аналоговых значениях. Затем это рассчитанное среднее мы преобразуем (конвертируем) в значение pH и выводим его на экран ЖК дисплея.

Калибровка pH электрода

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

Предположим, что у нас есть жидкость, значение pH которой равно 7 (дистиллированная вода). К примеру, при погружении в эту жидкость мы получим на экране ЖК дисплея значение 6.5. В данном случае для осуществления калибровки нам будет необходимо просто добавить значение 7-6.5=0.5 к значению калибровочной переменной (“calibration_value”) в коде нашей программы, то есть получим ее значение равное 21.34 + 0.5=21.84. После внесения этих изменений в код программы ее необходимо заново загрузить в плату Arduino и снова проверить работу устройства путем погружения электрода в контрольный раствор (с известным значением pH). Теперь на экране ЖК дисплея мы должны увидеть уже точное значение pH равное 7. Если оно будет все равно немного отличаться от своего истинного значения, то снова корректируем калибровочное значение в коде программы и снова тестируем работу проекта.

Тестирование работы pH метра

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

Чистая вода:

Результат тестирование работы pH метра на чистой воде

Лимонная кислота:

Результат тестирование работы pH метра на лимонной кислоте

Исходный код программы (скетча)

Видео, демонстрирующее работу pH метра

(Проголосуй первым!)
Загрузка...
8 523 просмотров

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *