Миниатюрный двухдиапазонный вольтметр

Вряд ли покажусь оригинальным со своей конструкцией “очередного AVR вольтметра” , но как известно вся жизнь складывается из мелочей и насколько эти мелочи удобны и удачно реализованы – от этого в целом зависит качество жизни. Именно поэтому мои поиски удобного, простого и достаточно точного вольтметра привели меня к мысли что придется делать самому. Ну вот судите сами: решения на базе специализированной ICL7106 (и т. д.) достаточно точны, но не самые дешевые и довольно громоздки. Совсем простые схемы на микроконтроллерах – как правило примитивная, ничем не защищенная входная часть, 10-ти битный АЦП применяемый на большинстве контроллеров “растянут” для отображения популярного диапазона 0-30v – в итоге страдает точность. Ну или совсем глупости с такой же бестолковой входной частью, но мегабольшим набором ненужных “сервисных функций”. Не хотелось бы обидеть кого-нибудь из глубокоуважаемых авторов подобных приборов, но каждому, как говорится, свое. По моему мнению вольтметр должен быть вольтметром. Точный, простой, удобный.

Поразмыслив над всем вышенаписанным – родилась вот такая конструкция:

Диапазон измеряемых напряжений – 0 – 100v
Количество диапазонов измерений – 2 (0 -10v, 10-100v)
Разрядность – 10 бит (0,01v – 9,99v и 10,0 – 99,9v)
Входное сопротивление – около 300кОм
Переключение диапазонов – автоматическое
Точность – ограничено точностью АЦП, трудолюбием настройщика и точностью эталонного вольтметра

А также в процессе проектирования было “убито” еще несколько зайцев:
1. Очень доступная элементная база – купить придется разве что контроллер и индикатор и те недорого.
2. Славноизвестная нелинейность АЦП атмела приходится на неиспользуемые первые 100 отсчетов в диапазоне 10-100v, а в диапазоне 0-10v попадает на редкоиспользуемые измерения до 1в.
3. Размеры…. Собственно размеры равны используемому индикатору (см. фото ниже)

Описание конструкции:
Первое на что хотел бы обратить внимание и умерить пыл любителей покритиковать – отсутствие токоограничительных резисторов между контроллером и индикатором. Хотел бы напомнить, что индикация динамическая и при использовании такой частоты обновления и индикаторов 0,56” (BT-M51DRD в моем случае) яркость, нагрев и ток через порты находится в пределах допустимого и разумного. Самая горячая деталька 78L05 – чем ближе будет напряжение питания к 7 вольтам – тем лучше. Проверено на уже более года работающем по такой же идее термометре. Да и некуда их (резисторы) там ставить (см. плату)…. А вот если кто соберется повторять на индикаторе поменьше и разводить свою плату – тут уж без резисторов не обойтись. Для тех кто захочет увеличить входное сопротивление (моих 300кОм хватит для большинства применений) – можно пересчитать входные делители R7-R6 и R14-R13 и применить ОУ с входной частью на полевых транзисторах – TL082 например. Защитные стабилитроны на 5,6v обязательны, особенно D2. R15C1 – дополнительный фильтр питания для ОУ, L1C3 – фильтр АЦП, ИОН выполнен на TL431 и особых хитростей не представляет. Плата выполнена на двухстороннем текстолите, причем вторая сторона (со стороны индикатора) используется как земля. Данное обстоятельство + правильная разводка печатной платы + использование ADC noise reduction позволило получить достаточно достоверные и стабильные результаты измерения.

Монтаж достаточно плотный, так как хотелось добиться миниатюрных габаритов, но вполне под силу утюгу, так как все дорожки 0,4-0,5мм. Тем не менее я делал фотоспособом. Все резисторы и обычные конденсаторы типоразмера 0805. 78L05 и LM358 в корпусе SO8 и TL431 в корпусе SOT-23 можно найти на мертвых материнских платах, электролитический конденсатор 10.0….22.0uF – что под руку попадется. Индикатор 3-х символьный с динамической индикацией, общим анодом и высотой символа 0,56”. Как показала практика распиновка у них одинаковая – подойдет любой, такого размера…

