Измеритель емкости
(самый простой цифровой измеритель
емкости на микроконтроллере AVR)
Обнаружив в интернете статью Digital Capacitance Meter, я захотел собрать этот измеритель. Однако под рукой не оказалось микроконтроллера AT90S2313 и светодиодных индикаторов с общим анодом. Зато были ATMEGA16 в DIP-корпусе и четырехразрядный семисегментный жидкокристаллический индикатор. Выводов микроконтроллера как раз хватало на то, чтобы подключить его к ЖКИ напрямую. Таким образом, измеритель упростился всего до одной микросхемы (на самом деле, есть и вторая - стабилизатор напряжения), одного транзистора, диода, горстки резисторов-конденсаторов, трех разъемов и кнопки.
Прибор получился компактный и удобный в использовании. Теперь у меня нет вопросов о том, как измерить емкость конденсатора. Особенно это важно для SMD-конденсаторов с емкостями в несколько пикофарад (и даже в доли пикофарада), которые я всегда проверяю перед тем, как в паять в какую-нибудь плату. Сейчас выпускается множество настольных и портативных измерителей, производители которых заявляют о нижнем пределе измерений емкости в 0.1 пФ и достаточной точности измерений таких малых емкостей. Однако во многих из них измерения проводятся на довольно низкой частоте (единицы килогерц). Спрашивается, можно ли получить приемлемую точность измерений в таких условиях (даже если параллельно измеряемому подключить конденсатор большей емкости)? Кроме того, в интернете можно найти довольно много клонов схемы RLC-метра на микроконтолллере и операционном усилителе (той самой, что с электромагнитным реле и с одно- или двухстрочным ЖКИ). Однако такими приборами малые емкости померить «по-человечески» не удается. В отличие от многих других, этот измеритель специально спроектирован для измерения малых значений емкости.
Что касается измерения малых индуктивностей (единицы наногенри), то я для этого с успехом использую анализатор RigExpert AA-230, который выпускает наша компания.
Фотография измерителя емкости:

Параметры измерителя емкости
Диапазон измерения: от 1 пФ до примерно 470 мкФ.
Пределы измерения: автоматическое переключение пределов - 0...56 нФ (нижний предел) и 56 нФ ... 470 мкФ (верхний предел).
Индикация: три значащие цифры (две цифры для емкостей меньших, чем 10 пФ).
Управление: единственная кнопка для установки «нуля» и калибровки.
Калибровка: однократная, при помощи двух образцовых конденсаторов, 100 пФ и 100 нФ.
Схема
Стабилизатор напряжения +5 В собран по традиционной схеме.
Индикатор - семисегментный, на 4 знака, с прямым подключением сегментов (т.е. не-мультиплексный). К сожалению, на ЖКИ не было маркировки. Такую же цоколевку и размеры (51x23 мм) имеют индикаторы многих фирм, например, AND и Varitronix.
Схема приведена ниже (на схеме не показан диод для защиты от «переполюсовки», через него рекомендуется подключить разъем питания):
Программа микроконтроллера
Поскольку ATMEGA16 - из серии «MEGA», а не из серии «tiny», особого смысла писать ассемблерную программу нет смысла. На языке Си удается сделать ее гораздо быстрей и проще, а приличный объем flash-памяти микроконтроллера позволяет пользоваться встроенной библиотекой функций с плавающей точкой при расчете емкости.
Микроконтроллер проводит измерение емкости за два шага. В первую очередь, определяется время заряда конденсатора через резистор сопротивлением 3.3 МОм (нижний предел). Если необходимое напряжение не достигнуто в течение 0.15 секунд (что соответствует емкости около 56 пФ), заряд конденсатора повторяется через резистор 3.3 кОм (верхний предел измерения).
При этом микроконтроллер сперва разряжает конденсатор через резистор сопротивлением 100 Ом, а затем заряжает его до напряжения 0.17 В. Только после этого замеряется время заряда до напряжения 2.5 В (половина напряжения питания). После этого, цикл измерения повторяется.
При выводе результата на выводы ЖКИ подается напряжение переменной полярности (относительно его общего провода) с частотой около 78 Гц. Достаточно высокая частота полностью устраняет мерцание индикатора.
Использовался компилятор WinAVR (AVR-GCC) и программатор AVRISP mkII. Микроконтроллер можно запрограммировать и при помощи AVReAl, но придется подобрать параметры командной строки.
Конструкция
Измеритель собран на отрезке макетной платы. Как микроконтроллер, так и ЖКИ имеют 40-выводный корпус с шагом выводов 2.54 мм и разным расстоянием между рядами. Благодаря этому можно установить их друг под другом:

