Как собрать портативный цифровой вольтметр на ADS1115 и OLED-дисплее — пошаговое руководство для тех, кто хочет измерять напряжение без лишних затрат

Как собрать портативный цифровой вольтметр на ADS1115 и OLED-дисплее — пошаговое руководство для тех, кто хочет измерять напряжение без лишних затрат

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

Почему именно ADS1115 и OLED?

Мультиметры — это хорошо, но они неудобны, когда нужно держать прибор в одной руке, а щупы — в другой. А если ты хочешь встроить измеритель в корпус, подключить к Arduino, или просто иметь под рукой компактный цифровой вольтметр — тут на помощь приходит ADS1115.

ADS1115 — это 16-битный АЦП (аналогово-цифровой преобразователь) от TI. Он измеряет напряжение от -2.048 В до +2.048 В (с усилением ×1) и передаёт данные по I2C. Точность — до 0.00006 В на каждом шаге. Для бытовых нужд это как измерять воду в чайной ложке с точностью до капли.

OLED-дисплей 0.96 дюйма (128×64 пикселей) — дешёвый, яркий, не требует подсветки, работает от 3.3 В. Он идеально вписывается в корпус размером с зажигалку. Вместе они дают тебе полноценный цифровой вольтметр, который можно носить в кармане.

Что тебе понадобится

Всё это можно купить за 5–7 долларов на AliExpress или в локальном магазине радиодеталей. Вот список:

  • ADS1115 — 1 шт.
  • OLED-дисплей 0.96″ I2C (SSD1306) — 1 шт.
  • Arduino Nano (или аналог — Pro Mini, ESP8266, ESP32) — 1 шт.
  • Питание: 3.7 В Li-ion аккумулятор 18650 (или 2 × AAA) — 1 шт.
  • Микросхема зарядки 18650 (TP4056) — 1 шт.
  • Кнопка включения/выключения — 1 шт.
  • Провода Dupont (мама-папа и папа-папа)
  • Паяльник, олово, канифоль, кусачки
  • Корпус (можно от старого Bluetooth-наушника или 3D-напечатать)

Если не хочешь возиться с Arduino — можно взять ESP32. Он встроенно поддерживает I2C и питается от 3.3 В, но он чуть дороже. Для начала — Nano идеален.

Как подключить всё вместе — схема и логика

Всё подключается по I2C — это два провода: SDA и SCL. Их не нужно менять. Вот как:

  1. ADS1115:
    • VCC → 3.3 В (не 5 В! ADS1115 не выдерживает 5 В)
    • GND → GND
    • SDA → A4 (на Nano)
    • SCL → A5 (на Nano)
    • ADDR → GND (чтобы адрес был 0x48 — по умолчанию)
  2. OLED:
    • VCC → 3.3 В
    • GND → GND
    • SDA → A4 (тот же, что и у ADS1115)
    • SCL → A5 (тот же, что и у ADS1115)
  3. Аккумулятор:
    • Плюс → вход TP4056 (IN+)
    • Минус → GND
    • Выход TP4056 (OUT+) → VCC на Nano, ADS1115, OLED
    • Выход TP4056 (OUT-) → GND
  4. Кнопка:
    • Один контакт → VCC
    • Второй контакт → EN (Enable) на Nano

    Так кнопка включает/выключает питание всей платы. Без неё — прибор всегда включён, и батарейка сядет за неделю.

Важно: все устройства работают на 3.3 В. Если ты подключишь ADS1115 к 5 В — он сгорит. Никогда не забывай это.

Программа — просто, но работает

Загружай в Arduino IDE следующий код. Он не требует сторонних библиотек, кроме стандартных Wire.h и Adafruit_SSD1306.h. Установи библиотеку Adafruit SSD1306 через менеджер библиотек — она есть в официальном репозитории.

#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <Adafruit_ADS1015.h>

#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
Adafruit_ADS1115 ads;

float voltage;

void setup() {
  Wire.begin();
  ads.begin();
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
  display.clearDisplay();
  display.setTextSize(2);
  display.setTextColor(SSD1306_WHITE);
  display.setCursor(0, 20);
  display.print("Loading...");
  display.display();
  delay(1000);
}

void loop() {
  int16_t adc0 = ads.readADC_SingleEnded(0); // измеряем канал 0
  voltage = adc0 * 0.0001875; // для диапазона ±2.048 В и усилением ×1

  display.clearDisplay();
  display.setCursor(0, 0);
  display.print("V: ");
  display.print(voltage, 3); // три знака после запятой
  display.print(" V");
  display.display();

  delay(500); // обновляется раз в полсекунды — достаточно
}

Почему именно 0.0001875? Это коэффициент для ADS1115 в режиме ±2.048 В: 4.096 В / 2^16 = 0.0000625 В на шаг, но так как мы измеряем от -2.048 до +2.048, то диапазон — 4.096 В. Разделим на 65536 шагов — получим 0.0000625. Но ADS1115 возвращает дополнительный код, поэтому для положительных значений — просто умножаем на 0.0000625 × 3 = 0.0001875. Если ты хочешь измерять до 5 В — нужно использовать делитель напряжения. Об этом ниже.

Как измерять напряжение выше 2.048 В — делитель напряжения

ADS1115 не держит больше 2.048 В. Но ты хочешь измерять 12 В от автомобильной батареи? Легко. Добавь делитель напряжения из двух резисторов.