Настройка вольтметра.
Специального разъема для прошивки не предусмотрено. Не тот случай, да и не вижу смысла… Просто припаиваем проводочки от Вашего программатора к контактам платы. На этот случай предусмотрены две контактные площадки для RESET и MOSI, MISO и SCK можно припаять к ножкам 2 и 3 индикатора. С установками фузов еще проще – нужно сказать контроллеру работать от внутреннего RC генератора с частотой 8мГц. Вот как-то так:

Собственно настройка сводится к установке образцового напряжения на ножке AREF контроллера или катоде TL431 равным 2.56в подбором резистора R18. Хочу отметить что эту процедуру нужно проводить без фанатизма, так как основная часть настройки будет дальше и важен порядок цифр. То есть опорное напряжение может быть в пределах 2.5…2.6в – ничего страшного, что не 2.56. После этого подбираем R2 для диапазона 100v и R9 для диапазона 10v до полного соответствия цифр на дисплее измеряемому напряжению. Увеличение номиналов увеличивает показания. Указанные на схеме номиналы – это то что получилось на моем экземпляре, и вероятность того что на Вашем экземпляре заработает все и сразу достаточно велика, по крайней мере я почти уверен что первый шаг с ИОН можно будет пропустить. Как я уже писал выше – точность показаний будет полностью зависеть от последнего шага – точности подбора резисторов.

Дополнительные свидетельства хорошей точности и линейности на фото ниже. Тестовый прибор – UT60A c разрядностью “3999”, что само по себе свидетельствует о точности выше среднего.

 

Файлы:
Схема в SPLAN 7
Плата в Sprint Layout
Прошивка для индикатора с общим анодом
Прошивка для индикатора с общим катодом

Добавлено 25.05.11:
Прошивка для индикатора с общим анодом (mega48)
Прошивка для индикатора с общим катодом (mega48)
Большое спасибо за помощь в удаленном тестировании этих прошивок Юрию.

