КОРЗИНА
магазина
8 (499) 500-14-56 | ПН. - ПТ. 12:00-18:00
ЛЕСНОРЯДСКИЙ ПЕРЕУЛОК, 18С2, БЦ "ДМ-ПРЕСС"

Датчик кислотности жидкости (pH-метр), FLASH-I2C, подключаем к Raspberry



Важно: Не протирайте стеклянный наконечник датчика и не касайтесь его руками. Для очистки датчика споласкивайте его в дистиллированной воде. Не допускайте высыхание наконечника датчика. Храните датчик при надетом колпачке заполненном раствором для хранения.

Не допускайте контакта жидкости с выводами GND или VCC модуля во время измерений.

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

Trema модуль pH-метр, Flash-I2C является устройством для измерения водородного показателя жидкости (показателя pH), характеризующего её кислотность. Принято считать, что уровень pH определён диапазоном от 0 до 14, но в действительности у сильно агрессивных сред он может выходить за указанный диапазон.

  • В нейтральной среде pH = 7,0
  • В кислой среде pH < 7,0. Чем агрессивнее кислота, тем ниже pH.
  • В щелочной среде pH > 7,0. Чем агрессивнее щёлочь, тем выше pH.

Модуль относится к серии «Flash», а значит к одной шине I2C можно подключить более 100 модулей, так как их адрес на шине I2C (по умолчанию 0x09), хранящийся в энергонезависимой памяти, можно менять программно.

Модуль можно использовать для анализа жидкостей используемых в аквариумах, колодцах, для полива растений и т.д.

Видео:

Спецификация:

  • Напряжение питания: 3,3 В или 5 В, поддерживаются оба напряжения.
  • Ток потребляемый модулем: до 5 мА.
  • Интерфейс: I2C.
  • Скорость шины I2C: 100 кбит/с.
  • Адрес на шине I2C: устанавливается программно (по умолчанию 0x09).
  • Уровень логической 1 на линиях шины I2C: Vcc (толерантны к 5В).
  • Диапазон измерений водородного показателя: от 0 до 14 pH.
  • Рабочая температура: от 0 до +60 °С.
  • Габариты: 30 х 30 мм.
  • Вес: 9 г.

Все модули линейки "Trema" выполнены в одном формате

Подключение:

Модуль подключается к шине I2C Raspberry.

По умолчанию все модули FLASH-I2C имеют установленный адрес 0х09.

— Перед подключением 1 модуля к шине I2C настоятельно рекомендуется изменить адрес модуля.

— При подключении 2 и более FLASH-I2C модулей к шине необходимо в обязательном порядке предварительно изменить адрес каждого модуля, после чего уже подключать их к шине.

Более подробно о том, как это сделать, а так же о многом другом, что касается работы FLASH-I2C модулей, вы можете прочесть в этой статье.

У модуля имеются три колодки выводов: разъем I2C (GND, Vcc, SDA, SCL), разъем A (G, V, S) и разъем посередине платы используемый для подключения датчика.

  • SCL - вход/выход линии тактирования шины I2C.
  • SDA - вход/выход линии данных шины I2C.
  • S (Signal) - аналоговый выход.
  • Vcc - вход питания от 3,3 до 5 В (вывод VCC соединён с выводом V).
  • GND - общий вывод питания (вывод GND соединён с выводом G).

Колодка A позволяет подключить модуль к аналоговому входу Arduino.

Колодка I2C используется для подключения модуля к шине I2C.

Модуль удобно подключать 2 способами, в зависимости от ситуации:

Способ - 1: Используя провода и Raspberry Pi

Используя провода «Мама — Мама», подключаем  напрямую к Raspberry Pi

В этом случае необходимо питать логическую часть модуля от 3,3 В Raspberry

Способ - 2: Используя Trema+Expander Hat

Используя 4-х проводной шлейф, подключаем к Trema+Expander Hat.

Питание:

Входное напряжение питания модуля 3,3В или 5В постоянного тока (поддерживаются оба напряжения питания), подаётся на выводы Vcc и GND.

Подробнее о модуле:

