• Новый номер телефона WhatsApp и Telegram: +7 993 910‑76‑27
  • 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;

    Ссылки

    Товары
    Первой необходимости и другие вещи, которые могут пригодиться!
    Скоро в продаже
    Ультразвуковой дальномер HC-SR04: Сенсор определения расстояния до 4 м по отраженному звуковому сигналу Подробнее
    160
    В наличии
    1890
    Скоро в продаже
    3600
    В наличии
    308
    В наличии
    312
    Скоро в продаже
    80
    В наличии
    Датчик влажности почвы, резистивный: Вы можете следить за влажностью почвы например вашего любимого цветка!) Подробнее
    170
    В наличии осталось 3 шт.
    Резистор давления (12 мм), FSR402: Сопротивление резистора давления снижается с увеличением силы, приложенной к его поверхности. Подробнее
    794
    В наличии
    Датчик Холла (Trema-модуль): Реагирует на магнитные поля Подробнее
    130
    В наличии
    83
    Скоро в продаже
    Датчик качества воздуха CCS811, VOC, eCO2: Определяющий значение eCO2 и значение летучих органических веществ в воздухе (TVOC), Подробнее
    1916
    В наличии
    21
    Скоро в продаже
    Датчик пульса: Аналоговый датчик, позволяющий фиксировать человеческий пульс Подробнее
    483
    870
    В наличии
    468
    Или перейти в корзину и оформить заказ.
    Гарантии и возврат Используя сайт Вы соглашаетесь с условями
    Есть вопрос?