Приветствую, Хабр!

Как вы уже поняли, я не равнодушен к дисплеям. В одной из своих прошлых статей я делал книжку на e-ink с диагональю 2,13 дюйма. Потом была статья про будильник на ЖКИ. Дальше — дисплей от Nokia 3310. А много лет назад — думаю, не менее десяти — я купил e-ink 1,53 дюйма, но так и не нашел, к чему его применить, так как это довольна старая модель и не поддерживает полноценного обновления всего изображения сразу.

Недавно пришла мысль сообразить пробник для измерения индуктивности (самостоятельного изготовления или без маркировки). Так как динамика вывода показаний невысокая, мой дисплей должен отлично подойти. Тестер, конечно, проще купить — это понятно. Но куда тогда девать нереализованный дисплей? Первым делом задумался о корпусе. Как я уже писал ранее, стараюсь найти что-то подходящее, чтобы не печатать и не изобретать с нуля. Нашел сгоревший адаптер питания (да, я ничего не выбрасываю и храню потенциально нужные вещи).

Рис.1. Корпус от адаптера питания.
Рис.1. Корпус от адаптера питания.

Пока искал схемы и методы измерения индуктивности пришел к мысли, что не так сложно измерять емкость, а лучше и ESR электролитов. Наткнулся на очень интересный проект «народного тестера» под названием «ArduTester». Довольно универсальное устройство с открытым кодом и, в принципе, можно было его повторить, но я не смог осилить >4 000 строк кода, чтобы использовать свой e-ink. Поэтому решил ограничиться необходимыми мне функциями: измерение емкости, ESR и индуктивности.

В качестве микроконтроллера снова выбрал Atmega328P, так как для Arduino nano можно найти примеры реализации. GPIO занял почти все. Отладочный SPI для прошивки, занимаю e-ink дисплеем.

Рис.2. Схема подключений на микроконтроллере.
Рис.2. Схема подключений на микроконтроллере.

UART использую как в nano для конвертера CH340C (примечание: он не работает без конденсатора 100нФ на ноге V3). Наконец-то я стал использовать разъемы USB Type-C.

Рис.3. Схема USB-UART на CH340C.
Рис.3. Схема USB-UART на CH340C.

Части схем я взял из своей прошлой разработки и немного оптимизировал по компонентам. В устройстве у меня три кнопки. S1 – калибровка (сначала думал по этой кнопке запускать процесс измерения, но потом пришел к выводу, что может понадобиться калибровать «0»). Функцию калибровки еще не сделал, проверяю на сколько это необходимо, а кнопку S1 пока задействовал для программно-аппаратного выключения, чтобы можно было выводить данные на дисплей, а не просто рубить питание. S2 – переключение между режимами измерения. S4 – кнопка аппаратного выключения питания.

Рис.4. Кнопки управления.
Рис.4. Кнопки управления.

Для включения/выключения питания и измерения заряда аккумулятора использую пары транзисторов N-Channel и P-Channel. При нажатии кнопки S4 сигнал от триггера CD4013 подается на ключ питания. Сигнал PW_OFF от микроконтроллера эмулирует нажатие кнопки S4, после вывода на дисплей информации. Думаю, можно добавить режим автоматического выключения при простое.

Рис.5. Схема питания.
Рис.5. Схема питания.

Схема включения e-ink уже отработана. Использую режим «4-line SPI». Дисплей старый и поддерживает частичное обновление только фрэймами определенного размера. То есть нужно выделить в памяти дисплея область, записать в нее данные и затем вывести на дисплей. Сразу всю страницу можно обновить только через полное обновление со стиранием, что занимает 2-3 секунды.

Рис.6. Схема включения e-ink дисплея.
Рис.6. Схема включения e-ink дисплея.

Вариантов схем измерения емкости и индуктивности в интернете масса. Я выбрал самые простые в реализации. Одним из важных критериев было наличие примеров кода. Для определения ESR используется 18-битный АЦП MCP3421A0T на шине I2C. Нашел даже обзор измерителя «HT-RT01» на этой микросхеме. Встречаются также схемы с использованием встроенного АЦП контроллера, но точность будет ниже, скорее всего.

Индуктивность измеряется с помощью компаратора LM339DR. На вход параллельно конденсатору на плате вешаем измеряемую индуктивность, подаем импульс на вход, а на выходе компаратора измеряем длину импульса. Зная емкость конденсатора и длину импульса, вычисляем индуктивность (пример кода есть, в том числе, и на гите). Емкость конденсатора можно вычислить по времени (t - тау) его заряда до 63,2%, где t=R*C (сопротивление резистора в этой RC-цепи нам известно).