При этом уменьшается размер платы и упрощается монтаж, поскольку большинство выводов соединено между собой короткими проводниками. Для того, чтобы появилась возможность использовать для этого провод без изоляции, контактные площадки между рядами выводов можно удалить:

На той же стороне платы, что и микроконтроллер и ЖКИ, размещены транзистор, разъем программирования и разъем питания. Здесь же находится разъем для подключения измеряемой емкости (отрезок панельки для микросхем) и контакты для подключения емкостей в SMD-корпусе (выполнены из изогнутых отрезков провода без изоляции). Чем меньше длина соединительных проводов в цепях измерения, тем выше стабильность показаний, особенно, для емкостей в единицы пикофарад. По этой же причине все резисторы и конденсаторы - в SMD-исполнении.
Кварцевый резонатор, микросхема стабилизатора, диод и резисторы-конденсаторы установлены на стороне монтажа:

При помощи четырех стоек плата закреплена на основании, снабженном резиновыми ножками.
Работа с измерителем емкости
Для того, чтобы определить емкость неизвестного конденсатора, нужно просто подключить его к измерителю. Предел измерений будет выбран автоматически, отображая «p» - пикофарады, «n» - нанофарады и «μ» - микрофарады. Также, будет меняться положение десятичной точки. При подключении слишком большой емкости на ЖКИ будет выведено «999μ».
Нижний и верхний пределы измерения переключаются при значении емкости около 56 нФ. При подключении такой емкости возможны незначительные скачки показаний, поскольку два разных предела измерений калибруются при помощи разных образцовых конденсаторов.
Калибровка и установка «нуля»
Если при включении питания держать кнопку нажатой, измеритель перейдет в режим калибровки. При этом на ЖКИ загорится надпись «CAL». Затем, отобразится значение «100p». При этом нужно подключить к измерителю емкость 100 пФ и нажать кнопку. Далее появится значение «100n» - нужно подключить конденсатор емкостью 100 нФ и еще раз нажать кнопку. После этого измеритель перейдет в обычный режим.
Установка «нуля» происходит при нажатии кнопки в режиме измерения (на ЖКИ отобразится значение «000»). Она необходима для того, чтобы скомпенсировать емкость монтажа (несколько пикофарад).
Файлы
Схема
Программа
Денис Нечитайлов, UU9JDR
05.02.2008
P.S. от 7.11.2009:
Ссылки по теме:
Цифровой
измеритель ёмкости - японская статья, переведенная на
русский язык
Цифровой
измеритель ёмкости elm-chan`а - обсуждение схемы
Измеритель ёмкости
- конструкция на PIC-контроллере
Измеритель
емкости и частотомер на AVR микроконтроллере
P.S. от 18.11.2009:
Меня не раз спрашивали, как переделеть этот измеритель для
подключения к светодиодным индикаторам. Отвечаю: Светодиодные
индикаторы, как и ЖКИ с контроллером (а также черно-белые ЖКИ от
всяческих телефонов) не обеспечивают того качества «картинки»,
которое
меня устроило бы. Поэтому предлагаю не мучаться, а сходить на
ближайший
радиобазар или в ближайшую фирму, торгующую электронными
компонентами,
и купить такой же индикатор, какой я поставил в свой измеритель.
P.S. от 29.03.2010:
Ссылки по теме:
Измеритель
емкости конденсаторов от 1пФ до 470 мкФ
- статья на сайте Easy Electronics с печатной платой и
расстановкой
фьюзов для программатора AVRDUDE (игнорируем замечание узколобых
юзеров о якобы
невозможности компенсации емкости разъема а также очередное
предложение
поставить другой индикатор).
На этой же странице - схема измерителя емкости с увеличенным
пределом измерений, программа. Другой ЖКИ.
Комментарии посетителей
Комментариев: 47. Страница 1 из 1. Добавить новый.
Ваге Альфредович Арак Армения | Добавлено: 01:12, 19.11.2012 |
Имею цифровой прибор для измерения емкости, достаточно добротной, диапазоном измерении от долей пикофарада до милифарадов. Встала задача измерения индуктивности. Подумал, что последовательно с конденсатором подключая индуктивность, показание прибора должно меняться. Так и случилось. Как из этой разницы показании рассчитать идуктивность? | |
ivandevel Ekaterinburg | Добавлено: 16:45, 23.09.2011 |
Здравствуйте! Можно ли в схеме применить стабилизированное питание 3.3В? Нужно ли для этого менять какие-либо номиналы? Комментарий администратора: Попробуйте - может быть, получится. | |
Женя Шатура | Добавлено: 12:09, 29.03.2011 |
Ребят подскажите пожалуйста чайнику, как в схеме работает транзистор, и для чего нужны резисторы R2,3,5. Заранее спасибо. | |
Женя Шатура | Добавлено: 12:09, 29.03.2011 |
Ребят подскажите пожалуйста чайнику, как в схеме работает транзистор, и для чего нужны резисторы R2,3,5. Заранее спасибо. | |
Жека Москва | Добавлено: 09:58, 21.03.2011 |
И почему у него 3 ноги? Комментарий администратора: Средняя нога - корпус. | |
Жека Москва | Добавлено: 05:03, 21.03.2011 |
Вопрос такой: можно ли кварц 10 МГц заменить на другой номинал (ну нету ровно 10)? В прошивке что-нибудь надо править? Комментарий администратора: Можно - заменяйте. В прошивке ничего менять не надо. | |
andrej latvija | Добавлено: 14:14, 23.04.2010 |
собрал данный девайс и столкнулся с такой бедой. не горят сегменты g3,f3,a3,b3. короче-половина цифры. прошивал несколько раз. пробовал сегменты к другим выходам--горят нормально. как будто нет выхода с меги. что бы это могло быть??? мегу другую тоже пробовал.результат тотже. может с прошивкой что? подскажите чайнику,что дальше делать? Комментарий администратора: Проверьте фьюзы - возможно, они запрограммированы так, что используются какой-то другой функцией микроконтроллера. | |
PRC Moscow | Добавлено: 06:39, 2.04.2010 |
Печатная плата под оригинальную версию. Все на сайте Easy Electronics | |
DEST Беларусь | Добавлено: 02:47, 30.03.2010 |
Не игнорируем сообщение о установке другого индикатора. Увеличен диапазон измерений до 9999 мкф. | |
AVR | Добавлено: 08:55, 29.03.2010 |
А какие еще транзисторы можно поставить? КТ361 подойдет? Комментарий администратора: Должен подойти. | |
Максим шахты | Добавлено: 09:59, 11.02.2010 |
Да должно, но увы, сам уже голову сломал. | |
Максим шахты | Добавлено: 09:29, 11.02.2010 |
Проверил, так и есть, как писал выше Комментарий администратора: Если и в программе и в схеме все в порядке - значит, должно работать. :-) | |
Максим шахты | Добавлено: 09:21, 11.02.2010 |
контроллер рабочий из часиков вытащил, часы работали нормально, может конфигурация, у меня получилось так: SPIEN, CKOPT, EESAVE, BOOTSZ0, BOOTSZ1, SUT0 так ли это? Комментарий администратора: Проверьте по даташиту на контроллер. Значения fuse bits должно быть C1EF, extended fuse - 03 . | |
Максим Шахты | Добавлено: 03:04, 8.02.2010 |
Проверено неоднократно и контроллер перешивал и транзюк менял, ничего не изменилось. Комментарий администратора: Может быть, процессор с дефектом? | |
максим шахты | Добавлено: 23:21, 6.02.2010 |
проверено, ошибок нет Комментарий администратора: Все просто: нужно проверить еще раз... | |
максим Шахты | Добавлено: 10:25, 6.02.2010 |
Скажите пожалуйста в чем проблема, собрал измеритель, вроде работает, но только на малом пределе, т.е от 1 до 100пф, если ставлю 100n-470мк, то повышается потребление тока измерителем, от источника питания 100мла и на индикаторе 0000 "тускло" еле просвечиваются нолики. Комментарий администратора: Очевидно, что ошибка в монтаже. А где же еще? | |
Дмитрий Беларусь | Добавлено: 23:23, 1.02.2010 |
С согласия автора я переделал проект. На данном этапе сделано индикаторы 7-ми сегментные, предел увеличен в большую сторону приблизительно до 9000 мкф. | |
Максим Шахты | Добавлено: 10:43, 1.02.2010 |
Скажите пожалуйста, как считать нумерацию разрядов, т.е если смотреть на индикатор с лицевой стороны, 1-слева или 1-справа Комментарий администратора: Насколько я помню, первый - слева. | |
Иван Украина | Добавлено: 12:16, 7.01.2010 |
Игорь Москва, подскажите марку используемого ЖКИ . | |
Максим Шахты | Добавлено: 06:49, 28.12.2009 |
Конечно сложно, когда в програмировании МК, полный ноль Комментарий администратора: Придется пересилить себя и почитать, все-таки, описание микроконтроллера. | |
Алексей aka CoolBassNik Днепропетровск | Добавлено: 05:53, 27.12.2009 |
Респект автору. Наверное мы просто сошлись мыслями.. Авторская статья измерителя емкости 1пФ...2000мкФ и частотомера 10Гц..8000КГц на сайте mukpocxem .net .ru Комментарий администратора: ОК, исправил ссылку. | |
Максим Шахты | Добавлено: 17:51, 26.12.2009 |
Нет, так не пойдет, например SUTO-0, Комментарий администратора: Смотрите описание микроконтроллера - там подробно описано, каким битам соответствуют определенные фьюзы. Разве это так сложно? | |
Игорь Москва | Добавлено: 11:03, 20.12.2009 |
Прибор работает отлично! Не помешало бы добавить и измерение индуктивностей! Комментарий администратора: Спасибо, Игорь! У Вас есть идея, как переделать этот прибор в измеритель индуктивностей? Пишите, добавим. | |
Максим шахты | Добавлено: 05:24, 20.12.2009 |
Так чем их посмотреть, непонятки Комментарий администратора: Текстовым редактором в файле p.bat. | |
максим шахты | Добавлено: 23:20, 18.12.2009 |
Мужики, скиньте пожалуйста фото для лошади, конфигурацию фузов для этой схемки Комментарий администратора: Про фото для лошади ничего не знаем, а остальное есть внутри прилагаемых файлов. | |
Игорь Москва | Добавлено: 15:05, 19.11.2009 |
Чего то не меряет.Калибрую,нажимаю сброс,цыферки бегут и не останавливаются. Комментарий администратора: Игорь, пока могу только предложить перепроверить монтаж... | |
Игорь Москва | Добавлено: 09:37, 16.11.2009 |
Чего то я диод не вижу в упор!Хотя вначале написано что он там есть! Комментарий администратора: Игорь, Вы глазастый! :-) Действительно, диод на схеме не нарисован (а на плате есть). Через диод подается питание - защита от переполюсовки. | |
Иван Украина | Добавлено: 14:55, 6.11.2009 |
С контактами разобрался.Подскажите плиз, RST висит в воздухе.На питание подать? Напрямую,без резистора?Заранее спс. Комментарий администратора: Иван, можно никуда не подключать. | |
Иван Украина | Добавлено: 12:59, 2.11.2009 |
Спасибо.А почему контактов 4 и как ими пользовать? Комментарий администратора: Соединить по два параллельно. | |
Иван Украина | Добавлено: 07:23, 1.11.2009 |
Подскажите начинающему.Что за черный разъем на 4 контакта ниже ЖКИ и транзистора слева на фото с готовым изделием ? Комментарий администратора: Это разъем для подключения измеряемого конденсатора. | |
Alewka | Добавлено: 15:02, 29.04.2009 |
Если кому интересно - могу выложить фотку готового девайса с динамич. индикацией, все на SMD, транзистор заменил обычным ключем 2A, все было на односторонке без перемычек, сейчас одна добавилась изза ошибки с портами РА-РВ) Комментарий администратора: Конечно же, интересно! :-) | |
Alewka | Добавлено: 14:59, 29.04.2009 |
готово ) за 10 минут переделал схему и прошивку - меряет! первый проект на авр - завершен ) спасибо автору за схему :) Осталось откалибровать, под рукой нет 100р и 100н :) сейчас на 100мф показывает 400 :) | |
Alewka | Добавлено: 14:32, 29.04.2009 |
Ай-яй-яй :) как эт я недосмотрел что это компаратор ) только начал с авр работать, вот и решил что удобнее заменить порт вывода на PB2 ) видимо проблема решится как всетаки поставлю на место ) | |
Alewka Odessa | Добавлено: 01:08, 28.04.2009 |
Здравствуйте! помогите пожалуста с программой. Переделал железо на 7 сегментный мультиплексный индикатор, изменил подпрограмму вывода на динамическую индикацию, и конструктивно было более удобно заменить порты PB2 -> PA3. Изменил в программе все обращения clrbit, setbit pb2 на pa3, Измеритель запускается, пишет 999U и нивкакую не хочет измерять емкости. Подскажите как можно отладить железо и софт? тестер показывает что на выводах напряжение появляется (около 1.2в). Подозреваю надо переделать таймеры, но не понимаю пока еще в программировании АВР, раньше работал на асме под х86. Спасибо! Комментарий администратора: PB2 - один из портов компаратора (второй вход - PB3). Как бы ни было неудобно конструктивно, использовать его придется. Отлаживайте железо и софт последовательно: сперва индикацию, затем математику, в последнюю очередь - сам алгоритм измерения. Все получится! Интересно было бы посмотреть на Вашу схему подключения мультиплексного ЖКИ. Денис. | |
Олександр Ужгород | Добавлено: 04:56, 25.04.2009 |
Доброго Дня!Поможіть розібратися з програмою!(як вона функціонує?(алгоритм))Я початківець.Дякую! Комментарий администратора: Александр, смотрите ссылку на японский сайт в начале страницы. Там очень подробно расписан алгоритм работы. | |
Alewka Odessa | Добавлено: 00:04, 15.04.2009 |
Привет! | |
Юрий Одесса, Украина | Добавлено: 06:44, 19.02.2009 |
Спасибо за статью и за исходники. Попробую повторить. 73! | |
Сергей Сочи | Добавлено: 14:54, 14.02.2009 |
Доброго времени суток! Комментарий администратора: Сергей, при переходе на другой микроконтроллер неплохо бы сперва убедиться, что у него присутствует все необходимое для данной задачи "железо". После этого можно просто поменять тип микроконтроллера в файле makefile. Перейти на светодиодный индикатор можно, вернувшись к оригинальной схеме (см. ссылку в начале статьи) - но ЖКИ выигрывает как по простоте монтажа, так и по качеству "картинки". | |
Tester500 Rus | Добавлено: 11:43, 27.01.2009 |
Все, нужда в ИЖЦ отпала. У нас ИЖЦ стоит 50р (1,5$), а ЖКИ с контроллером от сотика Ericsson T28 40р (1,2$). Нужно только пяток проводов приклеить к стеклу токопроводным клеем. Проект сократится до 90s2313. А за 135р (4$) можно взять цветной дисплей от Nokia 3510I . Комментарий администратора: Собственно, нужды никакой и не было. Просто хотелось получить качественное и приятное для глаза изображение - а графические ЖКИ от телефонов этим явно не отличаются. | |
Tester500 Rus | Добавлено: 10:16, 26.01.2009 |
Раньше смотрел схемы драйверов ЖКИ, там столько всяких хитростей - и частота сотни килогерц, и смена полярности, и ограничение тока. У меня есть несколько 89C51, попробую адаптировать проект для них. | |
Tester500 Rus | Добавлено: 02:22, 26.01.2009 |
LCD подключен напрямую, раньше думал, что это трудно. Можно поподробней об этом? Комментарий администратора: Все как раз просто - подключаем ЖКИ напрямую к выводам процессора и зажигаем нужный сегмент. Несколько десятков раз в секунду меняем полярность. И все. | |
Дмитрий Витебск | Добавлено: 23:10, 11.01.2009 |
Вопрос к автору. Денис вы не против если я буду дорабатывать ваш проект, и выложу его в свободном доступе? На данном этапе уже сделан перевод на 7-ми сегментные светодиодные индикаторы. Сейчас пытаюсь увеличить диапазон измерения в большую сторону. Комментарий администратора: Дмитрий, пожалуйста, дорабатывайте. Хотя, по-моему, светодиодные индикаторы - это шаг назад... Денис. | |
Николай Санкт-Петербург | Добавлено: 13:30, 24.11.2008 |
вопрос к тем кто использовал схему, или к тому кто её проектировал: подскажите ,пожалуйста, какой номинал у R7- на схеме опечатка Комментарий администратора: Николай! Сопротивление этого резистора - 100 Ом. Смотрите оригинальную схему на японском сайте - ссылка в начале статьи. | |
Денис | Добавлено: 10:22, 15.03.2008 |
Фьюзы: после -f и -E идут числа. Если перевести их в двоичный вид, то получится побитовое представление фьюзов. Смотрите описание ATMEGA. | |
Дмитрий Беларусь | Добавлено: 08:56, 15.03.2008 |
Фьюзы посмотрел, ничего не понял, я к сожалению слабоват в этом деле. Если не затруднит поконкретнее. А насчёт ног я уже переделал на динамическую индикацию с 7-ми сегментными индикаторами, вот думаю добавить ещё 1. | |
Денис | Добавлено: 15:46, 14.03.2008 |
Дмитрий, смотрите параметры -f и -E в файле p.bat. Это шестнадцатеричные значение фьюзов и extended фьюзов. На счет увеличения диапазона я, к сожалению, не думал. Можно поставить еще один транзистор с резистором 330 Ом вместо R9 - но не хватает ног процессора. Видимо, ридется упрощать символы "u", "n" и "p". | |
Дмитрий Беларусь | Добавлено: 14:44, 14.03.2008 |
Переработка интересная. Пару вопросов назрели возможно ли увеличить диапазон измеряемых емкостей в большую сторону. И второй как сконфигурировать фьюзы в ChipBlaster. | |