Модуль построен на базе микроконтроллера STM32F030F4, операционного усилителя LMC7101, снабжён кнопкой калибровки, светодиодами информирующими о стадии калибровки, и собственным стабилизатором напряжения. Модуль способен определять водородный показатель pH в диапазоне от 0 до 14 и работать с различными датчиками, подключаемыми к разъему в центре платы.

Принцип действия модуля основан на измерении величины ЭДС электродной системы, значение которой пропорционально водородному показателю pH = -Lg[H+]. Отклонение потенциала с выхода датчика от подведённого к его входу на 59,16 мВ равносильно отклонению водородного показателя жидкости на 1 pH. Сигнал с датчика усиливается в 3 раза операционным усилителем и поступает, как на микроконтроллер модуля, так и на аналоговый выход модуля.

При погружении датчика в нейтральную жидкость (pH=7,0), напряжение на аналоговом выходе модуля устанавливается в 1,65В (половина от 3,3В). Увеличение напряжения аналогового выхода на 177,48мВ (59,16мВ усиленные в 3 раза) указывает о снижении водородного показателя на 1,0 от нейтральных 7,0 pH. Соответственно уменьшение напряжения на аналоговом выходе модуля указывает о увеличении водородного показателя жидкости в тех же пропорциях.

Модуль следует калибровать, как в процессе эксплуатации, так и после каждой замены датчика (если таковые будут выполняться).

Модуль позволяет:

  • Менять свой адрес на шине I2C.
  • Управлять внутренней подтяжкой линий шины I2C (по умолчанию включена).
  • Узнать версию прошивки модуля.
  • Указать водородный показатель жидкостей используемых для калибровки.
  • Выполнить калибровку модуля как кнопкой на плате, так и по шине I2C.
  • Узнать водородный показатель жидкости в которую погружен датчик.
  • Узнать значения используемые модулем при вычислениях pH.
  • Изменить некоторые значения используемые модулем при вычислениях pH.

Для работы с Trema модулем pH-метр Flash-I2C, предлагаем воспользоваться разработанной нами библиотекой pyiArduinoI2Cph позволяющей реализовать все возможности модуля.

Подробнее об установке библиотек можно узнать в этой статье.

Проведение измерений:

Перед измерениями подготовьте датчик модуля к работе. Снимите колпачок содержащий буферную жидкость с датчика. Сполосните датчик модуля в дистиллированной воде, смыв остатки буферной жидкости.

Опустите датчик в исследуемую жидкость, при этом стеклянный наконечник датчика должен быть полностью погружён в жидкость.

Рекомендуется выждать не менее минуты с момента погружения датчика до проведения замеров.

Не протирайте стеклянный наконечник датчика и не касайтесь его руками.

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

Модуль следует калибровать, как в процессе эксплуатации, так и после каждой замены датчика (если таковые будут выполняться).

Важно: Жидкость в которую погружается датчик не должна контактировать с потенциалами источника питания модуля.

При контакте жидкости с выводом GND, показания pH-метра значительно увеличатся.

При контакте жидкости с выводом VCC, показания pH-метра значительно уменьшатся.

Это справедливо даже при контактах жидкости через высокоомные сопротивления.

Если в жидкость погружены датчики pH-метра и TDS-метра, то не менее чем за минуту до начала измерений водородного показателя, необходимо извлекать датчик TDS-метра из жидкости, или отключать оба вывода этого датчика от модуля TDS при помощи электромагнитного реле.

Стоит избегать и одновременной работы pH-метра с металлическими термометрами, корпуса которых не изолированы от потенциалов питания. Или извлекать такие термометры из жидкости не менее чем за минуту до начала измерений водородного показателя.

Калибровка модуля кнопкой:

Калибровка при помощи кнопки на плате модуля выполняется при наличии двух калибровочных (буферных) жидкостей, с водородными показателями 4,0pH и 9.18pH. Обе жидкости должны иметь температуру при которой планируется выполнять дальнейшие измерения. Нужно выполнить следующие действия:

  • Сполоснуть датчик в дистиллированной воде.
  • Опустить датчик в первую калибровочную жидкость с pH = 4,0.
  • Подождать примерно 5 минут.
  • Нажать на кнопку «калибровка». Начнёт мигать светодиод под номером 1.
  • Подождать пока не начнут перемигиваться 1 и 2 светодиоды.
  • Стряхнуть с датчика остатки капель и сполоснуть его в дистиллированной воде.
  • Опустить во вторую калибровочную жидкость с pH = 9,18.
  • Подождать примерно 5 минут.
  • Нажать на кнопку «калибровка». Начнёт мигать светодиод под номером 2.
  • Подождать пока не погаснут оба светодиода.