Рис.7. Схема измерительных цепей.
Рис.7. Схема измерительных цепей.

По схеме все. На разъемы, на всякий случай, повесил TVS диоды, чтобы ничего не спалить при горячем подключении измеряемых компонентов. Мельчить не стал и использовал пассив 0603 и больше. Все компоненты разместил на одной стороне, получилось вроде хорошо, хоть и плотно.

Арендуйте GPU за 1 рубль!

Выберите нужную конфигурацию в панели управления Selectel. *

Подробнее →

Рис.8. Печатная плата в Altium.
Рис.8. Печатная плата в Altium.
Рис.9. Плата пробника с компонентами.
Рис.9. Плата пробника с компонентами.

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

Рис.10. Вырез для USB.
Рис.10. Вырез для USB.

Дальше отверстия для крепления платы, кнопок и вырез для разъемов. Тут главное было не торопиться и все хорошенько промерить.

Рис.11. Вырезы в корпусе и первый запуск.
Рис.11. Вырезы в корпусе и первый запуск.

Все сошлось. На рис.11 как раз видно отдельный фрэйм обновления таймера. Вот такими прямоугольниками я и буду обновлять информацию на экране раз в секунду.

Рис.12. Вырез под дисплей.
Рис.12. Вырез под дисплей.

На рис.12 видна неполная перерисовка цифры «9». То есть через множество обновлений это поле может стать неразличимым и придется чистить экран целиком, но мне это не нужно, так как измерения редкие, а после выключения/включения экран полностью обновится.

Когда софт написан, можно приступить к тестовым измерениям (на фото ниже.). Для проверки ESRсначала подключил резистор 1 Ом 1%, чтобы убедиться, что измерения, в принципе, правильные. Далее уже конденсатор и значение получилось 0,20 Ом, что очень похоже на правду, но сравнить показания, к сожалению, не с чем. Емкость конденсатора 220 uFоказалась 211,8 uF. Прибор «MV6013A» выдал значение 211 uF. Катушка 22 uHв пробнике показала индуктивность 21,9 uH.

Рис.12. Результаты измерений.
Рис.12. Результаты измерений.

Пробовал измерять в широком диапазоне, погрешность приемлемая. Нашел один минус – это измерение электролитов с большой емкостью: долгое время заряда. Осталось сравнить ESR с каким-нибудь сторонним тестером. Пробник далек от метрологического прибора, но понять на сколько жив конденсатор или определить индуктивность катушки без подписи вполне возможно.

Спасибо за внимание и успехов!

Комментарии (11)


  1. ArtPlotnikov
    02.11.2025 08:32

    А как плату изготавливали и паяли компоненты? Выглядит не как ручная работа. На заказ?


    1. the_bat Автор
      02.11.2025 08:32

      Плата в резонит. Пайка ручная, просто я старался)


      1. ArtPlotnikov
        02.11.2025 08:32

        Отличная работа! Интересно было бы посмотреть процесс ускоренно, какое оборудование/инструменты. И где детали покупаете. Т.е. хочется так же уметь, получилась бы интересная статья.


        1. the_bat Автор
          02.11.2025 08:32

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


  1. Ivanii
    02.11.2025 08:32

    Далее уже конденсатор и значение получилось 0,20 Ом, что очень похоже на правду, но сравнить показания, к сожалению, не с чем. 

    У подобных конденсаторов ESR обычно в районе 10 мОм, у PLF1C271 ESR < 9 мОм.


    1. the_bat Автор
      02.11.2025 08:32

      Хм, интересно. Может где-то в формулах ошибка, но нужно сначала все-таки ESR-метр раздобыть, чтобы точно убедиться.


  1. Kabron287
    02.11.2025 08:32

    Такую печать городить! А взять тестер Маркуса и подцепить e-ink не судьба?


    1. the_bat Автор
      02.11.2025 08:32

      Нет, не судьба.


  1. shiru8bit
    02.11.2025 08:32

    Теперь хотелось бы увидеть, что такое сложный пробник, если это - простой (смайлик).



  1. VT100
    02.11.2025 08:32

    На IO10/CS - подтяжку к питанию Vdd3V3 добавить, чтобы индикатор точно не путался под ногами при программировании МК?