Шкала рН используется для измерения кислотности. Она может давать показания в диапазоне от 1 до 14, где 1 показывает наиболее кислую жидкость, а 14 – самую щелочную жидкость. 7 pH – уровень для нейтральных веществ, которые не являются ни кислотными, ни щелочными. Сейчас pH играет очень важную роль в нашей жизни и используется в различных областях. Например, его можно использовать в бассейне для проверки качества воды. Аналогично, измерение pH используется в самых разных областях, таких как сельское хозяйство, очистка сточных вод, промышленность, мониторинг окружающей среды и т. д.

В этом проекте мы собираемся создать pH-метр на основе Arduino и научиться измерять уровень pH жидкого раствора с помощью датчика pH и Arduino. ЖК-дисплей 16x2 используется для отображения значения pH на экране. Мы также узнаем, как откалибровать датчик pH для повышения точности датчика.
Итак, единица измерения кислотности вещества называется pH. Термин «Н» определяется как отрицательный логарифм концентрации ионов водорода. Диапазон рН может иметь значения от 0 до 14. Значение рН 7 является нейтральным, поскольку чистая вода имеет значение рН ровно 7. Значения ниже 7 являются кислотными, а значения больше 7 являются щелочными.

Аналоговый датчик pH предназначен для измерения значения pH раствора и определения кислотности или щелочности вещества. Он широко используется в различных приложениях, таких как сельское хозяйство, очистка сточных вод, промышленность, мониторинг окружающей среды и т. д. Модуль имеет встроенную микросхему регулятора напряжения, которая поддерживает широкий диапазон напряжения 3,3-5,5 В постоянного тока, который совместим с уровнями 5 В и 3,3 В любой платы управления, например, Arduino. Выглядит электрод датчика следующим образом.

Плата преобразования сигнала для него выглядит так:

Эта плата имеет следующие выводы: V+: вход 5 В постоянного тока, G: контакт заземления, Po: аналоговый выход pH, Do: 3,3 В постоянного тока, To: температура на выходе.
Конструкция электрода датчика уровня pH:

Датчик pH выглядит как стержень, обычно сделанный из стеклянного материала с наконечником под названием «стеклянная мембрана». Эта мембрана заполнена буферным раствором с известным значением pH (обычно pH = 7). Такая конструкция электрода обеспечивает среду с постоянным связыванием ионов H+ на внутренней стороне стеклянной мембраны. Когда зонд погружается в тестируемый раствор, ионы водорода в тестируемом растворе начинают обмениваться с другими положительно заряженными ионами на стеклянной мембране, что создает электрохимический потенциал через мембрану, которая подается на модуль электронного усилителя, который измеряет потенциал между обоими электродами и преобразует его в единицах рН. Разница между этими потенциалами определяет значение pH на основе уравнения Нернста.
Уравнение Нернста дает связь между потенциалом электрохимической ячейки, температурой, коэффициентом реакции и стандартным потенциалом ячейки. В нестандартных условиях уравнение Нернста используется для расчета потенциалов в электрохимической ячейке. Уравнение Нернста можно также использовать для расчета полной электродвижущей силы (ЭДС) для полной электрохимической ячейки. Это уравнение также используется для расчета значения pH. Отклик стеклянного электрода определяется уравнением Нернста и может быть задан как E = E0 - 2.3 (RT/nF) ln Q (Q = коэффициент реакции, E = мВ на выходе электрода, E0 = нулевое смещение для электрода, R = идеальная газовая постоянная = 8,314 Дж/моль-К, T = температура в ºK, F = постоянная Фарадея = 95 484,56 C/моль, N = ионный заряд).
Принципиальная схема pH-метра на основе Arduino приведена далее.

В ней выход платы преобразования Po мы подключаем к аналоговому входу A0 платы Arduino.

После успешного подключения аппаратных средств пришло время программировать Arduino. Полный код работы pH-метра на основе Arduino приведен далее.
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
float calibration_value = 21.34;
int phval = 0;
unsigned long int avgval;
int buffer_arr[10],temp;
void setup()
{
Serial.begin(9600);
lcd.init();
lcd.begin(16, 2);
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print(" Welcome to ");
lcd.setCursor(0, 1);
lcd.print(" Digitrode ");
delay(2000);
lcd.clear();
}
void loop() {
for(int i=0;i<10;i++)
{
buffer_arr[i]=analogRead(A0);
delay(30);
}
for(int i=0;i<9;i++)
{
for(int j=i+1;j<10;j++)
{
if(buffer_arr[i]>buffer_arr[j])
{
temp=buffer_arr[i];
buffer_arr[i]=buffer_arr[j];
buffer_arr[j]=temp;
}
}
}
avgval=0;
for(int i=2;i<8;i++)
avgval+=buffer_arr[i];
float volt=(float)avgval*5.0/1024/6;
float ph_act = -5.70 * volt + calibration_value;
lcd.setCursor(0, 0);
lcd.print("pH Val:");
lcd.setCursor(8, 0);
lcd.print(ph_act);
delay(1000);
}
Калибровка электрода датчика pH очень важна в этом проекте. Для этого нам нужно известное значение pH какого-либо раствора. Оно может быть принято как эталонное значение для калибровки датчика. Предположим, у нас есть раствор, значение pH которого равно 7 (дистиллированная вода). Теперь, когда электрод погружен в эталонный раствор и значение pH, отображаемое на ЖК-дисплее, составит примерно 6,5. Затем для калибровки просто добавьте 7-6.5 = 0.5 в калибровочную переменную «calib_value» в коде, то есть нужно сделать значение 21,34 + 0,5 = 21,84. После внесения этих изменений снова загрузите код в Arduino и перепроверьте pH, окуная электрод в контрольный раствор. Теперь на ЖК-дисплее должно отображаться правильное значение pH, то есть 7. Аналогичным образом отрегулируйте эту переменную для калибровки датчика. Затем проверьте все другие решения, чтобы получить точный результат.
Мы попробовали этот pH-метр на основе Arduino, окунув электрод в чистую воду и лимонную воду, результат вы можете увидеть на следующих изображениях (первое – чистая вода, второе – лимонная кислота).


© digitrode.ru