Водородные показатели калибровочных жидкостей (по умолчанию 4,0pH и 9.18pH) можно изменить обратившись к функции setKnownPH(). Изменение сохранится и после отключения питания.

Примеры:

В данном разделе раскрыты примеры работы с модулем при использовании библиотеки pyiArduinoI2Cph.

Для работы с модулем необходимо включить шину I2C.

Ссылка на подробное описание как это сделать.

Для подключения библиотеки необходимо сначала её установить. Сделать это можно в менеджере модулей в Thonny Python IDE (тогда библиотека установится локально для этого IDE), в виртуальной среде командой pip3 install pyiArduinoI2Cph или в терминале Raspberry (тогда библиотека будет системной) командой:

sudo pip3 install pyiArduinoI2Cph

Подробнее об установке библиотек можно узнать в этой статье.

Смена адреса модуля на шине I2C:

Пример меняет текущий адрес модуля шины I2C на указанный в скрипте и сохраняет его в энергонезависимую память, значит адрес сохранится и после отключения питания. Для работы скрипта не требуется знать какой сейчас адрес у модуля.

# Подключаем библиотеку для работы с датчиком температуры и влажности
from pyiArduinoI2Cph import *
import sys

# Объявляем объект module для работы с функциями и методами библиотеки pyiArduinoI2Cph.
# Если при объявлении объекта указать адрес, например, module(0x0B),
# то пример будет работать с тем модулем, адрес которого был указан.
module = pyiArduinoI2Cph(None, NO_BEGIN)

# Если сценарию не были переданы аргументы
if len(sys.argv) < 2:
    # Назначаем модулю адрес (0x07 < адрес < 0x7F).
    newAddress = 0x09

# Иначе
else:
    # Новый адрес - первый аргумент
    tmp = int(sys.argv[1])
    if tmp > 6:
        newAddress = tmp

# Если датчик найден
if module.begin():
    print("Найден датчик %#.2x" % module.getAddress())

    # Если адрес удалось изменить
    if module.changeAddress(newAddress):
            print("Адрес изменён на %#.2x" % module.getAddress())

    else:
            print("Адрес не изменён!")

else:
    print("Датчик не найден!")

Для работы данного примера, на шине I2C должен быть только один модуль.

Данный скрипт демонстрирует не только возможность смены адреса на указанный в переменной newAddress, но и обнаружение, и вывод текущего адреса модуля на шине I2C.

Получение данных от модуля:

Данный пример демонстрирует получение водородного показателя жидкости.

from time import sleep
# Подключаем библиотеку   для работы с pH-метром I2C-flash.
from pyiArduinoI2Cph import *

#   Объявляем объект sensor для работы с функциями и методами библиотеки pyiArduinoI2Cph, указывая адрес модуля на шине I2C.
sensor = pyiArduinoI2Cph(0x09)

while True:
    print("Кислотность = ", end='')

    #   Выводим водородный показатель жидкости с 1 знаком после запятой.
    print(sensor.getPH(), end='')

    print(" pH.")
    sleep(1)

Водородный показатель жидкости выводится в stdout.

Калибровка модуля без кнопки:

Пример позволяет выполнить калибровку модуля без нажатия на кнопку «калибровка».

from time import sleep

#   Подключаем библиотеку   для работы с pH-метром I2C-flash.
from pyiArduinoI2Cph import *

#   Объявляем объект sensor для работы с функциями и методами библиотеки pyiArduinoI2Cph, указывая адрес модуля на шине I2C.
sensor = pyiArduinoI2Cph(0x09)

print("ОПУСТИТЕ ДАТЧИК В 1 ЖИДКОСТЬ (4.00 pH). ")

#   Ждём 5 минут.
sleep(300)

