#1 Re: Програмування Arduino » як нівелювати всі можливі заряди на виведенні плати? » Сьогодні 15:43:54

dimich пише:

Що за блок? З чого він складається, як підʼєднаний, що на нього подається в "інших режимах"?

до платы, через перемикачи пiд'єднано багато кабелiв, рiзного типу (що мають рiзну ємкiсть). Плата надсилає мiкросикунднi 0 та считує цi iмпульси (при пiдтянутiй 1) (з чого й складається залишковий заряд...). Показником сicтеми є ємкiсть у окремий вiдлiк часу.

#2 Re: Програмування Arduino » як нівелювати всі можливі заряди на виведенні плати? » Сьогодні 15:31:20

jokeR пише:

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

Скетч теж не повинен знати, що у тому блоці на момент вимiру! Я лише впевнений у тому, що нагрiву нiмає, бо плата не спроможня видати для цього струм.

#3 Re: Програмування Arduino » як нівелювати всі можливі заряди на виведенні плати? » Сьогодні 15:06:25

dimich пише:

... При перемиканні піна у високий рівень в будь-якому разі буде заряджатись як вимірювана ємність, так і розподілена.

Щось не сходиться...
Зовнішня схема з'єднань має багато різноспрямованих ємностей (з релейною комутацією) і не має власного джерела живлення.
При виконанні виміру ємності після ресета плати я отримую стабільні, правдоподібні результати!
Але якщо цей блок з'єднань був задіяний в інших режимах роботи плати і я переходжу на спробу виміру ємності, то отримую повний рандом!
Як цього уникнути?

#4 Re: Програмування Arduino » як нівелювати всі можливі заряди на виведенні плати? » Сьогодні 14:53:47

jokeR пише:

Замкніть контакти релюшкою. Розімкніть в момент вимірювання. Заодно це врятує вашу схему якщо підключите електроліт з остаточним зарядом.

додавання елементiв у схему з'єднань виходить за рамки цього питання!

#5 Re: Програмування Arduino » як нівелювати всі можливі заряди на виведенні плати? » Сьогодні 13:25:20

Вибачте, але я змушений зазначити, що ви перевернули моє питання.
для вимiрювання використовую CapacitorLite, є коефiцiєнт у випадку "чистого" запуска (з ресета). Але!:
Я вже схиляюсь до того, щоб пiдчас замiру, попередьо, виконувати загальний ресет Arduino, але вiн нiяк не впливає на зовнiшнi ємкостi. Менi потрiбна можливiсть приведення будьяких з'єднань до загального рiвня, незалежно вiд початкового стану к схемi.
Як перед вимiром нівелювати різноспрямовані заряди ємностей, щоб отримати адекватний показник (пропорцiйний)?

#6 Програмування Arduino » Чи варто змінювати digitalRead/digitalWrite на пряме звернення до регі » Сьогодні 12:22:49

filat18
відповідей: 3

Прошу тих, хто у темі, дати пояснення: які плюси має такий підхід? На скільки швидше виконується операція? І чи варто взагалі використати такий підхід?

#7 Програмування Arduino » як нівелювати всі можливі заряди на виведенні плати? » Сьогодні 12:16:21

filat18
відповідей: 11

Є необхідність, за будь-якого поточного стану системи, виконати вимір ємності між заданими контактами. У плати багато внутрішніх ємностей плюс ємності зовнішніх підключень, які в момент запиту виміру ємності, своїми зарядами спотворюють величину виміру. Який є простий спосіб "скидання" всіляких зарядів до заданого виводу (виводам), щоб вимірювана величина ємності відповідала дійсності?

#8 Re: Програмування Arduino » Куди зникає ємкість » 2025-12-23 12:56:26

dimich пише:

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

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

#9 Re: Програмування Arduino » Куди зникає ємкість » 2025-12-22 16:32:43

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

#10 Re: Програмування Arduino » Куди зникає ємкість » 2025-12-22 16:29:39

jokeer пише:

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

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

#12 Re: Програмування Arduino » Куди зникає ємкість » 2025-12-22 13:01:56

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

#13 Програмування Arduino » Куди зникає ємкість » 2025-12-22 12:55:39

filat18
відповідей: 16

Я знайшов дуже цікавий код, який не потребує апаратного облаштування, а виконує вимірювання ємкості на програмному рівні.
У випадку коли конденсатор підключен до arduino - усе дуже добре і нема ніяких зауважень!
Але, якщо, у системі з'єднань з'являються провідники - усе летить шкереберть...
Якщо провідники мають відносно-невелику довжину, то я отримую зниження ємкості. А при довжені провідників більше 1 м - все падає до 1 пкФ... Хоча, стандартний тестер, з функцією вимірювання ємкості, при додаванні до конденсатора, паралельно-прокладених провідників - видає у результаті зростання ємкості.
Чому, при використанні цього коду виникає це відхилення, і як його можна вирішити на програмному рівні, без застосування апаратних рішень?

