Как собрать и спаять модуль измерения pH на основе ADS1115: от теории к рабочему прототипу

Если вы ищете эту статью, значит, вам нужно измерять pH. Не просто «померить», а сделать это получше, чем дешевые китайские модули, которые часто врут или требуют вечной настройки. Вы, скорее всего, уже знаете основы электроники: умеете держать паяльник в руке, знаете, что такое макетная плата и что такое микроконтроллер (Arduino, ESP32 или STM32).

Проблема в том, что готовые модули часто содержат некачественные компоненты, а схемы из интернета могут быть размыты или содержать ошибки. Здесь я расскажу, как собрать этот модуль самостоятельно, используя ADS1115. Это не просто «соединяем провода», это про понимание того, как превратить невидимый химический сигнал в точные цифры.

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

Почему именно ADS1115 и не обычный АЦП?

Давайте сразу разберемся с главным вопросом: зачем усложнять жизнь и использовать внешний преобразователь, если у Arduino есть встроенный АЦП?

У встроенного аналого-цифрового преобразователя (АЦП) микроконтроллера есть существенный недостаток для задач pH — это разрядность и шум. Стандартный Arduino (ATmega328P) имеет 10-битный АЦП. Это значит, что он делит диапазон 0–5 вольт на 1024 шага. Один шаг (единица младшего разряда) равен примерно 4.88 мВ. В мире pH напряжение меняется очень тонко, и такая «лесенка» для него слишком грубая.

ADS1115 — это 16-битный АЦП с программируемым усилителем (PGA). Он делит тот же диапазон на 65 536 шагов. Но самое главное — у него есть встроенный усилитель. Это позволяет нам настроить входящий сигнал так, чтобы он занимал весь диапазон измерения АЦП, а не только его часть. Это дает нам в разы лучшее разрешение и точность.

Для pH-метра важно измерять напряжение с точностью до милливольт, а в идеале — до десятых долей милливоля, так как 1 единица pH соответствует изменению потенциала примерно на 59.16 мВ (при 25°C). Если ваш шаг измерения составляет 5 мВ, вы не сможете различить pH 6.9 от pH 7.0. ADS1115 решает эту проблему.

Что нам понадобится: список компонентов

Чтобы собрать качественный модуль, нам нужно не просто «купить что-то», а выбрать правильные детали. В электронике для измерений мелочей не бывает. Паразитные утечки или плохой контакт могут испортить всё.

1. Микросхема ADS1115

Лучше брать именно микросхему в корпусе SOT-23-6 или SOIC-8, чтобы спаять её самому на плату. Это даст вам контроль над качеством пайки. Если паять сложно, можно взять готовый модуль ADS1115, но тогда вы привяжете себя к размерам именно этого модуля и его трассировке. Для профессионального подхода лучше печатная плата (PCB).

2. Операционный усилитель (ОУ)

Здесь кроется главная ошибка новичков. Электрод pH генерирует очень высокое внутреннее сопротивление (часто сотни МОм) и крайне слабый ток. Обычный усилитель типа LM358 или LM741 просто «затянет» этот сигнал на землю своим входным током, и вы ничего не измерите.

Вам нужен ОУ с КМОП-входом или входом с изоляцией на полевых транзисторах (FET). Входной ток такого усилителя должен быть в пикоамперах или фемтоамперах.

Идеальные варианты: MCP6002 (двойной, дешевый, доступный), TL072 (хороший, но устаревший), OPA2134 (премиум). Для начала берите MCP6002 — он дешевый и отлично подходит для этих задач.

3. Резисторы и конденсаторы

Любые резисторы, кроме прецизионных, имеют допуск. Если вы берете резисторы с допуском 5% (обычно цветные полоски), вы вносите ошибку в калибровку. Используйте резисторы с допуском 1% (обычно коричневая полоска) и температурным коэффициентом 100 ppm или меньше.

Материал корпуса: SMD 0805 или 1206. Мелкие 0406 или 0201 лучше не ставить, если вы не хотите постоянно их сжигать или терять.

4. Разъем для электрода