#   Выполняем 1 стадию калибровки указав известную концентрацию 1 жидкости (в примере 4.0 pH ).
sensor.setCalibration(1, 4.00 )

#   Ждём 10 секунд.
sleep(10)

print("СПОЛОСНИТЕ ДАТЧИК.")

#   Ждём 30 секунд.
sleep(30)

print("ОПУСТИТЕ ДАТЧИК В 2 ЖИДКОСТЬ (9.18 ppm).")

#   Ждём 5 минут.
sleep(300)

#   Выполняем 2 стадию калибровки указав известную концентрацию 2 жидкости (в примере 9.18 pH ).
sensor.setCalibration(2, 9.18 )

#   Ждём 10 секунд.
sleep(10)

print("КАЛИБРОВКА ВЫПОЛНЕНА!")

Для калибровки модуля требуется наличие двух калибровочных жидкостей с разными известными водородными показателями. Нужно выполнить следующие действия:

  • Опустить датчик в первую калибровочную жидкость.
  • Подождать около 5 минут.
  • Обратиться к функции setCalibration() указав стадию калибровки 1 и pH первой жидкости.
  • Подождать пока не начнут перемигиваться 1 и 2 светодиоды.
  • Стряхнуть с датчика остатки капель и сполоснуть его в дистиллированной воде.
  • Опустить во вторую калибровочную жидкость.
  • Подождать около 5 минут.
  • Обратиться к функции setCalibration() указав стадию калибровки 2 и pH второй жидкости.
  • Подождать пока не погаснут оба светодиода.

Указанные функцией setCalibration() водородные показатели калибровочных жидкостей могут отличаться от приведённых в скрипте. Функция позволяет воспользоваться любыми имеющимися у вас калибровочными жидкостями, pH которых лежит в диапазоне от 0 до 14. Эти значения не сохраняются в памяти модуля и используются только во время обращения к функции.

Настройка калибровки модуля кнопкой:

По умолчанию для калибровки модуля кнопкой необходимы две буферные жидкости с заданными водородными показателями: 4.00pH (первая жидкость) и 9.18pH (вторая жидкость).

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

#   Подключаем библиотеку   для работы с pH-метром I2C-flash.
from pyiArduinoI2Cph import *

#   Объявляем объект sensor для работы с функциями и методами библиотеки pyiArduinoI2Cph, указывая адрес модуля на шине I2C.
sensor = pyiArduinoI2Cph(0x09)

#   Устанавливаем водородный показатель 1 жидкости для калибровки модуля кнопкой от 0 до 14,000 pH.
sensor.setKnownPH (1, 4.00)

#   Устанавливаем водородный показатель 2 жидкости для калибровки модуля кнопкой от 0 до 14,000 pH.
sensor.setKnownPH (2, 9.18)

Данный скрипт не выполняет калибровку, он указывает новые значения калибровочных жидкостей, которые должны использоваться для всех последующих калибровок модуля кнопкой.

После загрузки данного скрипта, калибровка модуля кнопкой будет осуществляться при помощи буферных жидкостей с водородными показателями 5.00pH (первая жидкость) и 6.00pH (вторая жидкость), даже после отключения питания.

Функция setKnownPH() позволяет указать модулю какими калибровочными жидкостями  вы желаете пользоваться при калибровке модуля кнопкой.

Получение настроек модуля:

Пример выводит различные значения используемые модулем для вычислений.

#   Подключаем библиотеку   для работы с pH-метром I2C-flash.
from pyiArduinoI2Cph import *

#   Объявляем объект sensor для работы с функциями и методами библиотеки pyiArduinoI2Cph, указывая адрес модуля на шине I2C.
sensor = pyiArduinoI2Cph(0x09)

