Схема:
Вряд ли покажусь оригинальным со своей конструкцией "очередного 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", что само по себе свидетельствует о точности выше среднего.
Печатка, прошивка