Ви не увійшли.
Є необхідність, за будь-якого поточного стану системи, виконати вимір ємності між заданими контактами. У плати багато внутрішніх ємностей плюс ємності зовнішніх підключень, які в момент запиту виміру ємності, своїми зарядами спотворюють величину виміру. Який є простий спосіб "скидання" всіляких зарядів до заданого виводу (виводам), щоб вимірювана величина ємності відповідала дійсності?
Неактивний
Який є простий спосіб "скидання" всіляких зарядів до заданого виводу (виводам), щоб вимірювана величина ємності відповідала дійсності?
Щоб вимірювана величина відповідала дійсності, проводять калібровку, і враховують паразитні ємності при обчисленні актуального значення з виміряних величин.
Є декілька методів вимірювання ємності. Ви який збираєтесь використовувати?
Неактивний
Вибачте, але я змушений зазначити, що ви перевернули моє питання.
для вимiрювання використовую CapacitorLite, є коефiцiєнт у випадку "чистого" запуска (з ресета). Але!:
Я вже схиляюсь до того, щоб пiдчас замiру, попередьо, виконувати загальний ресет Arduino, але вiн нiяк не впливає на зовнiшнi ємкостi. Менi потрiбна можливiсть приведення будьяких з'єднань до загального рiвня, незалежно вiд початкового стану к схемi.
Як перед вимiром нівелювати різноспрямовані заряди ємностей, щоб отримати адекватний показник (пропорцiйний)?
Неактивний
Менi потрiбна можливiсть приведення будьяких з'єднань до загального рiвня, незалежно вiд початкового стану к схемi.
Калібрування. Це ж було вже.
Як перед вимiром нівелювати різноспрямовані заряди ємностей, щоб отримати адекватний показник (пропорцiйний)?
Там перед вимірюванням обидва піни сконфігуровані на вихід з низьким рівнем. Заряд між піном і землею - нуль, між піном і живленням - напруга живлення, помножена на розподілену ємність ємність шини живлення, яку для джерела напруги можна вважати нескінченною. При перемиканні піна у високий рівень в будь-якому разі буде заряджатись як вимірювана ємність, так і розподілена.
Остання редакція dimich (2026-04-23 14:20:46)
Неактивний
Замкніть контакти релюшкою. Розімкніть в момент вимірювання. Заодно це врятує вашу схему якщо підключите електроліт з остаточним зарядом.
додавання елементiв у схему з'єднань виходить за рамки цього питання!
Остання редакція filat18 (2026-04-23 15:07:59)
Неактивний
... При перемиканні піна у високий рівень в будь-якому разі буде заряджатись як вимірювана ємність, так і розподілена.
Щось не сходиться...
Зовнішня схема з'єднань має багато різноспрямованих ємностей (з релейною комутацією) і не має власного джерела живлення.
При виконанні виміру ємності після ресета плати я отримую стабільні, правдоподібні результати!
Але якщо цей блок з'єднань був задіяний в інших режимах роботи плати і я переходжу на спробу виміру ємності, то отримую повний рандом!
Як цього уникнути?
Неактивний
Але якщо цей блок з'єднань був задіяний в інших режимах роботи плати
Що за блок? З чого він складається, як підʼєднаний, що на нього подається в "інших режимах"?
Цей метод виміру ємності базується на тому факті, що напруга на конденсаторі прямо пропорційна заряду і обернено пропорційна його ємності. Так як послідовно зʼєднані конденсатори отримують однаковий заряд, то знаючи ємність одного можна обчислити ємність другого. В ролі конденсатора з відомою ємністю виступає розподілена ємність. Ніяких блоків у цьому методі не передбачено.
Неактивний
Ніхто крім вас не знає що в тому блоці. Можливо остаточний заряд в конденсаторах. Можливо щось нагрівається і міняє опір.
Скетч теж не повинен знати, що у тому блоці на момент вимiру! Я лише впевнений у тому, що нагрiву нiмає, бо плата не спроможня видати для цього струм.
Неактивний
Що за блок? З чого він складається, як підʼєднаний, що на нього подається в "інших режимах"?
до платы, через перемикачи пiд'єднано багато кабелiв, рiзного типу (що мають рiзну ємкiсть). Плата надсилає мiкросикунднi 0 та считує цi iмпульси (при пiдтянутiй 1) (з чого й складається залишковий заряд...). Показником сicтеми є ємкiсть у окремий вiдлiк часу.
Неактивний
до платы, через перемикачи пiд'єднано багато кабелiв, рiзного типу (що мають рiзну ємкiсть). Плата надсилає мiкросикунднi 0 та считує цi iмпульси (при пiдтянутiй 1)
1-wire?
Показником сicтеми є ємкiсть у окремий вiдлiк часу.
Так ємність чого ви вимірюєте? Ємність шини, разом з пристроями, що з неї і живляться?
Неактивний
1-wire?
Так ємність чого ви вимірюєте? Ємність шини, разом з пристроями, що з неї і живляться?
Якщо Ви про використовувані піни плати, то від 1 до 16, а якщо про кількість замірюваних провідників - то від 2 до 16.
Вимірюється ємність того, що підключено до вивода на момент виміру. Це кабелі різних типів, які запитані тільки з плати, до якої підключені. Уточню ще той аспект, що в момент вимірювання кабель з одного боку підключений до виведення плати, а з іншого боку - висить у повітрі.
Неактивний
Вимірюється ємність того, що підключено до вивода на момент виміру. Це кабелі різних типів, які запитані тільки з плати, до якої підключені.
Покажіть схему, бо за словесним описом нічого не зрозуміло. І вкажіть, в якому порядку що комутується при вимірах.
Уточню ще той аспект, що в момент вимірювання кабель з одного боку підключений до виведення плати, а з іншого боку - висить у повітрі.
Якщо поряд з провідником є інші провідники, то звісно, і вони самі впливають на результат, і те, що до них підключене.
Неактивний
Якщо кабель коаксіальний - його ємність написана в таблиці. А кабелі інших типів взагалі не варто розглядати там де щось пов'язане з ємністю.
Якщо у вас є кілька якось розміщених в просторі проводів, то між ними буде якась ємність. Якщо якісь проводи заземлені - ємність може помінятись.
Незрозуміла мета експерименту. На ємностях в одиниці і десятки пФ показометр щось покаже.
Автор стверджує, що при першому вимірі наче все ок, а після якихось там перекомутацій стає не ок. Спочатку треба зрозуміти, що там куди комутується, щоб пояснити таку поведінку. А потім уже можна думати, як позбутись небажаних ефектів.
[телепат mode on]
Якщо там залишається якась заряджена ємность, то розряджати примусово. Але якщо там паразитне живлення через діод всередині корпуса компонента, чи якісь інші напівпровідники, то такий метод виміру взагалі не працюватиме. Таку лінію потрібно вимірювати напругою до 100 мВ, як це робиться у внутрішньосхемних тестерах ємності. А якщо там якісь конденсатори MLCC, то у них мало того що ємність змінюється в кілька разів в залежності від напруги, так і ефект памʼяті може проявлятись.
[телепат mode off]
Взагалі, виглядає як проблема XY.
Неактивний
Немає жодних активних та пасивних елементів – є тільки кабелі. На малюнку зрізаний приклад з'єднань: А0 - А1 це приклад робочого ланцюга, в момент виміру ємності цей ланцюг розірваний перемикачем, і вимір (у цьому випадку) виконується між А0 - А2 і А1 - А2 (другий кінець від А2, в момент виміру теж нікуди не підключений). І якщо замір першої пари відповідає, то на другій парі – рандом. Якщо замір у зворотному порядку, спочатку друга пара - замір реальний, перша пара - рандом. Замірювані величини від 60 до 1200 пФ.
Остання редакція filat18 (2026-04-26 11:57:31)
Неактивний
Чудес не буває. Значить після вимірювання залишається якийсь заряд.
Спробуйте перед аимірюванням перевести всі піни в output і вивести на них 0.
Немає жодних активних та пасивних елементів – є тільки кабелі. На малюнку зрізаний приклад з'єднань: А0 - А1 це приклад робочого ланцюга, в момент виміру ємності цей ланцюг розірваний перемикачем
Щось все одно не дуже ясно. Бачу три перемикачі 4P1T і один 2P1T. Але 4P мають ще одне положення, у якому повзунок "висить у повітрі"?
і вимір (у цьому випадку) виконується між А0 - А2 і А1 - А2
Тобто при такому положенні перемикачів як на малюнку:
вимір №1: outPin=A0, inPin=A2 (ємність між повзунками верхнього і нижнього перемикачів)
вимір №2: outPin=A1, inPin=A2 (ємність між провідником від A1, що йде до одного з контактів верхнього перемикача, і повзунком нижнього перемикача)
?
(другий кінець від А2, в момент виміру теж нікуди не підключений).
По малюнку він підключений до повзунка перемикача. Повзунок може мати помітний ємносний звʼязок з контактами, в залежності від конструкції.
І якщо замір першої пари відповідає, то на другій парі – рандом.
А якщо потім знову перша пара?
Після деструкції обʼєкта CapacitorLite перед створенням нового ви переводите outPin у його початковий стан - floating input?
Спробуйте перед аимірюванням перевести всі піни в output і вивести на них 0.
В конструкторі CapacitorLite вони уже переводяться в output з низьким рівнем. Але при створенні нового обʼєкта з іншим значенням outPin, попередній залишається в output. inPin, наскільки розумію, в даному випадку залишається тим же.
Остання редакція dimich (2026-04-26 14:52:31)
Неактивний
Мені ідея з динамічним створенням об'єктів категорично не подобається. Я б мабуть поставив одну ногу в output, n-1 в input, зробив n-1 вимір. Формула відома. Повторив n раз з іншими output ногами. Потім повторив процес k раз. Порахував середнє арифметичне. Потім співставив би з показаннями справжнього приладу.
Мені ідея з динамічним створенням об'єктів категорично не подобається.
Ми навіть не знаєм, як там той обʼєкт створюється. Код же не показали.
Я взагалі не розумію, навіщо бібліотека заради десятка рядків коду.
Тут і невикористані піни бажано конфігурувати в детермінований стан чи вимикати digital input. Це одна з перших речей, з якою знайомляться при навчанні програмуванню МК. Але культура ардуіно цього не виховує.
Остання редакція dimich (2026-04-26 16:36:23)
Неактивний
https://github.com/markus-seidl/component-tester/blob/master/cap.c#L1077
Рекомендую подивитись як це зроблено в тестері Маркуса. Тут люди все таки упоролись щоб отримати якісь результати.
Неактивний