Алгоритм виміру ємності конденсаторів на авр. Вимірювач ємності конденсаторів своїми руками

Це найпростіший вимірювач ємності. Є кілька методів вимірювання ємності, наприклад, за допомогою моста опорів або вимірюючи відхилення магнітної стрілки. Останнім часом типові вимірювачі ємності вимірюють ємність і деякі додаткові характеристики вимірюючи вектор струму, подаючи змінну напругу на вимірювану ємність. Деякі прості вимірювачі ємності використовують метод інтегрування, вимірюючи короткочасний відгук RC ланцюжка при перехідному процесі. Існують готові набори для збирання вимірювачів ємності, що реалізують цей метод.

У цьому вся проекті використовується метод інтегрування. Перевага цього методу в тому, що результат легко може бути отриманий відразу в цифровому вигляді, тому що метод заснований на вимірі часових інтервалів, точної аналогової схеми не потрібно, вимірювач легко може бути калібрований при використанні мікроконтролера. Таким чином, метод інтегрування найбільш підходить для вимірника ємності ручного складання.

Перехідний процес

Явище, що виявляє доки стан ланцюга не стабілізується після зміни стану, називається перехідним процесом. Перехідний процес це одне з фундаментальних явищ у імпульсних схемах. Коли вимикач на малюнку 1а розімкнеться, конденсатор буде заряджатися через резистор R і напруга Vc буде змінюватися так, як показано на малюнку 1b. Для зміни стану ланцюга на малюнку 1а, також можна змінювати ЕРС Е, замість використання вимикача, ці два методи будуть еквівалентні. Залежність напруги Vc від часу t виражається формулою.

(1)

Розмірності величин: t – секунди, R – Оми, C – Фаради, число – е, приблизно 2,72. коли напруга Vc досягне деякого значення Vc1 час t1 може бути виражено за формулою:

(2)

Це означає, що час t1 пропорційно С. Таким чином, ємність може бути обчислена з часу заряду та інших фіксованих параметрів.

Апаратна частина

Щоб виміряти час заряду потрібно лише компаратор напруги, лічильник і деяка сполучна логіка. Однак, мікроконтролер (AT90S2313), що використовується в цьому проекті, дозволяє реалізувати це простіше. Спочатку я думав, що аналоговий компаратор у контролерах AVR марний, але я виявив, що сигнал з виходу компаратора може бути поданий на вхід тригера ТС1. Це чудова нагода для нашого випадку.

Інтегруюча схема може бути спрощена, як показано на схемі пристрою. Опорна напруга створюється резистивним дільником. На вигляд здається, що використання дільника робить результат нестабільним до зміни напруги живлення, проте час заряду не залежить від напруги живлення. Використовуючи формулу (2), ви можете виявити, що напруга можна замінити параметром Vc1/E, який залежить тільки від співвідношення опорів дільника. Ця перевага використовується в мікросхемі таймера NE555. Зрозуміло, напруга живлення повинна бути стабільною під час вимірювання.

Відповідно до фундаментальних принципів, при вимірі ємності може бути використана тільки одна опорна напруга. Однак використання вхідної напруги близької до нуля є проблематичним з наступних причин.

  • Напруга ніколи не впаде до нуля вольт.Напруга на конденсаторі не може впасти до 0 вольт. Потрібен час, щоб розрядити конденсатор достатньо для низького рівня напруги, що дозволяє проводити вимірювання. Це збільшуватиме інтервал вимірювань. Падіння напруги на ключі розряду також збільшить цей ефект.
  • Є час між запуском заряду та стартом таймера.Це може спричинити помилку вимірювань. Цим можна знехтувати AVR, тому що їм потрібен лише один цикл тактової частоти, для цього. На інших контролерах, можливо, потрібно вирішувати цю проблему.
  • Струм витоку в аналоговому ланцюгу.Відповідно до специфікації AVR, струм витоку на аналогових входах зростає при напрузі на них близькому до нуля. Це може спричинити помилку вимірювань.

Щоб уникнути використання близької до нульової напруги, використовуються дві опорні напруги Vc1(0,17 Vcc) та Vc2(0,5 Vcc) та вимірюється різниця часових інтервалів t2-t1 (0,5RC). Це дозволяє уникнути вищеописаних проблем та затримка компаратора також компенсується. Друкована плата пристрою повинна бути у чистоті, щоб мінімізувати витік струму по поверхні.

Напруга живлення генерується перетворювачем, що живиться від 1,5 вольтової батарейки. Ключове джерело живлення не застосовується для схеми вимірювань, хоча на вигляд здається що схема не схильна до коливань напруги, оскільки в ланцюгу живлення застосовані два фільтри . Я рекомендую використовувати 9-ти вольтову батарейку з 5-ти вольтовим стабілізатором 78L05 замість ньогоі не виключайте функцію BOD ​​або ви будете страждати від псування даних в незалежній пам'яті контролера.