print("pH1  = "            , end='')        #
print(sensor.getKnownPH(1) , end='')        #   Выводим требуемый водородный показатель 1 жидкости для калибровки модуля кнопкой от 0 до 14,000 pH.
print("pH.\r\npH2  = "     , end='')        #
print(sensor.getKnownPH(2) , end='')        #   Выводим требуемый водородный показатель 2 жидкости для калибровки модуля кнопкой от 0 до 14,000 pH.
print("pH.\r\nKy   = "     , end='')        #
print(sensor.getKy()       , end='')        #   Выводим коэффициент усиления операционного усилителя от 1 до 65,535.
print("\r\nVstp = "        , end='')        #
print(sensor.getVstp()     , end='')        #   Выводим шаг смещения напряжения датчика от 0,01 мВ до 655,35 мВ при смещении кислотности на 1 pH.
print("мВ.\r\npHn  = "     , end='')        #
print(sensor.getPHn()      , end='')        #   Выводим нейтральную кислотность для датчика от 0 до 14,000 pH.
print("pH.\r\n"            , end='')        #

  • pH1 - Требуемый pH первой калибровочной жидкости для калибровки кнопкой.
  • pH2 - Требуемый pH второй калибровочной жидкости для калибровки кнопкой.
  • Ky - Коэффициент усиления ОУ.
  • Vstp - Шаг изменения напряжения датчика при изменении pH на 1,0.
  • pHn - Нейтральный водородный показатель, при котором напряжение датчика равно нулю.
  • В примере не указаны функции getVin(), getVout() и getVn() для получения напряжения на входе датчика Vin, напряжения на выходе модуля Vout и нейтрального напряжения на выходе модуля Vn. Нейтральное напряжение на выходе модуля показывает, каким должно быть напряжение на аналоговом выходе модуля при нейтральном pH=7,0.

Описание функций библиотеки:

В данном разделе описаны функции библиотеки pyiArduinoI2Cph для работы с Trema модулем pH-метр, Flash-I2C на Raspberry Pi.

Подключение библиотеки:

  • Если адрес модуля известен (в примере используется адрес 0x09):
# Подключаем библиотеку для работы с модулем.
from pyiArduinoI2Cph import *

# Создаём объект module для работы с функциями и методами библиотеки iarduino_I2C_4LED, указав адрес модуля на шине I2C (0x09).
module = pyiArduinoI2Cph(0x09)
  • Если адрес модуля неизвестен (адрес будет найден автоматически):
# Подключаем библиотеку для работы с модулем.
from pyiArduinoI2Cph import *

# Создаём объект module для работы с функциями и методами библиотеки iarduino_I2C_4LED, без указания адреса.
module = pyiArduinoI2Cph()
  • При создании объекта без указания адреса, на шине должен находиться только один модуль.

Функция begin()

  • Назначение: Инициализация работы с модулем.
  • Синтаксис: begin()
  • Параметры: Нет.
  • Возвращаемое значение: результат инициализации (True или False).
  • Примечание: По результату инициализации можно определить наличие модуля на шине.
  • Пример:
if sensor.begin():
    print( "Модуль найден и инициирован!" )
else
    print( "Модуль не найден на шине I2C" )

Функция reset()

  • Назначение: Перезагрузка модуля.
  • Синтаксис: reset()
  • Параметры: Нет.
  • Возвращаемое значение: результат перезагрузки (True или False).
  • Пример:
if sensor.reset():
    print( "Модуль перезагружен" )
else:
    print( "Модуль не перезагружен" )

Функция changeAddress()

  • Назначение: Смена адреса модуля на шине I2C.
  • Синтаксис: changeAddress( АДРЕС )
  • Параметры:
    • АДРЕС - новый адрес модуля на шине I2C (целое число от 0x08 до 0x7E)
  • Возвращаемое значение: результат смены адреса (True или False).
  • Примечание: Текущий адрес модуля можно узнать функцией getAddress().
  • Пример:
if sensor.changeAddress(0x12):
    print( "Адрес модуля изменён на 0x12" )
else:
    print( "Не удалось изменить адрес"    )

Функция getAddress()

  • Назначение: Запрос текущего адреса модуля на шине I2C.
  • Синтаксис: getAddress()
  • Параметры: Нет.
  • Возвращаемое значение: АДРЕС - текущий адрес модуля на шине I2C (от 0x08 до 0x7E)
  • Примечание: Функция может понадобиться если адрес модуля не указан при создании объекта, а обнаружен библиотекой.
  • Пример:
print(
        "Адрес модуля на шине I2C = ".format(

            sensor.getAddress()

            )
        )

