- Как собрать портативный цифровой вольтметр на ADS1115 и OLED-дисплее — пошаговое руководство для тех, кто хочет измерять напряжение без лишних затрат
- Почему именно ADS1115 и OLED?
- Что тебе понадобится
- Как подключить всё вместе — схема и логика
- Программа — просто, но работает
- Как измерять напряжение выше 2.048 В — делитель напряжения
- Таблица: что выбрать — Nano, ESP32 или Pro Mini
- Частые ошибки — и как их избежать
- Как лучше сделать — советы от практика
- Что выбрать в зависимости от ситуации
- Итог — что делать прямо сейчас
Как собрать портативный цифровой вольтметр на 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. Их не нужно менять. Вот как:
- ADS1115:
- VCC → 3.3 В (не 5 В! ADS1115 не выдерживает 5 В)
- GND → GND
- SDA → A4 (на Nano)
- SCL → A5 (на Nano)
- ADDR → GND (чтобы адрес был 0x48 — по умолчанию)
- OLED:
- VCC → 3.3 В
- GND → GND
- SDA → A4 (тот же, что и у ADS1115)
- SCL → A5 (тот же, что и у ADS1115)
- Аккумулятор:
- Плюс → вход TP4056 (IN+)
- Минус → GND
- Выход TP4056 (OUT+) → VCC на Nano, ADS1115, OLED
- Выход TP4056 (OUT-) → GND
- Кнопка:
- Один контакт → 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 $).
Частые ошибки — и как их избежать
- Подключаешь ADS1115 к 5 В. Он сгорает. Всегда проверяй — 3.3 В. Используй мультиметр, чтобы убедиться, что на VCC ровно 3.3 В.
- Не подключаешь GND ко всем устройствам. Если один из компонентов не заземлён — дисплей моргает, данные глючат. GND — это не «дополнительно», это основа.
- Используешь дешёвые OLED с неизвестным адресом. Некоторые дисплеи имеют адрес 0x3D вместо 0x3C. Если дисплей не светится — попробуй заменить
0x3Cна0x3Dв коде. - Забыл про конденсатор на входе ADS1115. Если измеряешь напряжение с шумным источником (например, от драйвера LED), на экране будет «плясать» значение. Добавь 100 нФ — и всё стабилизируется.
- Используешь аккумулятор 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 — и сравни с твоей. Часто проблема в одном проводе.
У тебя получится. И ты не будешь больше искать мультиметр в ящике — потому что у тебя будет свой, всегда под рукой, и он будет работать.
Информация в этой статье носит ознакомительный характер. При работе с электрическими схемами, особенно с аккумуляторами и высокими напряжениями, соблюдай меры безопасности. Для точных измерений в профессиональных целях используй калиброванные приборы и консультируйся со специалистом.