Никогда не паяйте провод от pH-электрода напрямую к плате! Электроды — дорогие и хрупкие. Вам нужен качественный разъем. Стандарт для лабораторных pH-электродов — это BNC. Для бытовых или самодельных часто используют мини-джек 3.5 мм или специализированные 4-контактные разъемы (Glaser). Если вы делаете устройство на чашке, лучше использовать разъемы на винтовой колодке для подключения проводов от сенсора.

Схема подключения: сердце системы

Давайте разберем логику работы. Сигнал от электрода pH — это напряжение. Но оно не просто приходит к микроконтролеру. Ему нужно пройти через «усилитель». Почему? Потому что АЦП ADS1115 работает в диапазоне от 0 до 5В (или меньше), а сигнал от электрода может быть отрицательным (например, -414 мВ при pH 14) или положительным (около +414 мВ при pH 0).

Вам нужна схема, которая:

  1. Не нагружает электрод (высокое входное сопротивление).
  2. Смещает сигнал в положительную область (чтобы АЦП мог его прочитать, так как он не читает отрицательные напряжения от земли).
  3. Усиливает сигнал до нужного диапазона.

Схема на MCP6002 (Усилитель)

Мы будем использовать конфигурацию повторитель напряжения с смещением (Voltage Follower with Bias). Это самый надежный вариант.

Как это работает:

  • Входной сигнал с электрода (через высокоомный резистор 10 МОм для защиты) приходит на неинвертирующий вход (+) ОУ. Поскольку входной ток ОУ ничтожно мал, он не «протянет» сигнал.
  • Второй вход (инвертирующий, -) замыкается на выход. Это создает единичное усиление (1x). Мы просто копируем напряжение, но с огромной силой тока, достаточной для АЦП.
  • Важный момент: ОУ MCP6002 работает от одного источника питания (например, 3.3В или 5В). Он не может выдать отрицательное напряжение. Поэтому нам нужно «поднять» землю (сигнальную точку) на половину напряжения питания (Vcc/2). Создаем искусственную нулевую точку.

Создание опорного напряжения (Vref / 2):
Берем два резистора по 10 кОм, соединяем их последовательно между +5В и землей (GND). Точка между ними будет иметь напряжение 2.5В. Эту точку нужно отфильтровать конденсатором 100 нФ на землю, чтобы убрать шум питания, и подать на неинвертирующий вход ОУ, если бы мы делали дифференциальное усиление. В нашем случае проще использовать дифференциальную схему или просто сместить уровень.

Для pH-метра часто используется простая схема:

1. На неинвертирующий вход (+) ОУ подаем сигнал от электрода.

2. На инвертирующий вход (-) ОУ подаем не землю, а наше опорное напряжение (Vref/2 = 2.5В).

3. Выход ОУ будет равен: Vout = Vin (от электрода) + 2.5В.

Если напряжение от электрода 0В (pH 7), выход будет 2.5В.
Если электрода -200мВ, выход будет 2.3В.
Если электрода +200мВ, выход будет 2.7В.
Все значения укладываются в диапазон 0–5В.

Схема подключения ADS1115

Теперь, когда у нас на выходе ОУ есть «поднятый» сигнал, подаем его на один из входов ADS1115. Лучше всего использовать дифференциальный вход AIN0 и AIN1.

  • AIN0 — подключается к выходу ОУ.
  • AIN1 — подключается к опорному напряжению (Vref/2, 2.5В).
  • Тогда ADS1115 будет измерять разницу: (Vout_OU) — (2.5В). И мы снова получим чистый сигнал от электрода, но уже в цифровом виде.

Такой подход (дифференциальное измерение) убирает шумы питания и делает схему гораздо стабильнее, чем простые схемы с «землей».

Сборка и пайка: практические советы