Функция getVersion()

  • Назначение: Запрос версии прошивки модуля.
  • Синтаксис: getVersion()
  • Параметры: Нет
  • Возвращаемое значение: ВЕРСИЯ - номер версии прошивки от 0 до 255.
  • Пример:
print(
        "Версия прошивки модуля {}".format(

            sensor.getVersion()

            )
        )

Функция setPullI2C()

  • Назначение: Управление внутрисхемной подтяжкой линий шины I2C.
  • Синтаксис: setPullI2C( [ФЛАГ] )
  • Параметры:
    • ФЛАГ требующий установить внутрисхемную подтяжку линий шины I2C (True или False).
  • Возвращаемое значение:
    • результат включения / отключения внутрисхемной подтяжки (True или False).
  • Примечание:
    • Вызов функции без параметра равносилен вызову функции с параметром True - установить.
    • Флаг установки внутрисхемной подтяжки сохраняется в энергонезависимую память модуля, а значит будет действовать и после отключения питания.
    • Внутрисхемная подтяжка линий шины I2C осуществляется до уровня 3,3 В, но допускает устанавливать внешние подтягивающие резисторы и иные модули с подтяжкой до уровня 3,3 В или 5 В, вне зависимости от состояния внутрисхемной подтяжки модуля.
  • Пример:
if sensor.setPullI2C(True ):
    print( "Внутрисхемная подтяжка установлена." )

if sensor.setPullI2C(False):
    print( "Внутрисхемная подтяжка отключена."   )

Функция getPullI2C()

  • Назначение: Запрос состояния внутрисхемной подтяжки линий шины I2C.
  • Синтаксис: getPullI2C()
  • Параметры: Нет.
  • Возвращаемое значение: - ФЛАГ включения внутрисхемной подтяжки (True или False).
  • Пример:
if sensor.getPullI2C():
    print( "Внутрисхемная подтяжка включена."  )

else:
    print( "Внутрисхемная подтяжка отключена." )

Функция getPH()

  • Назначение: Запрос водородного показателя жидкости.
  • Синтаксис: getPH()
  • Параметры: Нет.
  • Возвращаемое значение: водородный ПОКАЗАТЕЛЬ жидкости от 0.0 до 14.0 pH.
  • Пример:
print(
        "Кислотность = {} pH".format(

            sensor.getPH()

            )
        )

Функция setCalibration()

  • Назначение: Выполнение калибровки модуля без нажатия на кнопку «калибровка».
  • Синтаксис: setCalibration( СТАДИЯ , ПОКАЗАТЕЛЬ )
  • Параметры:
    • СТАДИЯ калибровки 1 или 2.
    • водородный ПОКАЗАТЕЛЬ жидкости используемой для калибровки от 0.0 до 14.0 pH.
  • Возвращаемое значение:
    • результат запуска указанной стадии калибровки (True или False).
  • Примечание:
    • Ранее описан метод калибровки модуля при помощи кнопки. Вместо первого нажатия на кнопку вызывается функция с указанием 1 стадии калибровки, а вместо второго нажатия на кнопку вызывается функция с указанием 2 стадии калибровки.
    • В отличии от калибровки кнопкой, функция позволяет указывать известный водородный показатель жидкости используемой для калибровки на 1 и 2 стадии.
    • Водородные показатели жидкостей 1 и 2 стадии должны быть разными.
  • Пример:
# Выполняем 1 стадию калибровки указав pH жидкости (в примере 4,5pH).
sensor.setCalibration( 1, 5.5 )

# Ждём 1 минуту.
sleep(60);

# Выполняем 2 стадию калибровки указав pH жидкости (в примере 9,5pH).
sensor.setCalibration( 2, 9.5 )

Функции настройки модуля:

В данном разделе описаны функции настройки работы модуля. Модуль использует различные коэффициенты и значения для вычислений. По умолчанию они установлены в стандартные значения и не требуют изменений.

Важно: Все значения устанавливаемые функциями настройки модуля сохраняются в энергонезависимую память модуля, а значит действуют и после отключения питания!

