В различных проектах на ардуино, иногда необходимо знать кислотность жидкости, например воды. Кислотность (pH) измеряется в пределах от 1 до 14 pH. Значение в 7 pH считается нормальной средой, все что больше 7 это кислая среда, ниже 7 щелочная среда.
Для измерения значение pH в жидкости используется датчик Gravity Analog pH sensor. Датчик представляет собой управляющую плату с подключаемым электродом.

ВАЖНО! Электрод должен храниться в колпачке. Если его нужно очистить, прополощите в дистелированной воде. Не допускайте высыхания жидкости, это приведет к неверной работе датчика.
Данный модуль работает на шине I2C, что позволяет подключать к ардуино на одну линии до 100 датчиков, предварительно изменив адрес модуля. На заводе изготовителе, все модули программируются на адрес 0x09.
Характеристики датчика pH для ардуино
- VCC (Питание) : 3,3 В или 5 В;
- Потребляемый ток во время работы: до 5 мА.
- Снятие данных: I2C, аналоговый сигнал.
- Диапазон определения кислотности жидкости: от 0 до 14 pH.
- Температура эксплуатации: от 0 до +60 °С.
Схема подключения датчика pH
Пример программы для работы с датчиком
Разработка программного кода для работы с датчиком кислотности жидкости, сводится к работе с библиотекой Iarduino_I2C_ph. Данная библиотека полностью реализует все возможности по управлению модулем. Библиотеку можно скачать ниже в статье.
Изменяем адрес модуля датчика pH
uint8_t newAddress = 0x09; // Назначаемый модулю адрес (0x07 < адрес < 0x7F). #include <iarduino_I2C_pH.h> // Подключаем библиотеку для работы с pH-метром I2C-flash. iarduino_I2C_pH sensor; // Объявляем объект sensor для работы с функциями и методами библиотеки iarduino_I2C_pH. // Если при объявлении объекта указать адрес, например, iarduino_I2C_pH sensor(0xBB), то пример будет работать с тем модулем, адрес которого был указан. void setup(){ Serial.begin(9600); if( sensor.begin() ){ // Инициируем работу с модулем. Serial.print("Найден модуль 0x"); // Serial.println(sensor.getAddress(), HEX); // Выводим текущий адрес модуля. if( sensor.changeAddress(newAddress) ){ // Меняем адрес модуля на newAddress. Serial.print("Адрес изменён на 0x"); // Serial.println(sensor.getAddress(),HEX);// Выводим текущий адрес модуля. }else Serial.println("Адрес не изменён!"); } }else{ Serial.println("Модуль не найден!"); } } void loop(){}
Читаем данные с модуля датчика pH
#include <iarduino_I2C_pH.h> // Подключаем библиотеку для работы с pH-метром I2C-flash. iarduino_I2C_pH sensor(0x09); // Объявляем объект sensor для работы с функциями и методами библиотеки iarduino_I2C_pH, указывая адрес модуля на шине I2C. // Если объявить объект без указания адреса (iarduino_I2C_pH sensor;), то адрес будет найден автоматически. void setup(){ // Serial.begin(9600); // Инициируем работу с шиной UART для передачи данных в монитор последовательного порта на скорости 9600 бит/сек. sensor.begin(); // Инициируем работу с pH-метром I2C-flash. } // // void loop(){ // Serial.print("Кислотность = " ); // Serial.print(sensor.getPH() ,1); // Выводим водородный показатель жидкости с 1 знаком после запятой. Serial.print(" pH.\r\n" ); // delay(1000); // }
Документация
Где купить
- Датчик pH
- Arduino UNO