Съдържание:
- Стъпка 1: Схема и теория
- Стъпка 2: Строителство
- Стъпка 3: Софтуер
- Стъпка 4: Работа и разширено калибриране
Видео: Измервател на кондензатор ATTiny85: 4 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:50
Тази инструкция е за измервател на кондензатор, базиран на ATTiny85 със следните функции.
- Въз основа на ATTiny85 (DigiStamp)
- SSD1306 0,96 "OLED дисплей
- Измерване на честотата за кондензатори с ниска стойност 1pF - 1uF с помощта на 555 осцилатор
- Измерване на времето за зареждане за кондензатори с висока стойност 1uF - 50000uF
- 2 отделни порта, използвани за методите за минимизиране на стария капацитет
- Две стойности на тока, използвани за Charge Time за минимизиране на времето за големи кондензатори
- Самостоятелни нули по метод 555 при стартиране, могат да бъдат пренасочени с натискане на бутон
- Бърз тест, използван за избор на метод, който трябва да се използва за всеки цикъл на измерване.
- Точността на метода за време на зареждане може да бъде подобрена чрез поддръжка за регулиране на тактовата честота на OSCVAL
Стъпка 1: Схема и теория
Схемата показва ATTiny, управляващ SSD1306 OLED дисплея чрез I2C интерфейс. Захранва се директно от LiOn 300mAh батерия и е включена точка за зареждане, която може да се използва с LiOn съвместимо външно зарядно устройство.
Първият метод на измерване се основава на измерване на честотата на свободно работещ осцилатор 555. Това има базова честота, определена от резисторите и кондензатор, който трябва да бъде с висока точност, тъй като това определя точността на измерванията. Използвах 820pF 1% полистиролов кондензатор, който имах, но могат да се използват и други стойности около 1nF. Стойността трябва да бъде въведена в софтуера заедно с оценка на всеки разсеян капацитет (~ 20pF). Това дава базова честота от около 16KHz. Изходът на 555 се подава в PB2 на ATTiny, който е програмиран като хардуерен брояч. Чрез измерване на броя за период от около 1 секунда може да се определи честотата. Това се прави при стартиране, за да се определи базовата честота. Когато изпитваният кондензатор се добави паралелно към базовия кондензатор, тогава честотата се понижава и когато това се измерва и сравнява с базовата честота, тогава стойността на добавения капацитет може да бъде изчислена.
Хубавото на този метод е, че изчислената стойност зависи само от точността на базовия кондензатор. Периодът на измерване няма значение. Разделителната способност зависи от разделителната способност на честотните измервания, която е доста висока, така че дори много малък добавен капацитет може да бъде измерен. Ограничаващият фактор изглежда е "честотният шум" на осцилатора 555, който за мен е еквивалентен на около 0.3pF.
Методът може да се използва в приличен диапазон. За да подобря обхвата, синхронизирам периода на измерване с откриване на ръбовете на входящите импулси. Това означава, че дори нискочестотните трептения като 12Hz (с 1uF кондензатор) се измерват точно.
За по -големи кондензатори веригата е подредена да използва метод за зареждане на зареждането. В този случай изпитваният кондензатор се разрежда, за да се гарантира, че той започва от 0, след което се зарежда чрез известно съпротивление от захранващото напрежение. ADC в ATTiny85 се използва за наблюдение на напрежението на кондензатора и се измерва времето за преминаване от 0% до 50% заряд. Това може да се използва за изчисляване на капацитета. Тъй като еталонът за ADC е и захранващото напрежение, това не влияе на измерването. Абсолютната мярка за времето обаче зависи от тактовата честота на ATTiny85 и вариациите в това влияят на резултата. Може да се използва процедура за подобряване на точността на този часовник с помощта на регистър за настройка в ATTiny85 и това е описано по -късно.
За разреждане на кондензатора до 0V се използва n-канал MOSFET заедно с резистор с ниска стойност за ограничаване на разрядния ток. Това означава, че дори кондензаторите с голяма стойност могат да се разредят бързо.
За зареждане на кондензатора се използват 2 стойности на зареждащ резистор. Базовата стойност дава разумно време за зареждане на кондензатори от 1uF до около 50uF. P-канален MOSFET се използва за паралел в по-нисък резистор, за да позволи измерване на кондензатори с по-висока стойност в разумен интервал. Избраните стойности дават време за измерване от около 1 секунда за кондензатори до 2200uF и пропорционално по -дълго за по -големи стойности. В долния край на стойността периодът на измерване трябва да се поддържа разумно дълъг, за да може да се определи преходът през 50% прага с достатъчно точност. Честотата на дискретизация на ADC е около 25uSec, така че минимален период от 22mSec дава разумна точност.
Тъй като ATTiny има ограничен IO (6 пина), тогава разпределението на този ресурс трябва да се извършва внимателно. 2 извода са необходими за дисплея, 1 за входа на таймера, 1 за ADC, 1 за контрол на разреждането и 1 за контрол на скоростта на зареждане. Исках управление с бутон, което да позволи повторно нулиране във всяка точка. Това става чрез висококачествено повдигане на I2C SCL линията. Тъй като сигналите на I2C са отворени, тогава няма електрически конфликт, като позволите на бутона да издърпа тази линия ниско. Дисплеят ще спре да работи с натиснат бутон, но това няма никакво значение, тъй като се възобновява при отпускане на бутона.
Стъпка 2: Строителство
Направих това в малка 55 мм х 55 мм 3D печатна кутия, предназначена да побере 4 -те основни компонента; платката ATTiny85 DigiStamp, дисплеят SSD1306, батерията LiOn и малка част от прототипната платка, поддържаща 55 таймера и електрониката за контрол на зареждането.
Приложение на
Необходими части
- ATTiny85 DigiStamp платка. Използвах версия с microUSB конектор, който се използва за качване на фърмуер.
- SSD1306 I2C OLED дисплей
- 300mAH LiOn батерия
- Малка лента от прототипираща дъска
- Чип за таймер CMOS 555 (TLC555)
- n-Channel MOSFET AO3400
- p-Channel MOSFET AO3401
- Резистори 4R7, 470R, 22K, 2x33K
- Кондензатори 4u7, 220u
- Прецизен кондензатор 820pF 1%
- Миниатюрен плъзгащ превключвател
- 2 x 3 пинови заглавия за порт за зареждане и измервателни портове
- Натисни бутона
- Корпус
- Закачете тел
Необходими инструменти
- Поялник с фина точка
- Пинсети
Първо съставете схемата на таймера 555 и компонентите за зареждане на прототипната платка. Добавете летящи проводници за външните връзки. Прикрепете плъзгащия превключвател и точката за зареждане и измервателния порт в кутията. Поставете батерията и направете основното захранване към точката на зареждане, плъзнете превключвателя. Свържете земята към бутона. Прикрепете ATTiny85 на място и завършете свързването.
Можете да направите някои модификации за пестене на енергия на платката ATTiny преди поставянето, което ще намали малко тока и ще удължи живота на батерията.
www.instructables.com/Reducing-Sleep-Curre…
Това не е от решаващо значение, тъй като има превключвател за захранване за изключване на глюкомера, когато не се използва.
Стъпка 3: Софтуер
Софтуер за този кондензатометър можете да намерите на
github.com/roberttidey/CapacitorMeter
Това е скица, базирана на Arduino. Има нужда от библиотеки за дисплея и I2C, които могат да бъдат намерени на
github.com/roberttidey/ssd1306BB
github.com/roberttidey/I2CTinyBB
Те са оптимизирани за ATTiny, за да заемат минимална памет. Библиотеката I2C е високоскоростен битов метод, който позволява използването на всякакви 2 пина. Това е важно, тъй като методите I2C, използващи серийния порт, използват PB2, което е в конфликт с използването на входа на таймера/брояча, необходим за измерване на честотата 555.
Софтуерът е структуриран около машина на състоянието, която измерва през цикъл от състояния. ISR поддържа преливане от брояча на таймера за разширяване на 8 -битовия хардуер. Втори ISR поддържа ADC, работещ в непрекъснат режим. Това дава най -бързия отговор на зареждащата верига, пресичаща прага.
В началото на всеки цикъл на измерване функция getMeasureMode определя кой е най -подходящият метод за всяко измерване.
Когато се използва методът 555, времето за броене започва само когато броячът се е променил. По същия начин времето се спира само след номиналния интервал на измерване и когато се открие ръб. Тази синхронизация позволява точно изчисляване на честотата дори за ниски честоти.
Когато софтуерът стартира, първите 7 измервания са „калибриращи цикли“, използвани за определяне на базовата честота на 555 без добавен кондензатор. Последните 4 цикъла са осреднени.
Има поддръжка за регулиране на регистъра OSCAL за настройка на часовника. Предлагам да зададете OSCCAL_VAL на 0 първоначално в горната част на скицата. Това означава, че фабричното калибриране ще се използва, докато не се извърши настройка.
Необходима е стойността на основния кондензатор 555, който трябва да се регулира. Добавям и прогнозна сума за разсеяния капацитет.
Ако за методите на зареждане се използват различни резистори, тогава стойностите CHARGE_RCLOW и CHARGE_RCHIGH в софтуера също ще трябва да бъдат променени.
За да инсталирате софтуера, използвайте нормалния метод с дигистамп, за да качите софтуера и да свържете USB порта, когато бъдете подканени. Оставете превключвателя на захранването в изключено положение, тъй като USB ще се захранва за тази операция.
Стъпка 4: Работа и разширено калибриране
Операцията е много проста.
След като включите уреда и изчакате калибрационната нула да приключи, свържете тествания кондензатор към един от двата измервателни порта. Използвайте 555 порта за кондензатори с ниска стойност <1uF и порта за зареждане за кондензатори с по -висока стойност. За електролитни кондензатори свържете отрицателния извод към общата земна точка. По време на изпитването кондензаторът ще се зареди до около 2V.
Портът 555 може да бъде пренасочен, като задържите натиснатия бутон за около 1 секунда и го освободите. Уверете се, че нищо не е свързано към порта 555 за това.
Разширено калибриране
Методът на зареждане разчита на абсолютната тактова честота на ATTiny85 за измерване на времето. Часовникът използва вътрешния RC осцилатор, подреден да дава номинален 8MHz часовник. Въпреки че стабилността на осцилатора е доста добра за вариации на напрежението и температурата, неговата честота може да бъде с доста процент, въпреки че е фабрично калибриран. Това калибриране задава регистъра OSCCAL при стартиране. Фабричното калибриране може да бъде подобрено чрез проверка на честотата и по -оптимална настройка на стойността OSCCAL, за да отговаря на конкретна платка ATTiny85.
Все още не съм успял да се впиша в по -автоматичен метод във фърмуера, затова използвам следната ръчна процедура. Възможни са две вариации в зависимост от наличните външни измервания; или честотомер, способен да измерва честотата на триъгълната форма на вълната на порта 555, или източник на квадратна вълна с известна честота, напр. 10KHz с нива 0V/3.3V, които могат да бъдат свързани към порта 555 и да отменят формата на вълната, за да принудят тази честота в брояча. Използвах втория метод.
- Стартирайте измервателния уред при нормалната му мощност без свързани кондензатори.
- Свържете честотомера или генератора на квадратни вълни към порта 555.
- Рестартирайте цикъла на калибриране, като натиснете бутона.
- В края на цикъла на калибриране дисплеят ще покаже честотата, определена от брояча и текущата стойност OSCCAL. Обърнете внимание, че многократното използване на калибриращия цикъл ще превключва между показване на измерената честота и нормално без дисплей.
- Ако показаната честота е по -малка от известната, това означава, че тактовата честота е твърде висока и обратно. Намирам, че OSCCAL стъпка регулира часовника с около 0,05%
- Изчислете нова OSCCAL стойност, за да подобрите часовника.
- Въведете нова OSCCAL стойност в OSCCAL_VAL в горната част на фърмуера.
- Повторно изграждане и качване на нов фърмуер. Повторете стъпки 1 -5, които трябва да покажат новата OSCCAL стойност и новото измерване на честотата.
- Ако е необходимо, повторете стъпките отново, докато се постигне най -добрият резултат.
Забележка: Важно е да направите измервателната част на тази настройка, когато работите на нормално захранване, а не на USB, за да сведете до минимум всяко изместване на честотата поради захранващото напрежение.
Препоръчано:
Лаптоп Raspberry Pi със супер кондензатор: 5 стъпки
Лаптоп Raspberry Pi със захранване със супер кондензатор: В зависимост от общия интерес към този проект, мога да добавя още стъпки и т.н., ако това помага за опростяване на объркващи компоненти. забавно да се
555 Тестер за кондензатор: 4 стъпки (със снимки)
555 Тестер за кондензатор: Това е нещо, което изградих от публикувана схема в края на 80 -те години. Работи много добре. Раздадох списанието със схемата, защото вярвах, че никога повече няма да ми потрябва и намалихме размера. Веригата е изградена около таймер 555. T
Как да измерите кондензатор или индуктор с Mp3 плейър: 9 стъпки
Как да измерите кондензатор или индуктор с Mp3 плейър: Ето една проста техника, която може да се използва за точно измерване на капацитета и индуктивността на кондензатор и индуктор без скъпо оборудване. Техниката за измерване е базирана на балансиран мост и може да бъде конструирана лесно от евтини
Прост автоматичен тестер за кондензатор / измервател на капацитет с Arduino и на ръка: 4 стъпки
Прост автоматичен тестер за кондензатор / измервател на капацитет с Arduino и на ръка: Здравейте! За тази физическа единица се нуждаете от:* захранване с 0-12V* един или повече кондензатори* един или повече зареждащи резистори* хронометър* мултицет за напрежение измерване* arduino nano* a 16x2 I²C дисплей* 1 / 4W резистори с 220, 10k, 4.7M и
Ремонт на кондензатор - малък променлив въздушен кондензатор в предавателя: 11 стъпки
Ремонт на кондензатор - малък променлив въздушен кондензатор в предавателя: Как да поправите малък керамичен и метален въздушен променлив кондензатор като тези, намиращи се в старото радиооборудване. Това важи, когато валът се разхлаби от натиснатата шестоъгълна гайка или „копчето“. В този случай гайката, която е отвертка за регулиране