#15 Re: Програмування Arduino » Чи є інструменти для перевірки наявності вивода у плати за номером? » 2025-08-06 11:54:31

Загальна ідея була така: експлуатація виробу планується на мега, де виводи використовуються як ціфрові... А ось обкатка, зачасту йде на нано чи уно, і при звернені до відсутніх віводів... - відбуваєтся богна що. Через окремі меркування, реалізувати відхилення звернень до відсутніх виводів на рівні верхнього керовання не можно. Тому й задав це питання, щоб не множити окремі скетчі до різних плат, а один раз закласти перевирку номерів....

#16 Re: Програмування Arduino » switch працює лише з повними рівняннями, чи можливо вказати діапазони? » 2025-08-06 11:44:03

jokeer пише:

Якщо відповідь не подобається, можна її проігнорувати smile

ні, я якраз питав про протилежний варіант  smile

#17 Програмування Arduino » Чи є інструменти для перевірки наявності вивода у плати за номером? » 2025-08-06 10:53:44

filat18
відповідей: 10

нано/уно/мега/... - різні плати мають різну кількість виводів (які, зокрема, мають особисту нумерацію).
Чи існують оператори коду, за допомогою яких, при наявности номера, можно б було виконати перевірку - чи є у плати, на яку записан цей скетч, реальний вивод за перевіряємим номером?

#19 Програмування Arduino » switch працює лише з повними рівняннями, чи можливо вказати діапазони? » 2025-08-06 08:13:10

filat18
відповідей: 13

switch  - це оператор, що перевіряє чи відповідає перемінна окремим значенням.
Чи можно у цьому операторі вказати умови перевірки відповідності до окремих діапазонів?
Наприклад, якщо пермінна є int х, то перевірити наступні віпадки: 1. х == 1; 2. х > 3 & x < 5; 3. x == 6; 4. x >= 8 ...?

#20 Re: Програмування Arduino » Чому повідомлення не вдається розкласти в масив без затримки часу » 2025-08-05 16:31:00

dimich, дякую за варіант коду - дуже цікаво! З затиранням даних зрозуміло. А от що цікаво: код дає різну кількість отриманих груп для повідомлення 4/5 і для 4/5/

#21 Re: Програмування Arduino » Чому повідомлення не вдається розкласти в масив без затримки часу » 2025-08-05 15:12:32

Мав меркування, що розділення на масив має буте швидше, ниж займатися розділом після отримання...
Но ті результати, що отримую та Ваші зауваження - підтвержують хибність моїх меркувань...

#22 Re: Програмування Arduino » Чому повідомлення не вдається розкласти в масив без затримки часу » 2025-08-05 13:56:58

Загальні вимоги до  скетчу:
1 Якщо приходить повідомлення в вигляді цислового масива не визначеної довжини (від 1 до до 5, наприклад: 1/24/35 або 759/ або1/0/245/657/841 або...) треба занесті відповідні числа у масив rArr. Ділянки масиву, що не отримали новид даних, повинні отримати 0.
2. після отриманя числовиго массина та розкладання його у rArr, потрібно викликати зовнішний void.
3. ящо у повідомленні є символи, що не належать числовому масиву, всі значення rArr потрібно перетворити у 0  і перейти до очикування наступного сповіщення.

#23 Re: Програмування Arduino » Чому повідомлення не вдається розкласти в масив без затримки часу » 2025-08-05 13:35:34

dimich пише:

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

Ваша старанність друкувати заслуговує на окрему повагу! Але чи не простіше було б просто надрукувати уривок коду, що дійсно працює?

#24 Re: Програмування Arduino » Чому повідомлення не вдається розкласти в масив без затримки часу » 2025-08-05 13:29:54

dimich пише:

Ніяку затримку зменшувати не треба, бо її там взагалі не має бути.

!? як що закоментувати позначений рядок - маю наступну відповідь, при однаковому сповіщєнні 147/258/369/321/654 , отримую наступний результат:
147_258_369_321_654
147_258_369_321_654
147_258_369_321_654
147_58_369_321_654
147_258_369_0_654
147_258_369_321_654
147_258_369_0_654
0_258_369_321_654
147_258_369_321_654
147_258_369_1_654
147_258_369_321_654
147_258_9_321_654
147_258_369_321_54
147_258_369_321_654

#25 Re: Програмування Arduino » Чому повідомлення не вдається розкласти в масив без затримки часу » 2025-08-05 11:18:54

jokeR пише:
filat18 пише:
jokeR пише:

Ось наприклад я взяв такий код ....

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

Це відноситься до експлуатації undefined behavior. Вам просто повезло що байти удачно розмістились.

як це відстежити на етапі випробування коду?

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