Градуювання

Щоб калібрувати нижній діапазон:Насамперед встановіть 0 кнопкою SW1. Потім підключіть прецизійний конденсатор ємністю 1 нФ, замкніть контакти #1 і #3 гнізда Р1 і натисніть кнопку SW1.

Щоб калібрувати верхній діапазон:підключіть прецизійний конденсатор ємністю 100 нФ, замкніть контакти #4 та #6 роз'єму Р1, натисніть кнопку SW1.

«Е4» при включенні означає, що калібрувальне значення енергонезалежної пам'яті пошкоджено. Це повідомлення ніколи не буде показано, якщо калібрування вже було проведено. Що стосується установки нуля, це значення не записується в незалежну пам'ять і вимагає повторної установки при кожному включенні і перед кожним виміром.

Використання

Автоматичне перемикання діапазону

Процес вимірювання запускається з інтервалом 500 мілісекунд з моменту підключення вимірюваної ємності. Вимірювання починається з нижнього діапазону (3,3мОм). Якщо напруга на конденсаторі не досягне 0,5 Vcc протягом 130 мілісекунд (>57 нФ), конденсатор розряджається і вимір перезапускається на верхньому діапазоні (3,3 кОм). Якщо напруга на конденсаторі не досягне 0,5 Vcc протягом 1 секунди (>440 мкФ), вимір скасовується і виводиться повідомлення «E2». У випадку, коли допустиме значення часу виміряне, ємність обчислюється та відображається. Значення ємності відображається таким чином, що на дисплеї відображаються перші три цифри зліва. Таким чином, автоматично вибираються два діапазони вимірювань і три діапазони відображення.

Знайшов я якось в інтернеті одну статейку азіатського розробника, в якій описувалося пристрій вимірювач ємності. Зібрано воно було на мікроконтролері та купі "зайвих" деталей. Так як були наведені формули та принцип розрахунку ємності, я вирішив зробити свій пристрій з мінімально необхідною кількістю елементів, яка задовольнить мої потреби. Оскільки залишилася вільна пам'ять, вирішив додати ще функцію частотоміра.

У пристрої лише дві кнопки, кнопка скидання (установка "0") та кнопка перемикання режимів роботи:

"Частотомір", "Вимірювання pF", "Вимірювання nF"

Принцип роботи пристрою заснований на вимірі часу заряду конденсатора до певної порогової напруги. Розрахунок проводиться в мікроконтролері за наведеною нижче формулою:

де T - час заряду, R - опір ланцюга заряду, C - ємність конденсатора, VC1 - напруга на конденсаторі в момент T, E - ЕРС ланцюга.

Вимірювач ємності працює у двох діапазонах вимірювань: "pF-градація 1pF" та "nF-градація 1nF".

Діапазон вимірювань першого режиму...........................1 пФ - 20 нФ, точність 1пФ
Діапазон вимірювань другого режиму...........................1 нФ - 22 мкФ, точність 1нФ
Діапазон вимірювань третього режиму.........................1 мкФ - 2000 мкФ, точність 1мкФ
Діапазон вимірювання частоти........................................10 Гц(*1Гц) - 8 МГц, точність 10Гц(*1Гц)
* - Для версії приладу з індикатором на контролері HD44780


КОНСТРУКЦІЯ:

Фьюз біти мікроконтролера можуть бути прошиті тактування від внутрішнього RC-генератора на частоті 8МГц, або тактування від зовнішнього кварцового резонатора.

Для тих, хто має проблеми з пошуком відповідного дисплея, викладаю схему підключення та прошивку для символьного дисплея з драйвером KS0066U (HD4478).

Дисплей TIC 8148...Аналог TIC55M

.

Конденсатори дуже широко застосовують у всіх типах електронних ланцюгів і без них не обходиться практично не одна радіосхема. У цьому проекті ми обговоримо техніку побудови цифрового вимірника ємності використовуючи мікроконтролер PIC. Цей проект може виміряти величини ємності з 1 nF до 99 uF (відповідно пикофаради теж міряє). Використаний у цьому проекті мікроконтролер це PIC16F628A.

Схема складається з двох частин, перша частина схеми представлена ​​нижче:

Друга частина:

Виведення другої частини з хеми підключаються до висновків мікроконтролера, відповідно до позначень на них.

Цей вимірювач ємності заснований на принципі конденсатора, що заряджається, через послідовний резистор. Якщо ми знаємо час, який потрібний для конденсатора, щоб заряджатися аж до відомої напруги, тоді ми можемо вирішити це рівняння для C, що знає величина R.