Схема понятна, но реализация решает всё. Вот как сделать это руками, чтобы работало.

  1. Подготовка платы. Если вы рисуете свою PCB, разведите широкую дорожку земли (Ground Plane) под схемой. Это важно. Избегайте дорожек под пятаками компонентов, чтобы не было коротких замыканий. В районе входа ОУ (где подключается электрод) дорожки должны быть максимально короткими. Чем длиннее провод от электрода до схемы, тем больше помех он ловит. Идеально — если плата находится в том же корпусе, что и разъем.
  2. Пайка ADS1115. Если используете SMD микросхему, наносите канифольный флюс, ставьте микросхему пинцетом и прогревайте одну сторону, фиксируя её, затем вторую. Для 16-битного АЦП критично отсутствие «соплей» (микроскопических капель припоя) между выводами. Проверьте мультиметром на короткое замыкание перед подачей питания.
  3. Фильтрация. Рядом с каждым выводом питания микросхем (VCC) ставьте керамический конденсатор 100 нФ (0.1 мкФ) как можно ближе к ножкам. Это гасит высокочастотные помехи. Для входа ОУ (где сигнал от электрода) поставьте конденсатор 100 нФ относительно земли. Это сгладит резкие скачки.
  4. Разъем. Не жалейте места. Если используете BNC-разъем, паяйте его к плате на винты или через надежные переходники. Внутренний контакт BNC — это центр, внешний — экран. Экран обязательно соедините с землей платы. Это ваш щит от помех.

Настройка и калибровка: где ошибка

Спаяли? Отлично. Теперь самое важное — заставить это работать в коде. Сам по себе модуль не знает, что такое pH. Он выдает «сырые» значения (counts) из АЦП. Ваша задача — перевести их в pH.

Формула перевода

Вам нужно знать, какой коэффициент усиления (Gain) вы выбрали в ADS1115. Обычно это 2.048В или 4.096В.

Допустим, Gain = 2.048В. Шаг АЦП = 2.048 / 32768 ≈ 0.0000625 В (62.5 мкВ).

В коде (например, Arduino) вы получаете число от -32768 до +32767.

Напряжение = (RawValue * Gain) / 32768.

После получения напряжения нужно применить формулу Нернста (упрощенную):

pH = (V_measured - V_zero) / Slope

Где:

  • V_measured — измеренное напряжение.
  • V_zero — напряжение при pH 7 (обычно 0В, если схема сбалансирована, или смещение).
  • Slope — чувствительность. Теоретически она равна -59.16 мВ на pH при 25°C. Но у реальных электродов она меньше (например, -55 мВ).

Процедура калибровки (обязательна!)

Не пытайтесь рассчитывать всё по формулам на бумаге. Электроды имеют индивидуальные отклонения. Вам нужны буферные растворы.

Что нужно:

  • Раствор pH 7.00 (нейтральный).
  • Раствор pH 4.01 (кислый) или pH 10.01 (щелочной).

Шаги калибровки:

  1. Опустите электрод в раствор pH 7. Подождите 2-3 минуты, пока показания стабилизируются. Запишите значение напряжения (или «сырые» данные АЦП). Это ваш «ноль» (Offset).
  2. Тщательно промойте электрод дистиллированной водой (иначе остаток pH 7 исказит следующее измерение!). Промокните салфеткой (не трите, электрод статичен!).
  3. Опустите в раствор pH 4. Запишите новое напряжение.
  4. Вычислите наклон (Slope): (Вольтаж pH4 — Вольтаж pH7) / (4 — 7). Это и есть ваш реальный коэффициент. Запишите его в код.

Если вы делаете устройство, которое будет использоваться в разных температурах, учтите, что чувствительность меняется. При 20°C наклон будет около -58 мВ, при 30°C — около -60 мВ. Если у вас нет датчика температуры, просто придерживайтесь комнатной температуры при калибровке.

Частые ошибки при сборке

Даже с правильными деталями можно ошибиться. Вот список того, что я видел у новичков:

  • Использование «земли» как нуля. Если вы запитываете схему от 5В, но ОУ не может выдавать близко к нулю или к VCC (rail-to-rail), вы потеряете часть диапазона. MCP6002 — rail-to-rail, это хорошо. Но старые LM358 не подходят для точных измерений около нулевой точки.
  • Отсутствие экрана. Провод от электрода — это антенна. Если вы не экранируете его (экран заземлен), вы будете ловить наводки от сети 50/60 Гц. Цифры будут прыгать на несколько единиц pH. Всегда используйте экранированный кабель.
  • Загрязнение контактов. В месте пайки провода к разъему или к плате не должно быть флюса. Флюс — проводник, и в условиях высокой влажности он создаст утечку, искажающую измерения. После пайки тщательно промойте плату спиртом или очистителем.
  • Плохой контакт электрода. Внутри стеклянного шарика электрода есть электролит. Если он высох или в нем есть воздушный пузырь, электрод работать не будет. Перед использованием всегда проверяйте, есть ли в шарике раствор.
  • Питание от USB. USB-порты компьютеров часто «шумные». Если вы видите гул на показателях, попробуйте запитать устройство от внешнего стабилизированного блока питания или качественного Power Bank.

