0
КОРЗИНА
0 ТОВАРА
 Датчик кислотности жидкости (pH-метр) для Arduino ардуино
 Датчик кислотности жидкости (pH-метр) для Arduino ардуино

Датчик кислотности жидкости (pH-метр)

Позволяющий определить pH (potentia Hydrogenii) уровень жидкостей Подробнее...
Модификация
Скоро в продаже Артикул: # 863
3232 ₽
Возможен безналичный расчёт для юридических лиц при оформлении заказа
Сообщить о поставке на e-mail:
{{ status }}
  • Доставка товаров по России, Белоруссии, Казахстану
  • Возможен безналичный расчёт для юридических лиц при оформлении заказа
Количество:
Перейти в корзину и оформить заказ.
Telegram
WhatsApp
Обсудить вопросы приобретения, не технические!
*Доступно общение только текстовыми сообщениями, звонки и аудио сообщения не обслуживаются
Онлайн
Описание товара
Подробное описание товара

Общие сведения

Датчик кислотности жидкости (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 ShieldTrema Power ShieldMotor 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 исследуемой жидкости:

pH0123457 891011121314
В00,290,570,861,141,431,7122,292,572,863,143,433,714
мВ414,12354,96295,8236,64177,48118,3259,160-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; i<number; i++){amount+=arr[i];} avg = amount/number; return avg;  // Если в массиве arr менее 5 элементов, то среднее значение является средним арифметическим значением
    }else{                                                                                    // Если в массиве arr более 5 элементов, то среднее значение считаем иначе ...
        if(arr[0]<arr[1]){ min = arr[0]; max=arr[1];}                                         // Определяем минимальное и максимальное число из первых двух элементов массива
        else             { min = arr[1]; max=arr[0];}                                         // Определяем минимальное и максимальное число из первых двух элементов массива
        for(i=2; i<number; i++){                                                              // Проходим по остальным элементам массива
                 if(arr[i]<min){ amount+=min; min=arr[i]; }                                   // Если значение очередного элемента меньше минимального,  то добавляем к значению amount предыдущее минимальное значение  и обновляем значение min
            else if(arr[i]>max){ 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;

Ссылки

Товары
Первой необходимости и другие вещи, которые могут пригодиться!
В наличии
Датчик линии QRD1114 / Аналоговый (Trema-модуль): Сенсор для определения цвета поверхности по шкале от чёрного до белого Подробнее
190
В наличии
Датчик влажности почвы, резистивный: Вы можете следить за влажностью почвы например вашего любимого цветка!) Подробнее
170
В наличии
IMU-сенсор на 9 степеней свободы (Trema-модуль): Определять своё положение в пространстве, а так же угловое ускорения, угловую скорость и индукцию магнитного поля Подробнее
1190
В наличии
TDS/EC-метр для воды с щупом (Trema-модуль Flash-I2C): Солемер и кондуктометр для определения минерализации и электропроводности воды Подробнее
1469
В наличии осталось 3 шт.
ORP-метр, FLASH-I2C: Подробнее
3970
В наличии
Доплеровский датчик движения RCWL-0516: Определять движение объектов (препятствий), которые полностью или частично отражают радиоволны Подробнее
227
В наличии
340
В наличии
340
В наличии
1890
В наличии
Датчик газа MQ-2 - широкого спектра газов (Trema-модуль): Для обнаружения дыма и углеводородногых газов Подробнее
316
Скоро в продаже
284
В наличии
142
В наличии
Датчик вибрации SW-420 (Trema-модуль): Использовать в качестве сигнализаций или для отключения устройств, например паяльника или утюга, которые находятся в состоянии покоя дольше *n* минут. Подробнее
160
Или перейти в корзину и оформить заказ.
Гарантии и возврат Используя сайт Вы соглашаетесь с условями
Есть вопрос?