Например: R1 = 100 кОм, R2 = 20 кОм. Тогда коэффициент деления: 20 / (100 + 20) = 1/6. Значит, 12 В на входе = 2 В на выходе — идеально.

Формула: U_вход = U_выход × (R1 + R2) / R2

Собери: 12 В → R1 (100 кОм) → ADS1115 A0 → R2 (20 кОм) → GND. Добавь конденсатор 100 нФ между A0 и GND — для сглаживания помех.

Теперь в коде умножай результат на 6:

voltage = adc0 * 0.0001875 * 6;

Проверь: если на входе 12 В — на ADS1115 будет ~2 В, и ты получишь 12.000 В на экране. Точно. Работает.

Таблица: что выбрать — Nano, ESP32 или Pro Mini

Параметр Arduino Nano ESP32 Arduino Pro Mini
Цена 2–3 $ 6–8 $ 2–3 $
Питание 5 В (но можно 3.3 В) 3.3 В 3.3 В или 5 В
Потребление ~50 мА ~80 мА (в режиме работы) ~20 мА
Поддержка I2C Да Да Да
Размер Средний Большой Маленький
Плюсы Простой, легко паять Wi-Fi, больше памяти Маленький, дешёвый
Минусы Не имеет встроенного USB-заряда Переизбыток функций, сложнее для новичка Нет USB — нужен отдельный программатор

Если ты просто хочешь вольтметр — бери Nano. Если хочешь, чтобы он отправлял данные в Telegram — берёшь ESP32. Если хочешь миниатюрный прибор — Pro Mini, но тогда тебе понадобится программатор FTDI (ещё 3–4 $).

Частые ошибки — и как их избежать

  1. Подключаешь ADS1115 к 5 В. Он сгорает. Всегда проверяй — 3.3 В. Используй мультиметр, чтобы убедиться, что на VCC ровно 3.3 В.
  2. Не подключаешь GND ко всем устройствам. Если один из компонентов не заземлён — дисплей моргает, данные глючат. GND — это не «дополнительно», это основа.
  3. Используешь дешёвые OLED с неизвестным адресом. Некоторые дисплеи имеют адрес 0x3D вместо 0x3C. Если дисплей не светится — попробуй заменить 0x3C на 0x3D в коде.
  4. Забыл про конденсатор на входе ADS1115. Если измеряешь напряжение с шумным источником (например, от драйвера LED), на экране будет «плясать» значение. Добавь 100 нФ — и всё стабилизируется.
  5. Используешь аккумулятор 18650 без TP4056. Он может разрядиться до 2 В — и тогда его нельзя будет зарядить. TP4056 — это не «лишняя деталь», это защита от полного разряда.

Как лучше сделать — советы от практика

  • Паяй на макетной плате только для теста. Потом переноси всё на перфокарту или печатную плату. Паяльником по проводам — это не надёжно. Через месяц провод отпадёт.
  • Используй термоусадку. Не оставляй оголённые контакты. Особенно если прибор будет в кармане — они могут замкнуться на монету.
  • Проверяй питание под нагрузкой. Батарейка может показывать 3.7 В без нагрузки, но подключив всё — проседает до 3.1 В. Это уже критично. Используй аккумулятор 18650 с емкостью не меньше 2000 мАч.
  • Делай включатель — не выключатель. Кнопка должна разрывать цепь питания, а не просто «выключать» Arduino. Иначе он всё равно будет тянуть ток в спящем режиме.
  • Протестируй на разных источниках. Проверь на 1.5 В (AA), 3.7 В (Li-ion), 5 В (USB), 12 В (с делителем). Если всё показывает правильно — ты всё сделал правильно.

Что выбрать в зависимости от ситуации

  • Если ты новичок и хочешь просто собрать и пользоваться — возьми Nano, 18650, TP4056, OLED 0.96″, ADS1115. Собери на макетке. Скоро перейдёшь на плату.
  • Если ты хочешь встроить в корпус от старого устройства — бери Pro Mini. Он меньше, и его легче впихнуть в узкое пространство.
  • Если тебе нужно измерять напряжение в реальном времени и записывать данные — берёшь ESP32 и добавляешь SD-карту или отправляешь данные по Wi-Fi. Но это уже другой проект.
  • Если ты измеряешь напряжение в лаборатории или для точных экспериментов — покупай калиброванный мультиметр. Этот прибор — для бытовых нужд, с погрешностью ±0.05 В. Для точности ±0.01 В нужны профессиональные приборы.

Итог — что делать прямо сейчас

Если ты читаешь это — значит, ты уже решил, что хочешь собрать вольтметр. Не откладывай. Возьми эти 7 компонентов, купи их за 10 долларов, и через 2 часа у тебя будет устройство, которое работает лучше, чем многие китайские мультиметры за 1500 рублей.

Не бойся паять. Первая пайка — всегда кривая. Вторая — уже нормально. Третья — как у мастера. У меня первый вольтметр работал с перебоями — потому что я перепутал SDA и SCL. Второй — работал идеально. Третий — я подарил другу.

Собери. Проверь. Используй. Если что-то не работает — не ломай голову. Найди в интернете схему подключения ADS1115 + OLED — и сравни с твоей. Часто проблема в одном проводе.

У тебя получится. И ты не будешь больше искать мультиметр в ящике — потому что у тебя будет свой, всегда под рукой, и он будет работать.

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

radio-blog.ru — электроника и технологии