Знаючи величину резистора (у цьому випадку це - 22K) і час, що заряджається, ми можемо тепер вирішити конденсаторне рівняння, щоб обчислювати ємність C. У програмі використовується саме цей принцип. Вимірювання починається, коли натиснута кнопка вимірювання. Вимірювана ємність відображається на дисплеї LCD. Для живлення схеми потрібне джерело живлення напругою 5V.

Мікропрограма для мікроконтролера написана в C. Про компілятора PIC. Максимальна величина ємності вимірної 99.99 uF. Програма відображає повідомлення "З Діпазону" якщо вимірювана величина виходить за межі. Зрозуміло, що мікрофаради будуть вимірювати довше ніж пико або нанофаради. Прилад досить точний і похибка становить лише 1 nF.

Примітка:Високовольтні конденсатори перед початком виміру необхідно розрядити високоомним резистором.

Приклади вимірюваних ємностей:

/c]

Виявивши в інтернеті статтю Digital Capacitance Meter, я захотів зібрати цей вимірник. Однак під рукою не виявилося мікроконтролера AT90S2313 та світлодіодних індикаторів із загальним анодом. Натомість були ATMEGA16 у DIP-корпусі та чотирирозрядний семисегментний рідкокристалічний індикатор. Висновків мікроконтролера якраз вистачало на те, щоб підключити його до РКІ безпосередньо. Таким чином, вимірювач спростився всього до однієї мікросхеми (насправді, є і друга – стабілізатор напруги), одного транзистора, діода, жменьки резисторів-конденсаторів, трьох роз'ємів та кнопки. Прилад вийшов компактний та зручний у використанні. Тепер я не маю запитань про те, як виміряти ємність конденсатора. Особливо це важливо для SMD-конденсаторів з ємностями в кілька пикофарад (і навіть у частки пикофарада), які я завжди перевіряю перед тим, як паяти в яку-небудь плату. Зараз випускається безліч настільних та портативних вимірювачів, виробники яких заявляють про нижню межу вимірювань ємності в 0.1 пФ та достатню точність вимірювань таких малих ємностей. Однак у багатьох їх вимірювання проводяться на досить низькій частоті (одиниці кілогерц). Постає питання, чи можна отримати прийнятну точність вимірювань в таких умовах (навіть якщо паралельно вимірюваному підключити конденсатор більшої ємності)? Крім того, в інтернеті можна знайти досить багато клонів схеми RLC-метра на мікроконтолері і операційному підсилювачі (такій, що з електромагнітним реле і з одно-або дворядковим РКІ). Однак такими приладами малі ємності поміряти «по-людськи» не вдається. На відміну від багатьох інших цей вимірник спеціально спроектований для вимірювання малих значень ємності.

Що стосується вимірювання малих індуктивностей (одиниці наногенрі), то я для цього успішно використовую аналізатор RigExpert AA-230, який випускає наша компанія.

Фотографія вимірювача ємності:

Параметри вимірювача ємності

Діапазон вимірювання: від 1 пФ до 470 мкФ.
Межі вимірювання: автоматичне перемикання меж – 0…56 нФ (нижня межа) та 56 нФ… 470 мкФ (верхня межа).
Індикація: три значущі цифри (дві цифри для менших ємностей, ніж 10 пФ).
Управління: єдина кнопка для встановлення «нуля» та калібрування.
Калібрування: одноразове, за допомогою двох зразкових конденсаторів, 100 пФ і 100 нФ.

Більшість висновків мікроконтролера підключена до РКІ. До деяких із них також підключений роз'єм для внутрішньосхемного програмування мікроконтролера (ByteBlaster). Чотири висновки задіяні у схемі вимірювання ємності, включаючи входи компаратора AIN0 та AIN1, вихід управління межами вимірювання (за допомогою транзистора) та вихід вибору порогової напруги. До єдиного висновку, що залишився, мікроконтролера підключена кнопка.

Стабілізатор напруги +5 зібраний за традиційною схемою.

Індикатор – семисегментний, на 4 знаки, з прямим підключенням сегментів (тобто не мультиплексний). На жаль, на РКІ не було маркування. Таку ж цоколівку та розміри (51×23 мм) мають індикатори багатьох фірм, наприклад, AND та Varitronix.

