Відповісти

Введіть повідомлення і натисніть Надіслати
Параметри

Назад

Огляд теми (нові повідомленні вгорі)

dimich
2025-12-23 13:56:58
jokeer пише:

То в вас індуктивність проводів теж трохи грає.

На те воно й перехідний процес. Але ж кажу, в моєму експерименті цей фактор виявився ніхтовно малий.

jokeer пише:

Нормально буде порахувати окремо ємність провода і окремо провода з конденсатором. І порахувати різницю.

Це й називається "калібровка". Там навіть API є smile Тільки просто "порахувати різницю" буде недостатньо. Намалюйте еквівалентну схему: до схеми у статті вище домалюйте ємності між пінами, а також між кожним піном і землею, і проаналізуйте, як при цьому змінюється напруга на вимірюваному піні (A0 в статті, A2 в бібліотеці).

jokeer
2025-12-23 13:45:16

То в вас індуктивність проводів теж трохи грає.
Нормально буде порахувати окремо ємність провода і окремо провода з конденсатором. І порахувати різницю.

dimich
2025-12-23 13:35:54

Доречі, як писав Honey вище, періхідний процес там також присутній. Але у мене з провідником 30 см і конденсатором 100 пФ там буквально три коливання на частоті ≈60 МГц, чим у порівнянні з часом sample-and-hold АЦП можна знехтувати.

dimich
2025-12-23 13:20:57
filat18 пише:

Не зовсім це розумію, чому ця паразитна ємкість не додається до наяної, а взагалі усе перекриває?

Вона додається, тільки не лише до ємності вимірюваного конденсатора, але й до паразитної ємності між піном та землею. Її вплив на  значення фактичної паразитної ємності виявляється більшим, ніж на ємність вимірюваного конденсатора.

dimich
2025-12-23 13:14:25
filat18 пише:

а Я питаю!!! - чому вказаний код у такому випадку ЗМЕНШУЄ показники???

Тому що значення ємності обчислюється як

capacitance = (long)val * _inCapToGnd / (max(_maxAdcValue - val, 1));

Де val - напруга на піні A2 відносно землі, а _inCapToGnd - очікувана ємність між цим піном та землею. Для Atmega328P дефолтове значення - 26.3 пФ.

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

Вимірюваний конденсатор (разом з провідниками) та паразитна ємність піна A2 (також разом з провідниками) утворюють дільник заряду (аналогічно як дільник напруги на резисторах). Тому фактична на напруга на A2 залежить як від ємності між пінами (вимірюваний конденсатор + провідники), так і від паразитної ємності між піном A2 і землею (Cstray + провідники).

filat18
2025-12-23 12:56:26
dimich пише:

Цей "метод" (припускаю, бо в код не вникав) вимірює відношення ємності між пінами до паразитної ємності пінів (щось біля 7 пФ для AVR). При підключенні провідників ця паразитна ємність значно зростає. .

Не зовсім це розумію, чому ця паразитна ємкість не додається до наяної, а взагалі усе перекриває?

dimich
2025-12-22 20:15:52
Honey пише:

Виходячи з ідеї, яка тут використовується, додавання довгих провідників (опорів, індуктивностей) не вплине на результат

Чому ж не вплине, коли там припускається, що ємність піна A2 відносно шин живлення - 7 26.3 пФ. А з довгими провідниками вона більша. Так, взаємна ємність між пінами збільшуєтсья на взаємну ємність провідників, але й заряд розподіляється на більшу ємність (Cstray + ємність провідника на A2 відносно землі), тому напруга на A2 стає менша. Не здивуюсь, якщо впливає саме провідник на A2.

dimich
2025-12-22 18:16:32
filat18 пише:

dimich, навіщо писати відповідь, якщо ви нічого не зрозуміли у запитанні!???

З чого ви зробили такий висновок, що я нібито чогось не зрозумів у запитанні? Ви спитали, чому результати вимірювання ненадійні, я відповів - тому що метод вимірювання ненадійний.
А які саме фактори там впливають - то вже інше питання. Ви б хоч вказали, яку ємність вимірювали і який результат отримали при якій довжині провідників. Чи змінюється результат, коли провідники розведені в різні сторони, і коли скручені між собою.
Взагалі АЦП у AVR призначений для вимірювання напруги від джерела з відносно невеликим вихідним опором. З довгими провідниками, окрім ємності та індуктивності, ще й 50 Гц від мережі можуть впливати.

jokeer
2025-12-22 17:22:38

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

Honey
2025-12-22 17:08:40

Виходячи з ідеї, яка тут використовується, додавання довгих провідників (опорів, індуктивностей) не вплине на результат, але мають закінчитись перехідні процеси. Додайте в коді безпосередньо перед analogRead() невеликий delay().

filat18
2025-12-22 16:32:43

dimich, навіщо писати відповідь, якщо ви нічого не зрозуміли у запитанні!???

filat18
2025-12-22 16:29:39
jokeer пише:

Є так званий тестер Маркуса. Буває і на Алі в готовому вигляді, і в вигляді набору для пайки.

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

jokeer
2025-12-22 15:12:21

Є так званий тестер Маркуса. Буває і на Алі в готовому вигляді, і в вигляді набору для пайки.

dimich
2025-12-22 15:07:29
filat18 пише:

Але, якщо, у системі з'єднань з'являються провідники - усе летить шкереберть...

Провідники теж мають свою ємність.

filat18 пише:

Хоча, стандартний тестер, з функцією вимірювання ємкості, при додаванні до конденсатора, паралельно-прокладених провідників - видає у результаті зростання ємкості.

Тестер вимірює саме ємність між входами. Ємність між провідниками просто додається до ємності конденсатора.
Цей "метод" (припускаю, бо в код не вникав) вимірює відношення ємності між пінами до паразитної ємності пінів (щось біля 7 пФ для AVR). При підключенні провідників ця паразитна ємність значно зростає.

filat18 пише:

як його можна вирішити на програмному рівні, без застосування апаратних рішень?

Хіба що калібрувати кожен раз для конкретних провідників з їх розташуванням у просторі та іншими зовнішніми факторами. Або використовувати класичні методи вимірювання ємності. Було би все так просто - цей "метод" давно б використовували у вимірювальних приладах.

filat18
2025-12-22 15:05:12

Є ще один цікавий варіант - але в мене він працує лише між аналоговими контактами...

Підвал форуму