Сравнение вариантов реализации

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

Вариант Сложность Точность Цена Для чего подходит
Готовый модуль (например, Gravity) Низкая Средняя $ Хобби, обучение, бытовые проекты, где нужна точность до 0.1 pH.
ADS1115 + MCP6002 (Самодельный) Средняя Высокая $$ Лабораторные эксперименты, контроль качества, промышленные прототипы.
Специализированные ИС (LMP91000) Высокая Очень высокая $$$ Промышленные устройства, где нужна стабильность годами.

Сценарии выбора: что делать в вашей ситуации

Сценарий 1: «Хочу просто для интереса, чтобы мигать лампочкой»
Не усложняйте. Купите готовый модуль для pH на базе LM393 (или аналогичный дешевый). Он уже настроен. Подключите к Arduino. Это сэкономит вам 5 часов времени на пайку и отладку.

Сценарий 2: «Нужен точный датчик для аквариума или гидропоники»
Здесь важна стабильность. Дешевые модули часто «плывут» со временем. Сделайте самостоятельно на ADS1115. Выберите MCP6002. Обязательно добавьте фильтр в коде (усреднение 100-200 замеров). Это сгладит шум и даст плавную линию.

Сценарий 3: «Нужен промышленный контроллер»
Вам нужно думать о защите. Добавьте оптоизоляцию. Сделайте плату в корпусе с защитой от влаги (герметик). Выбирайте микросхемы с широким рабочим диапазоном температур. ADS1115 здесь — отличный выбор, так как он цифровой (I2C) и меньше подвержен помехам по линии передачи данных.

Как улучшить результат: рекомендации

Если вы хотите, чтобы ваш прибор работал как часы, учтите следующее:

  • Усреднение данных. ADS1115 позволяет менять скорость измерений. Если поставить низкую скорость (Data Rate), шум снизится, но результат будет обновляться медленнее. Для pH-метра это нормально — химические реакции идут медленно. Используйте режим 8 SPS (замеров в секунду) или 16 SPS.
  • Температурная компенсация. Если вы хотите максимальной точности, добавьте датчик температуры (например, DS18B20 или термистор). В формулу pH нужно будет подставлять текущую температуру. Без этого вы будете иметь погрешность до 0.03 pH на каждый градус отклонения от 25°C.
  • Обслуживание. Ваш электрод — это расходник. Он живет от 6 месяцев до 2 лет. Храните его в специальном растворе (обычно 3M KCl). Никогда не храните в дистиллированной воде — это убьет электрод.

Итог: что делать дальше

Сборка модуля pH на ADS1115 — это отличный проект, который сочетает в себе электронику, химию и программирование. Вы получаете инструмент, который реально работает, а не просто имитирует функцию.

Ваш план действий:

  1. Соберите список деталей (ADS1115, MCP6002, резисторы 1%, конденсаторы, разъем).
  2. Нарисуйте или распечатайте схему. Проверьте, что вход ОУ подключен к плюсу, а не к минусу.
  3. Соберите макет на breadboard. Протестируйте работу с мультиметром (измеряйте напряжение на выходе ОУ).
  4. Купите буферные растворы pH 4 и pH 7. Без них прибор бесполезен.
  5. Напишите код, который считывает данные через I2C и выводит их в Serial Monitor.
  6. Спаяйте всё на плату, покройте лаком (конформным покрытием) и запустите в работу.

Не бойтесь, если в первый раз цифры будут прыгать. Это нормально. Настройка — это процесс. Главное, что у вас есть контроль над каждым элементом цепи.

Важное предупреждение: Данная информация носит ознакомительный и образовательный характер. Сборка и использование электронных устройств для измерения pH требуют соблюдения правил техники безопасности. Работайте с химическими реактивами (буферные растворы) аккуратно, используйте защитные перчатки и очки. Калибровка и точность измерений зависят от качества компонентов и условий эксплуатации. Автор не несет ответственности за ущерб, нанесенный оборудованию или здоровью при использовании информации из этой статьи.

Radio-Blog.ru