50 коментарів до “Миниатюрный двухдиапазонный вольтметр

  1. Здравствуйте.
    Скажите пожалуйста, можно ли ввести в схему и программу, возможность ввода контрольнгых точек измерения, по достижению которых, осуществлять управление каким либо устройством? Что-то типа реле защиты или узла контроля аккумулятора.
    Спасибо.

  2. Здравствуйте! Понравилась Ваша конструкция, хотел бы повторить. Пожалуйста посоветуйте ОУ вместо 358 – в smd исполнении у меня есть LF353, TL062, TL072, TL082. Что было бы лучше применить бе изменений в схеме?
    Спасибо

    • Хитрость в том чтобы ОУ умел нормально работать с однополярным питанием. Ни один ОУ из Вами перечисленных – не подойдет. А в чем проблема найти LM358? Самый популярный и распространенный копеечный ОУ. Если это совсем станет проблемой – можете пожертвовать входным сопротивлением и выбросить ОУ вообще, оставить только делители напряжений – это вполне допустимо особенно если применять будете в источнике питания.

      • Спасибо за ответ. LM358 в smd действительно не проблема, просто надо сьездить на радиорынок и купить. Так и сделаю. Просто подумал, что TL-ки может быть лучше. Спасибо!

  3. Здравствуйте, Андрей! Собираю лабораторный блок питания, а вот с измерением и индикацией никак не могу определиться. Возможно ли на базе atmega8 реализовать и амперметр, и вольтметр, два в одном? И есть ли у Вас какие нибудь готовые решения? Спасибо!

    • Здравствуйте, Эльдар!
      Первая версия зарядного устройства http://radio.aliot.com.ua/?p=101 вполне пригодна для этого. Почитайте внимательно описание, там более-менее все подробно. До устройства с одновременным выводом на два дисплея вольты и амперы так руки и не дошли. Хотя изменения в прошивке зарядного нужны минимальные.

  4. Спасибо Андрей, чувствую еще не дорос я до такого ампер-вольтметра, остановилась на вольтметре описаном в этой статье, а амперметр попробую еще поискать, а может и мультиметр присобачу. Еще раз Вам спасибо, и за программатор тоже!
    с уважением, Эльдар!

  5. Уважаемый Андрей! мне очень понравилась ваша разработка Миниатюрный вольтметр.
    Но мне нужен вольтметр с полным диапазоном не 10-100 вольт, а сполным диапазоном 2 вольта в одном поддиапазоне измерений.
    Пожалуйста помогите. меня интересует измененная схема и и новая прошивка

    • Не совсем понял постановку вопроса… Измерение до 2в конечно же возможно и с полным разрешением 10 бит цена деления будет 2мв, второй диапазон соответственно будет 2…20в с ценой деления 20мв. При этом изменится ПО МК и номиналы делителей, схема останется прежней. Я правильно Вас понял?

  6. В идеале это 4 разряда через 1 мв (верхнее показание 1,999 В), тогда второй поддиапазон 2,00-19,99 в через 10 мв.
    Но, это вероятно, значительно усложняет переделку схемы Вашего вольтметра.
    Тогда возможен вариант 3 разряда, от 0 до 1,99 в через 10 мВ, а второй поддиапазон 2-20,0 В через 100 мВ.
    Смысл изменений в том, чтобы избежать нелинейности при измерениях меньше 1 вольта и повысить точность измерений .
    Кроме того, можно увеличить усиление входных усилителей в 5 раз, чтобы сгнал на входе АЦП не изменился, т.е. уменьшить нелинейность при малых напряжениях.

    • Видать Вы не совсем знакомы с АЦП и таким понятием как его разрядность… 0.000…1.999 и 0.00…19.99 – это уже 11 бит. У AVR всего 10 бит. При 10 битах можно с ценой деления 2 и 20мв соответственно. А иначе разве что на внешнем АЦП, но это уже будет совсем другое устройство. Еще конечно можно на STM8L с его 12-битами, тогда можно было бы организовать 0.000 – 4.000 и 0.00 – 40.00. А сигнал на входах АЦП, кстати, для обоих диапазонов приводится к уровню 2.5 вольта, что вполне оптимально даже для простенького LM358. От нелинейности, как уже писали, лучше всего избавляться ОУ подороже типа MCP6022 или выбрасывать входную часть на ОУ совсем, в том случае если не имеет значения входное сопротивление и предполагается мерять “прогнозируемый” источник напряжения (хороший пример – лабораторный БП).

  7. Я был неправ по поводу повышенной разрядности, но двухдиапазонный вольтметр от 0 до 1,99 в через 10 мВ, а второй поддиапазон 2-20,0 В через 100 мВ вероятно можно сделать без значительного изменения в схеме и ПО, а входное напряжение привести также к 2,5 в (или к 2 в, если это удобнее). Главное сохранить высокую линейность на малых отсчетах. Пожалуйста, помогите. ОУ типа MCP6022 проблемой неявляются

    • Я же не отказываюсь помочь. Просто чего мы добъемся сужением диапазона с 0,00…9,99 до 0,00…1,99? Шаг Вы предлагаете тот же 10 мв как и в случае 0,00…9,99. В чем смысл? При применении правильного ОУ нелинейность если и будет то только от самого АЦП, причем очень и очень маленькая. Вот с шага в 2мв (20 для второго диапазона) толку по-моему больше. Программно нужно всего лишь будет умножать значение АЦП на 2 и еще пару изменений по-мелочи, а напряжение на входах привести к 2.5в при входном 2в и 20в соответственно. Схема останется полностью без изменений (кроме номиналов делителей). Для повышенной точности можно применить прецизионный (недорогой) OP07 с балансировкой и двухполярное питание – это будет даже лучше, но немного сложнее, чем MCP6022.

  8. Шаг 2 мв конечно можно сделать, (0.002,0.004,0.008…..0.01) но тогда вопрос- выводить или не выводить на индикацию 4 разряд милливольты- сейчас счетчик с 3х разрядной индикацией. Меня устраивают отсчеты на индикаторе и через 10 мВ.
    А вот Ваше предложение “…напряжение на входах привести к 2.5в при входном 2в и 20в соответственно. Схема останется полностью без изменений (кроме номиналов делителей)” считаю очень полезным.
    Кстати сообщите пожалуйста частоту вывода показаний счетчика на индикатор вольтметра, для меня желательно не менее 10 раз в секунду. С уважением И.В.

    • Если устраивает шаг в 10 мВ – тогда вообще не вижу смысла ничего менять – просто поставьте хороший ОУ да и все. Количество обновлений примерно 3,8 раз в секунду – вполне приемлемая цифра для среднестатистического пользователя – не “мельтешит”. Чтобы сильно долго не морочить голову – можно легко поднять до 15 другим делителем таймера – это изменения в одной строчке. Если надо – сделаю без проблем.

  9. Если можно поднять количество обновлений до 15 буду очень признателен, сделайте пожалуйста соответствующие изменения. С уважением Игорь Вадимович.

  10. Добрый день! Вопрос.
    Возможно ли обойтись без LM358? Какое при этом допустимо максимальное сопротивление резистивного делителя на входе устройства?
    Если меня устраивает только один диапазон 100 В, – нужен ли тогда резистивный делитель в другом канале?

    • Можете обойтись и без ОУ. Для лучшего согласования входа АЦП я бы не стал ставить делитель более чем 100к (суммарно). Если хотите отказаться от нижнего диапазона, соедините ненужный вход АЦП резистором 10k c питанием (5в).

  11. Собрал вольтметр с одним диапазоном 0-10В. Вход второго АЦП ( РС1 ) присоединил к “земле” иначе не работает. В качестве ОУ применил высококачественный AD8601. Получил отличную линейность по всему диапазону от 0В. Все измерения (после настройки )совпадают с показаниями образцового вольтметра во всех трех знаках. Спасибо автору за качественную разработку.

  12. Я так понимаю если убрать делитель R14, R13 пересчитать R7, R6 поиграться (увеличить) коэффициентом усиления ОУ можно использовать как амперметр с установкой шунта в отрицательный провод источники питания?
    Возможно Вы уже делали это скажем для типовых шунтов с напряжением падения 75 мВ.
    И если скажем рассчитать один канал для измерения тока а второй оставить для напряжения, возможно подправить прошивку, чтобы она поочередно выводила на экран значения в каналах? скажем по 3 секунды, а во время переключения на 0,5 сек высвечивала “—” как индикатор переключения между каналами?

    • Конструкция старая, в общем-то законченная, ничего никуда уже меняться не будет дабы не было “зоопарка” с прошивками. Амперметры у меня в конструкциях и так есть. Найдете глюк в прошивке – пишите.

  13. Собрал данный вольтметр, но нижний диапазон показывает как то странно от 0 до 4.13, хотя по факту 35в. Если подать напряжение в верхнем диапазоне и перезапустить вольтметр то отображается корректно, пока не опустится до 10в.

  14. Добрый день!

    Спаял схему на Mega-48PA-AU.
    Для предварительного понимания настроек схемы не припоял резисторы R5, R12. Т.е. отсоединил ОУ от МК. Правильно ли я понимаю, что если на входы PC1 и PC3 подать нули (с GND)? то схема должна “автоматом” показать на индикаторе “НОЛЬ”. Если на PC1 и PC3 подать опорное напряжение (или сочетание Нуль о опорное), то должно показать около 10 воль и 100 вольт? соответственно?
    На данный момент у меня при подачи нуля или опроного напряжения и их сочетаний на входы PC1 и PC3 всегда одно число (порядка 35 вольт).

    Что это может означать? МК нерабочий? ???

    С уважением.

  15. Добрый день. подскажите что токое L1 ато я чёто непонимаю, да и половино компонентов немогу на плате найти)

    • L1 это помехозащитный дроссель в цепи питания аналоговой части mega8 (AVCC). Номинал в пределах 10…470uH не критичен, при полном отсутствии – можно заменить резистором 1…10 ом. “Поискать” детали на плате удаленно я Вам увы не могу помочь. Номиналы там все подписаны (появляются при наведении на деталь).

  16. Здравствуйте. Все таки попрошу вас помочь. Признаюсь, я в программировании вообще ноль. И тут наткнулся на ваш проект, уж очень он мне понравился. У меня есть большая проблема. Очень нужен прибор типа вольтметра который при достижении заданного предела зажжет светодиод и дальше меряет напряжение, погасит его только при нажатии кнопки. Кнопок для программирования мне не нужно, как и достаточно двух сегментов. А так же, вы говорили что усилитель можно выкинуть, не приведете вариант схемы без усилителя? Меня интересует измерение именно (10-99в), внутреннее сопротивление тоже никак не важно. И как защитить схему от кратковременных скачков до 120-150 вольт?
    Прошу отписаться на почту. Свою благодарность выражаю денежной компенсацией.

  17. Здравствуйте Андрей.
    Может Вы мне можете помочь, дело в том, что мне нужен прибор измеряющий сопротивление. Сложность в том, что диапазон около 25 бит… Насколько я понимаю, используя принцип, который реализован в этом устройстве, но используя не 2, а 3 канала АЦП, такое сделать можно. Нужен шаг измерения 0.1 ома, диапазон 1 Мом, и частоту порядка 20-25 ГЦ.

  18. Я занимаюсь ремонтом приборов. Нужны знания по
    электроники. Мне нужно пройти курс по электронике и схемотехники.
    Могли бы Вы заниматься со мной по Скайпу в качестве репетитора.
    Просьба уточнить стоимость одного занятия ( 60 минут).
    Надеюсь на Вашу помощь.

    С уважением,
    Леонид

    • Извините Леонид. У меня нет столько свободного времени. Да и занятия по скайпу лично я считаю малоэффективными.

  19. Повторил устройство, спасибо автору.
    Очень понравилась точность и линейность в обоих диапазонах.Настраивается легко.Но, как говорится есть и небольшая ложка дёгтя. Если померять напряжение 10 вольт… ровно 10 вольт, вольтметр впадает в ступор- десятичная точка скачет и неподвижно высвечивает случайное число. Интересно, кто-то ещё с этим сталкивался?

    • Это не ложка дегтя, это собственно и есть момент переключения между диапазонами. Чем точнее Вы настроите делители, тем менее заметен будет этот переход. Не думаю что в реальной жизни этот “нюанс” будет сильно мешать. Хотя есть и методы поэлегантнее (я имею ввиду программные). Если бы писал ПО на это устройство сейчас – может быть бы и сделал по другому.

  20. electra, спасибо за ответ.Конечно же в реальной жизни этот нюанс абсолютно не мешает.Просто взяли сомнения что я что-то проглядел.Вобщем развеяли мои сомнения,спасибо.

  21. Здравствуйте! Имеются в наличии три не достаточно ярких семисигментных индикатора. Подскажите, можно ли повысить их яркость за счет применения в данной схеме ключей на транзисторах?

    • Здравствуйте! Можно то оно можно, да вот только индикатор тоже на определенный ток рассчитан и ярче, чем он может светить не будет. Я к тому что очень несложно сделать из “неяркого” индикатора – “мертвый” индикатор.

  22. elektra а у вас много проектов и довольно хорошие и вы всем отказываете хотя бы согласились на платную.На счет яркости .У меня на работе терморегулятор работает шестой год и горит очень ярко.Дисплей красный LN5644-11 N 4 значный ОА.Там сделано так.от выхода контроллера сразу без резисторов идет на базу транзистора.Коллектор то же сразу на +5в эммитеры сразу к общим анодам. ну а от a–g идет через резистор на контроллер. И зря вы не используете транзисторы.Я бы вот вольтметр тоже мог бы использовать на машину Газель но то же кое что добавить в прошивку(поставить зумер предупреждения от повышения и понижения напряжени от 13.6 и 15 в.Не хотите добавить этот хотя бы платно.

    • Юрий, я уже неоднократно это повторял, напишу Вам еще раз:
      Я не всегда и не всем отказываю в модификациях. Основная причина отказа – проект старый и закрытый. Другими словами через полгода после завершения во первых суть выветривается из головы и порой написать с нуля проще, чем что-либо добавить. Во вторых (и это основное) – через полгода у меня уже устройства как правило нет – применил, подарил и т.д. А для добавления чего-либо в любом случае нужно макетирование – писать на ассемблере вслепую – нет уж увольте.

      Ну и еще один неприятный нюанс. И хотел промолчать, но не получается. Последнее время часто смотрю на IP cпрашивающего… Еще буквально год назад живущих в России не отождествлял с тамошней властью, которую по сути своей ненавижу давно (как и нашего бывшего ублюдка что сбежал в Ростов)- это мое право. Теперь так увы не получается. Как говорит Ваша же статистика – с 85% вероятностью Вы теперь мой враг. Сами понимаете – энтузиазма что-то делать нет. И не рассказывайте мне про то что мы зомбированы Украинскими СМИ. Я живу всего в 90 км от линии фронта и замечательно вижу что происходит на самом деле. Кроме того у меня осталась масса друзей по ту линию фронта. Это чистейшего вида оккупация и ни о каком “братском” народе ближайшие лет 50-100 речь идти больше не будет в принципе. Осознайте это, прежде чем просить помощи у фашиста-бандеровца и рабовладельца завтракающего русскими младенцами и распинающего мальчиков.

  23. Сильно сказано .Я понял.Что бы вы там не писали и какой бы обиды не было на Россиян тут простой народ не причем. вы живете что и мы живем и мы не ведем политику .Что от вас и от нас трудяг ничего не зависит.

    • Да нет конкретно на Вас никакой обиды… Я все таки верю что адекватные люди в России есть. Но есть теперь и пропасть, и общаться придется исходя из того, что мы по разным сторонам. В первой половине (не политической) я Вам как мог объяснил почему сложно что-то менять и дописывать спустя какой-то промежуток времени, и дело реально не в том что Вы живете где-то в районе Казани.

      А насчет того что от нас ничего не зависит – наверное в этом и разница между нами. У нас многие (и я в том числе, хотя на майдане и не скакал, как любят у вас там говорить, и живу на том самом русскоязычном юге) поняли, что ЗАВИСИТ. И именно этого боится ваше х-ло сидящее в Кремле, ИМЕННО ЭТО причина всего происходящего у нас на востоке. Просто слабым местом оказались именно Крым, Донецк и Луганск. Провернуть такое-же на 100 км западнее у нас в Запорожье или соседнем Днепропетровске или Херсоне – уже не выйдет. Да у нас тут сносят Лениных и могут дать по лицу за “колорадскую” ленту, тем не менее что бы там Вам не рассказывали все памятники советским воинам целы и со свежими цветами не только у нас но и во Львове. Чувствуете в чем смысл? Доехать танками – наверное выйдет, закрепиться на некоторое время тоже выйдет, а вот удержаться не выйдет… Вспомните что Вам рассказывали в школе про западные области Украины. Что там националисты, бандеровцы, убийцы и т.д. и т.п. А на самом деле это был простой народ который защищал свою землю и длилось это до середины 50-х годов. Очень жаль, но чтобы понять это – пришлось попасть в их шкуру, и шансов на успех у нас теперь значительно больше. Причин тому много – нас теперь гораздо больше, Россия это как ни крути не СССР, х-ло далеко не Сталин, как бы он ни пыжился да и на дворе 21-й век, молчать в мире уже никто не будет. Не хотел Вас обидеть Юрий, но реально – выключите телевизор на недельку, пообщайтесь с людьми которым верите, почитайте новости из РАЗНЫХ стран (если имеете такую возможность) – будете неприятно удивлены. Все вокруг не совсем так, как показывают ваши новости… Да, наши тоже приврать любят, но до ваших – поверьте им как до луны… Вот так оно все как-то.

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

  25. ..занимался подобным вольтметром….переключал диапазоны (3 диапазона) с помощью полевиков IRL2505….несколько делителей и на вход операционника дальше измерение…тоже получилось, приемлимая точность …осталось с током позаниматься ))))))

    • Тоже делал на переключаемом делителе 🙂 Только без ОУ. Удивительно что китайские модульные вольтметры как правило имеют фиксированный шаг и диапазон измерения. Это же удорожает изделие при их массовости от силы на 1 цент.

      • Ну мне попадался китайский модульный вольтметр с двумя диапазонами…. Хотя это скорее все же исключение.

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *