Измерение емкости на ATMEGA8
Запись от yariko размещена 18.09.2023 в 13:27
Как измерить емкость конденсатора? Емкость это реактивный параметр электрической цепи, а потому его нельзя измерить простым омметром или вольтметром. Однако с этой задачей может легко справиться микроконтроллер (МК). У любой емкости существует параметр "постоянная времени" RC, также называемая "тау". Постоянная времени (в секундах) RC-схемы, равна произведению сопротивления схемы (в Омах) и емкости схемы (в Фарадах), т.е.: Vc(t) = Vo*(1 - e^(-t / τ)), τ = R * C, данный параметр характеризует за какое время (секунд) напряжение на заряжаемой емкости Vc окажется равным 62,3% от номинального Vo. Таким образом, зная сопротивление и время заряда емкости до значения 0,632*Vo, можно рассчитать значение измеряемой емкости. Время заряда можно легко измерить с помощью МК. Тестировать устройство будем в среде моделирования Proteus 8. Схема Рассмотрим кратко схему LCD1 экран 122*32 точек, на нем будет выводится измеренное значение емкости конденсатора С1. (а почему матричный? спросите вы. - этоже круто, добавим в нашу разработку немного графики!) U2-U4 формируют тактовые импульсы Е1, Е2 для LCD1. (да, знаю о чем вы подумали, их можно былобы формировать и программно с МК.) С1 - "виновник торжества". R1 - разрядное сопротивление для конденсатора С1. (выбрано с учетом ограничения по току порта МК, хотя реально "пожечь" здесь ничего нельзя.) R3 - зарядное сопротивление для конденсатора С1. U1 - "царь всей схемы". МК работает от 5 Вольт, опорное напряжение АЦП принимаем также 5 Вольт. Стоит заметить, что среда разработки Proteus довольно вольно относится к построению схем, например, питание на некоторые узлы подается по умолчанию, например, питание экрана и МК. Итак, схема есть. Теперь прикинем алгоритм, что нужно сделать, чтоб измерить емкость: 1.подключить измеряемую емкость (С1). 2.разрядить емкость, до видимого 0 Вольт. Почему "видимого"? Все просто, по экспоненте до абсолютного ноля емкость будет долго разряжаться. В данном случае пренебрежем небольшой погрешностью (нам же не на Андромеду лететь). 3.произвести заряд емкости до напряжения 0,632 * 5 Вольт (напряжение питания), одновременно измерив данный промежуток времени. 4.вывести измеренное значение в читаемом (десятичном) виде на экран. Программная реализация Программа МК не только измеряет емкость, но и работает с выводом информации на экран. Рассмотрим только основные детали, кто хочет посмотреть код целиком будет ссылка в конце статьи. Перед началом измерений сбрасываем таймер.
Запускаем Proteus (при наличии) и смотрим полученный результат. Можно поиграть с емкостью С1 и посмотреть какие результаты будут выводится на экране. Вот для примера измерение, как видно, текущее и измеренное значение емкости совпало: Заключение Из теста программы можно сделать вывод, что программа работает, и измеряет емкость конденсатора почти точно в диапазоне от 0,01 мкф до 5 мкф с точностью 10 нф. Для большей точности видимо следует внести коррекцию падения напряжения на порте МК или использовать больше бит АЦП преобразователя и поставить кварц вместо встроенного тактового генератора, а для увеличения диапазона измерений нужно уменьшить\увеличить выборку ТАЙМЕРА и\или зарядный ток через R3. Например, увеличивая период измерения ТАЙМЕРА или уменьшив сопротивление R3, можно мерить большие емкости, а уменьшив - наоборот. В общем еще много вариантов усовершенствования данной схемы. Файлы проекта Proteus_TestC.zip |
Всего комментариев 0
Комментарии