Функция setKy()

  • Назначение: Установка коэффициента усиления усилителя.
  • Синтаксис: setKy( КОЭФФИЦИЕНТ )
  • Параметры:
    • КОЭФФИЦИЕНТ усиления усилителя от 1 до 65,535.
  • Возвращаемое значение:
    • результат применения нового коэффициента (True или False).
  • Примечание:
    • Значение по умолчанию 3,000.
    • Коэффициент усиления операционного усилителя определяется резистивным делителем на плате модуля. Значение устанавливаемое данной функцией будет использоваться модулем при вычислениях pH, но не изменит реальный коэффициент усиления ОУ.
    • Точное значение коэффициента усиления можно вычислить по формуле Ky = Vout / Vin, при условии что датчик отключён от модуля, а выводы BNC разъема модуля электрически замкнуты. Значения Vout и Vin можно получить функциями getVout() и getVin().
    • После изменения Ky необходимо произвести калибровку модуля.
  • Пример:
# Корректируем значение коэффициента усиления операционного усилителя.
sensor.setKy( 3.02 )

Функция getKy()

  • Назначение: Запрос коэффициента усиления усилителя.
  • Синтаксис: getKy()
  • Параметры: Нет.
  • Возвращаемое значение: КОЭФФИЦИЕНТ усиления усилителя от 1 до 65,535.
  • Пример:
print(
        "Модуль использует Ky = {}".format(

            sensor.getKy()

            )
        )

Функция setVstp()

  • Назначение: Установка шага изменения напряжения датчика.
  • Синтаксис: setVstp( НАПРЯЖЕНИЕ )
  • Параметры:
    • НАПРЯЖЕНИЕ датчика соответствующее шагу в 1 pH, значение от 0,01 до 655,35 мВ.
  • Возвращаемое значение:
    • результат применения нового напряжения (True или False).
  • Примечание:
    • Значение по умолчанию 59,16 мВ.
    • Данное значение указывает на сколько изменится напряжение с датчика при изменении водородного показателя жидкости на 1,0 pH.
    • Модуль самостоятельно определяет и сохраняет значение Vstp в процессе калибровки.
  • Пример:
# Указываем модулю новое значение Vstp в мВ.
sensor.setVstp( 60.0 )

Функция getVstp()

  • Назначение: Запрос шага изменения напряжения датчика.
  • Синтаксис: getVstp()
  • Параметры: Нет.
  • Возвращаемое значение: НАПРЯЖЕНИЕ шага датчика в 1 pH, от 0,01 мВ до 655,35 мВ.
  • Пример:
print(
        "Модуль использует Vstp = {} мВ".format(

            sensor.getVstp()

            )
        )

Функция getVin()

  • Назначение: Запрос напряжения поданного на вход датчика.
  • Синтаксис: getVin()
  • Параметры: Нет.
  • Возвращаемое значение: НАПРЯЖЕНИЕ на входе датчика, от 0 В до 6,5535 В.
  • Примечание:
    • Напряжение на входе датчика устанавливается резистивными делителями и должно соответствовать значению: 3.3 В / 2 / Ky = 3.3/2/3 = 0.55 В.
    • Функция возвращает не расчётное, а реальное напряжение на входе датчика.
  • Пример:
print(
        "На вход датчика подано "
        "напряжение Vin = {} В".format(

            sensor.getVin()

            )
        )

Функция getVout()

  • Назначение: Запрос напряжения на аналоговом выходе модуля.
  • Синтаксис: getVout()
  • Параметры: Нет.
  • Возвращаемое значение: НАПРЯЖЕНИЕ на выходе модуля, от 0 В до 6,5535 В.
  • Примечание: Напряжение на аналоговый выход модуля подаётся с выхода операционного усилителя, вход которого подключён к выходу датчика.
  • Пример:
print(
        "Напряжение на аналоговом "
        "выходе модуля Vout = {} В".format(

            sensor.getVout()

            )
        )

Функция getVn()

  • Назначение: Запрос нейтрального напряжения на аналоговом выходе модуля.
  • Синтаксис: getVn()
  • Параметры: Нет.
  • Возвращаемое значение: НАПРЯЖЕНИЕ на выходе модуля при нейтральном pH=0,7.
  • Примечание:
    • Нейтральное напряжение на выходе модуля Vn показывает каким должно быть напряжение Vout при нейтральном водородном показателе жидкости = 7,0 pH.
    • Vn = Vin * Ky = 0.55 * 3 = 1.65. Что соответствует половине от 3,3 В.
  • Пример:
