Датчик кислотности жидкости (pH-метр) для Arduino
Датчик кислотности жидкости (pH-метр)— это датчик, позволяющий определить pH (potentia Hydrogenii) уровень жидкостей.
Общие сведения
Датчик кислотности жидкости (pH-метр) — это датчик, позволяющий определить pH (potentia Hydrogenii) уровень жидкостей.
У чистой воды (H2O) при температуре 25 °C нейтральный уровень pH = 7. Чем выше кислотность жидкости, тем ниже её уровень pH, а в щелочных растворах уровень pH выше.
Принято считать, что уровень pH определён диапазоном от 0 до 14, но в действительности у сильно агрессивных сред он может выходить за указанный диапазон.
Видео
Характеристики
- Напряжение питания модуля: 5 В постоянного тока.
- Диапазон измерений: 0...14 pH.
- Зависимость напряжения на выходе модуля от pH растворов: 1 pH = 2/7 В.
- Температура измеряемых растворов: 0...60 ℃.
- Точность измерений: ± 0.1 pH (при температуре 25 ℃).
- Время измерений: до 1 мин.
- Длина кабеля от датчика до разъема BNC на плате модуля: 660 мм.
- Размер модуля: 43x32 мм.
- Размер датчика: 143,7 мм.
Подключение
Синий провод шлейфа, с которого будут сниматься показания, подключается к любому аналоговому выводу Arduino.
Питание
Для удобства подключения к Arduino воспользуйтесь Trema Shield, Trema Power Shield, Motor Shield или Trema Set Shield.
Напряжение питания 5 В постоянного тока подаётся на красный (Vcc) и чёрный (GND) провод шлейфа pH-метра.
Подробнее о датчике
pH уровень (водородный показатель) является отрицательным десятичным логарифмом концентрации ионов водорода в жидкости: pH = - lg[H+]. В воде помимо молекул H2O имеются ионы водорода [H+] и гидроксид-ионы [OH−]. Если их количество равно (нейтральная среда), то концентрация ионов водорода [H+] составляет 10−7 моль/л, следовательно pH = -lg[10-7] = 7.
- Если в воду добавить кислоту, то концентрация ионов водорода [H+] увеличится, а гидроксид-ионов [OH−] упадет, следовательно уменьшится pH. Например при увеличении концентрации ионов водорода [H+] до 10−6 моль/л (степень отрицательная), pH упадёт до -lg[10-6] = 6.
- Если в воду добавить щелочь, то концентрация водорода [H+] упадёт, а гидроксид-ионов [OH−] увеличится, следовательно увеличится pH. Например при уменьшении концентрации ионов водорода [H+] до 10−9 моль/л (степень отрицательная), pH увеличится до -lg[10-9] = 9.
В основу работы pH-метра заложен ионометрический метод определения pH. Этот метод заключается в измерении ЭДС гальванической цепи включающей специальный стеклянный электрод, потенциал которого зависит от концентрации ионов водорода [H+] в окружающем растворе, см таблицу в разделе «примечание».
В комплекте поставляется измерительный pH-щуп с разъёмом BNC, который является расходным материалом. Со временем ухудшается его чувствительность и сдвигается значение pH при нулевом потенциале на выводах. Влияние этих изменений на точность показаний исключается после выполнения калибровки.
Для модуля можно приобрести дополнительные (запасные) измерительные pH-щупы, в пластиковом или стеклянном корпусе.
Калибровка и измерения
При первом включении pH-метра (и в дальнейшем примерно раз в пол года) его нужно откалибровать. Опустите сенсор pH-метра в нейтральный раствор (раствор хлорида калия KCL, его pH = 7.0), который находится в колпачке pH-метра и поворотом многооборотного потенциометра на плате добейтесь напряжения на выходе модуля в 2 В.
Изменение уровня pH исследуемого раствора на 1 pH приводит к изменению напряжения на выходе модуля на 2/7 В. Значит после калибровки напряжение на выходе модуля 2 В соответствует pH = 7, напряжение 0 В соответствует pH = 0, а напряжение 4 В соответствует pH = 14, см. таблицу в разделе «Примечание». Значит для преобразования считанного с модуля уровня напряжения в уровень pH исследуемой жидкости, достаточно разделить это напряжение на 2/7 или умножить на 3,5: U/(2/7) = U*7/2 = U*3,5.
Для измерения pH исследуемого раствора опустите в него сенсор pH-метра и слегка помешайте, подождите стабилизации показаний в течении 30-60 секунд.
Не опускайте сенсор pH-метра в калибровочную жидкость (раствор хлорид калия KCL в колпачке датчика) после проведения измерений щелочных и кислых сред, так как остатки этих жидкостей на сенсоре pH-метра могут изменить pH калибровочной жидкости. Сначала промойте сенсор в проточной воде и стряхните её остатки, после чего оденьте колпачок с калибровочной жидкостью на датчик pH-метра.
Дополнительно
Зависимость напряжений от уровня pH исследуемой жидкости:
pH | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
В | 0 | 0,29 | 0,57 | 0,86 | 1,14 | 1,43 | 1,71 | 2 | 2,29 | 2,57 | 2,86 | 3,14 | 3,43 | 3,71 | 4 |
мВ | 414,12 | 354,96 | 295,8 | 236,64 | 177,48 | 118,32 | 59,16 | 0 | -59,16 | -118,32 | -177,48 | -236,64 | -295,8 | -354,96 | -414,12 |
В вольтах указано напряжение на выходе модуля (после калибровки) которое подаётся на вход Arduino. В милливольтах указано напряжение на выходе датчика (разъема BNC) который подключается к разъему BNC модуля.
Примеры
Вывод в монитор порта значения pH.
#define SensorPin A0 // pH meter Analog output to Arduino Analog Input 0#define Offset -0.00 // Компенсация смещения#define LED 13 // Номер вывода светодиода, который является индикатором нормальной работы скетча#define samplingInterval 20 // Интервал в мс между измерениями#define printInterval 800 // Интервал в мс между выводами показаний#define ArrayLenth 40 // Количество выборокint pHArray[ArrayLenth]; // Массив для определения среднего показания напряжения считанного с датчикаint pHArrayIndex=0; // Индекс элемента массива pHArray значения которого требуется изменить //void setup(void){ // pinMode(LED,OUTPUT); // Конфигурируем вывод светодиода как выход Serial.begin(9600); // Инициируем передачу данных в монитор последовательного порта на скорости 9600 бит/с Serial.println("pH meter experiment!"); // Выводим надпись "pH meter experiment!"} //void loop(void){ // static unsigned long samplingTime = millis(); // Определяем переменную samplingTime для хранения времени прошедшего с момента старта (переменная создаётся при первом проходе цикла loop и не теряется по его завершении) static unsigned long printTime = millis(); // Определяем переменную printTime для хранения времени прошедшего с момента старта (переменная создаётся при первом проходе цикла loop и не теряется по его завершении) static float pHValue, voltage; // Объявляем переменные для хранения значений напряжения и pH// Проводим измерения: // if(millis() - samplingTime > samplingInterval){ // Выполняем код в теле оператора if через каждые samplingInterval мс pHArray[pHArrayIndex++] = analogRead(SensorPin); // Читаем данные в очередной элемент массива pHArray if(pHArrayIndex==ArrayLenth) pHArrayIndex=0; // Если достигли последнего элемента массива pHArray, то сбрасываем номер текущего элемента этого массива в 0 voltage = averagearray(pHArray, ArrayLenth) * 5.0 / 1023; // Получаем среднее напряжение в мВ из массива напряжений pHArray pHValue = 3.5 * voltage + Offset; // Преобразуем мВ в pH samplingTime = millis(); // Обновляем время для переменной samplingTime } //// Выводим показания в монитор: // if(millis() - printTime > printInterval){ // Выполняем код в теле оператора if через каждые printInterval мс Serial.print("Voltage:"); // Выводим надпись "Voltage:" Serial.print(voltage,2); // Выводим среднее напряжение Serial.print(" pH value: "); // Выводим надпись " pH value: " Serial.println(pHValue,2); // Выводим значение pH digitalWrite(LED,digitalRead(LED)^1); // Меняем состояние светодиода printTime = millis(); // Обновляем время для переменной printTime } //} // //// Функция определения среднего значения напряжения // Эта функция возвращает среднее арифметическое значение данных массива arr без учёта одного максимального и одного минимального значения массива.double averagearray(int* arr, int number){ // int i,max,min; // Объявляем переменные для цикла и экстремумов double avg; // Объявляем переменную для вывода среднего значения long amount=0; // Определяем переменную для подсчёта среднего значения if(number<=0){ Serial.println("Error number for the array to avraging!/n"); return 0;} // В массиве arr не может быть 0 и менее элементов if(number< 5){ for(i=0; imax){ amount+=max; max=arr[i]; } // Если значение очередного элемента больше максимального, то добавляем к значению amount предыдущее максимальное значение и обновляем значение max else { amount+=arr[i]; } // Если значение очередного элемента находится в пределах между min и max, то добавляем значение этого элемента к amount } // avg = (double) amount/(number-2); // Получаем среднее арифметическое значение (без учета значений первых двух элементов массива arr, т.к. они не добавлялись к amount) } // return avg; // Возвращаем полученное среднее значение} //
Комплектация
- 1x Датчик с кабелем, колпачком и контрольным раствором;
- 1x Модуль с разъемом BNC;
- 1x Трёхпроводной шлейф для подключения к Arduino;
Ссылки
- DataSheet на официальном сайте;
- Щуп pH-метра E-201-C, BNC (пластиковый) для Arduino.
- Щуп pH-метра E-201-C, BNC (стеклянный) для Arduino.
Оплачивайте покупки удобным способом. В интернет-магазине доступно 3 варианта оплаты:
- Наличные при самовывозе или доставке курьером. Специалист свяжется с вами в день доставки, чтобы уточнить время и заранее подготовить сдачу с любой купюры. Вы подписываете товаросопроводительные документы, вносите денежные средства, получаете товар и чек.
- Безналичный расчет при самовывозе или оформлении в интернет-магазине: карты МИР, Visa и MasterCard. Чтобы оплатить покупку, система перенаправит вас на сервер системы ASSIST. Здесь нужно ввести номер карты, срок действия и имя держателя.
- ЮMoney при онлайн-заказе. Для совершения покупки система перенаправит вас на страницу платежного сервиса. Здесь необходимо заполнить форму по инструкции.
Экономьте время на получении заказа. В интернет-магазине доступно 4 варианта доставки:
- Курьерская доставка работает с 9.00 до 19.00. Когда товар поступит на склад, курьерская служба свяжется для уточнения деталей. Специалист предложит выбрать удобное время доставки и уточнит адрес. Осмотрите упаковку на целостность и соответствие указанной комплектации.
- Самовывоз из магазина. Список торговых точек для выбора появится в корзине. Когда заказ поступит на склад, вам придет уведомление. Для получения заказа обратитесь к сотруднику в кассовой зоне и назовите номер.
- Постамат. Когда заказ поступит на точку, на ваш телефон или e-mail придет уникальный код. Заказ нужно оплатить в терминале постамата. Срок хранения — 3 дня.
- Почтовая доставка через почту России. Когда заказ придет в отделение, на ваш адрес придет извещение о посылке. Перед оплатой вы можете оценить состояние коробки: вес, целостность. Вскрывать коробку самостоятельно вы можете только после оплаты заказа. Один заказ может содержать не больше 10 позиций и его стоимость не должна превышать 100 000 р.