Схема наведена нижче (на схемі не показаний діод для захисту від «переполюсування», через нього рекомендується підключити роз'єм живлення):

Програма мікроконтролера

Оскільки ATMEGA16 – із серії «MEGA», а не із серії «tiny», особливого сенсу писати асемблерну програму немає сенсу. Мовою Сі вдається зробити її набагато швидше і простіше, а пристойний обсяг flash-пам'яті мікроконтролера дозволяє користуватися вбудованою бібліотекою функцій з плаваючою точкою при розрахунку ємності.

Мікроконтролер проводить вимірювання ємності за два кроки. Насамперед визначається час заряду конденсатора через резистор опором 3.3 МОм (нижня межа). Якщо потрібна напруга не досягнута протягом 0.15 секунд (що відповідає ємності близько 56 пФ), заряд конденсатора повторюється через резистор 3.3 кОм (верхня межа вимірювання).

При цьому мікроконтролер спочатку розряджає конденсатор через резистор опором 100 Ом, а потім заряджає його до напруги 0.17 В. Тільки після цього заміряється час заряду до напруги 2.5 (половина напруги живлення). Після цього цикл вимірювання повторюється.

При виведенні результату на висновки РКІ подається напруга змінної полярності (щодо загального дроту) з частотою близько 78 Гц. Досить висока частота повністю усуває мерехтіння індикатора.

За допомогою даного вимірювача ємності можна легко виміряти будь-яку ємність від одиниць пФ до сотень мкФ. Існує кілька методів виміру ємності. В даному проектівикористовується інтеграційний метод.

Головна перевага використання цього методу в тому, що вимір заснований на вимірі часу, що може бути виконано на МК досить точно. Цей метод дуже підходить для саморобного вимірювача ємності, до того ж легко реалізуємо на мікроконтролері.

Принцип роботи вимірювача ємності

Явища, що відбуваються за зміни стану схеми називаються перехідними процесами. Це з фундаментальних понять цифрових схем. Коли ключ на малюнку 1 розімкнуто, конденсатор заряджається через резистор R, і напруга на ньому зміняться як показано на малюнку 1b. Співвідношення визначальна напруга на конденсаторі має вигляд:

Величини виражені в СІ одиницях, t секунди, R оми, C фаради. Час за яке напруга на конденсаторі досягне значення V C1 , приблизно виражається такою формулою:

З цієї формули випливає, що час t1 пропорційний ємності конденсатора. Отже, ємність може бути обчислена з часу заряджання конденсатора.

Схема

Для вимірювання часу зарядки достатньо компаратора і таймера мікроконтролера, і мікросхеми цифрової логіки. Цілком розумно використовувати мікроконтролер AT90S2313 (сучасний аналог – ATtiny2313). Вихід компаратора використовується як тригер T C1. Порогова напруга встановлюється резисторним дільником. Час заряджання не залежить від напруги живлення. Час зарядки визначається формулою 2, отже воно залежить від напруги харчування т.к. співвідношення у формулі VC 1 /E визначається лише коефіцієнтом дільника. Звичайно, в час вимірювання напруга харчування має бути постійно.

Формула 2 виражає час заряджання конденсатора від 0 вольт. Проте з напругою близькою до нуля складно працювати через такі причини:

  • Напруга не зменшується до 0 Вольт.Для повної розрядки конденсатора потрібен час. Це призведе до збільшення часів і вимірювання.
  • Потрібен час між стартомзарядки та запуском таймера.Це спричинить похибку вимірювання. Для AVR це критично т.к. на це потрібен лише один такт.
  • Витік струму на аналоговому вході.Відповідно до даташиту AVR, витік струму зростає при напрузі на вході близькому до нуля вольт.

Для запобігання цим складностям використано дві порогові напруги VC 1 (0.17 Vcc) і VC 2 (0.5 Vcc). Поверхня друкованої плати має бути чистою для мінімізації струмів витоку. Необхідна напруга живлення мікроконтролера забезпечується DC-DC перетворювачем, який працює від 1.5VAA батарейки. Замість DC-DC перетворювача бажано використовувати 9 Vбатарейку та перетворювач 78 L05, бажанотакожне вимикатиBOD, інакше можуть виникнути проблеми з EEPROM.

Калібрівка

Для калібрування нижнього діапазону:За допомогою кнопки SW1. Потім, з'єднайте pin #1 і pin #3 на роз'єм P1, вставте конденсатор 1nF і натисніть SW1.

Для калібрування верхнього діапазону:Замкніть pin #4 і #6 роз'єму P1, вставте конденсатор на 100nF і натисніть SW1.

Напис "E4" під час увімкнення означає, що калібрування в EEPROM не знайдено.

Використання

Автоматичне визначення діапазону

Заряджання починається через резистор 3.3М. Якщо напруга на конденсаторі не досягне 0.5 Vccменше ніж за 130 mS (>57nF), відбувається розрядка конденсатора і нова зарядка, але вже через резистор 3.3кОм. Якщо напруга на конденсаторі не досягає 0.5 Vcc за 1 секунду (>440µF), напис "E2". Коли час виміряно, відбувається обчислення та відображення ємності. Останній сегмент відображає діапазон вимірювання (pF, nF, µF).

Затискач

Як затиск можна використовувати частину якого-небудь сокету. При вимірі малих ємностей (одиниці пикофарад) використання довгих дротів небажане.