print(
        "Напряжение на аналоговом выходе модуля "
        "при 7,0 pH должно быть равно {} В".format(

            sensor.getVn()

            )
        )

Функция setPHn()

  • Назначение: Установка нейтрального водородного показателя для датчика.
  • Синтаксис: setPHn( ПОКАЗАТЕЛЬ )
  • Параметры:
    • водородный ПОКАЗАТЕЛЬ жидкости при котором напряжение датчика равно 0, значение от 0 до 14,0 pH.
  • Возвращаемое значение:
    • результат применения нового нейтрального pH датчика (True или False).
  • Примечание:
    • Нейтральный водородный показатель жидкости равен 7,0 pH.
    • Нейтральный водородный показатель жидкости для датчика это pH нулевой точки, такой водородный показатель при котором напряжение датчика равно нулю.
    • При погружении датчика в нейтральную среду (pH=7,0), потенциалы на входе и выходе датчика должны быть одинаковыми (напряжение датчика равно 0) - нулевая точка. Но в процессе старения датчика его нулевая точка смещается, и напряжение датчика будет равно нулю при водородном показателе жидкости отличном от 7,0 pH, это значение и является нейтральным водородным показателем для датчика pHn.
    • Модуль самостоятельно определяет и сохраняет значение pHn в процессе калибровки.
  • Пример:
# Указываем модулю новое значение pHn.
sensor.setPHn( 7.02 )

Функция getPHn()

  • Назначение: Запрос нейтрального водородного показателя для датчика.
  • Синтаксис: getPHn()
  • Параметры: Нет.
  • Возвращаемое значение: водородный ПОКАЗАТЕЛЬ жидкости, от 0,0 pH до 14,0 pH.
  • Пример:
print(
        "Модуль использует pHn = {} pH".format(

            sensor.getPHn()

            )
        )

Функция setKnownPH()

  • Назначение: Установка водородных показателей жидкостей для калибровки модуля кнопкой.
  • Синтаксис: setKnownPH( СТАДИЯ , ПОКАЗАТЕЛЬ )
  • Параметры:
    • СТАДИЯ калибровки 1 или 2.
    • водородный ПОКАЗАТЕЛЬ жидкости используемой для калибровки от 0 до 14.0 pH.
  • Возвращаемое значение:
    • результат применения нового pH калибровочной жидкости (True или False).
  • Примечание:
    • По умолчанию на 1 стадии калибровки используется жидкость с 4,0 pH.
    • По умолчанию на 2 стадии калибровки используется жидкость с 9,18 pH.
    • В процессе калибровки датчик опускают в 1 жидкость (4,0 pH), нажимают на кнопку, опускают датчик во 2 жидкость (9,18 pH) и опять нажимают на кнопку.
    • Данная функция позволяет изменить водородные показатели жидкостей используемых на 1 или 2 стадии калибровки модуля кнопкой.
  • Пример:
# Указываем модулю, что на 1 стадии используется жидкость с 5,5 pH.
tds.setKnownPH( 1, 5.5 )

# Указываем модулю, что на 2 стадии используется жидкость с 9,5 pH.
tds.setKnownPH( 2, 9.5 )

Функция getKnownPH()

  • Назначение: Запрос требуемого водородного показателя жидкости для калибровки кнопкой.
  • Синтаксис: getKnownPH( СТАДИЯ )
  • Параметры: Нет.
    • СТАДИЯ калибровки 1 или 2.
  • Возвращаемое значение:  требуемый водородный ПОКАЗАТЕЛЬ жидкости от 0 до 14.0 pH.
  • Пример:
print(
        "Для калибровки модуля кнопкой "
        "требуются жидкости с pH = {} и {}".format(

                tds.getKnownPH(1)
                tds.getKnownPH(2)

                )
        )

Ссылки:




Обсуждение

Гарантии и возврат Используя сайт Вы соглашаетесь с условями