Не буду приховувати, появою на світ даного пристрою, в основному, стали ваші досить теплі відгуки про дводіапазонного вольтметрі тут і на радіокоте. Як мінімум кілька людей безпосередньо цікавилися "чи не хочу я?" З зарядного пристрою викинути зайвий світлодіод і ще чого-небудь "непотрібне" а замість цього на звільнені ноги повісити другий індикатор і світити одночасно і ампер і вольти. Я довго впирався, але поміркувавши і зваживши всі "за" і "проти" було вирішено взятися за розробку нового пристрою. При розробці були прийняті до уваги наступні тези.
1. Переробляти щось старе завжди не так цікаво, як створювати щось нове. Та й досить громіздкі і специфічні функції зарядного пристрою навряд чи потрібні для повсякденного користування.
2. Моя ідея і реалізація двох діапазонів в вольтметрі звичайно більшості з вас сподобалася, але вхідна частина на ОУ була б хороша в універсальному вольтметрі. У лабораторному блоці живлення в який в 95% випадків ви будете вбудовувати цей пристрій високий вхідний опір і даром не треба. Тому на вході тільки подільники + захисні стабілітрони. Налаштовувати стало ще легше.
3. Вимірювання струму за допомогою прецизійного ОУ і двополярного джерела живлення - це звичайно дуже добре, але досить громіздко схемотехнически. Тут ми будемо міряти струм за допомогою однополярного ОУ з rail-2-rail входом. Хоча звичайно доведеться поборотися з виниклими з цього приводу граблями. Але про це пізніше.
4. Раз вже пристрій буде претендувати на звання "народного", то і мікроконтролер в ньому повинен бути "народний" - ATMega8 в DIP корпусі.
5. На здачу, точніше на три залишилися безгоспні ноги додана схема для роботи з критичної захисту по струму. Про неї теж пізніше.
6. Ну і нарешті - "фішка". У будь-який "народної" речі повинна бути "фішка"! В даному випадку це буде автоопределение типів впаяних індикаторів. Ставити можна із загальним катодом, можна із загальним анодом, можна один такий, другий інший - все буде працювати з однією прошивкою. Також все буде працювати і з трехсімвольнимі індикаторами з загальним анодом (без автовизначення), зникне тільки буква A або U для амперів і вольт відповідно.
Робота пристрою. Відразу зазначу, що, якщо не поставити всі деталі пов'язані з 24 і 25 ногою контролера, а кнопку зробити прихованою або зробити контакти для замикання викруткою (без неї не можна, вона буде потрібна один раз для калібрування) - то вийде просто вольт-амперметр необтяжений ніякими функціями. Але якщо збирати все в повному обсязі то робота буде вимагати пояснень. Роботу струмового захисту можна розбити на чотири режиму.
1. Поріг спрацьовування захисту не виставлений.
2. Установка порога захисту.
3. Поріг захисту виставлений і запам'ятав, захист не спрацьовував.
4. Захист спрацювала.
У всіх чотирьох режимах на верхній індикатор виводяться значення вольт в форматі 0.00в - 9.99в в діапазоні 0-10, і 10.0 - 99.9в, в режимах 1,3,4 на нижньому індикаторі виводиться вимірюваний струм. Ви запитаєте навіщо це потрібно в четвертому режимі? Все просто з індикатора "захист" знімається напруга, що управляє для відключення виходу блоку живлення. Механізм може бути будь-хто. Єдине що ви повинні знати - 0в на 24-ніжці - захист не спрацювала, 5в - спрацювала. Ще має сенс пам'ятати, що захист не дуже високошвидкісна - в 99% випадків швидкості її спрацьовування звичайно ж вистачить, але є й інші варіанти ... Щось я відволікся ... Про четвертому режимі: захист як така може і не використовуватися, а просто можна користуватися індикатором як тригером для того щоб знати що було перевищення споживання струму пристроєм яке живиться від БП. Саме тому в 4-му режимі триває вимір і струму і напруги. Логіка роботи кнопки така: з першого режиму коротким натисканням запуститься другий, далі вибираємо змінним резистором значення струму спрацьовування захисту від 0.00 до 9.99A, індикатор ампер при цьому моргає. Ще одне коротке натискання переведе нас в третій режим. При цьому буде моргати точка біля літери "А" сигналізуючи про те, що в пам'яті є значення порога спрацьовування. Коротке натискання на кнопку з режиму 3 переведе нас знову в режим 2. Якщо спрацював захист ми потрапляємо в режим 4. Скидання захисту, тобто перехід в режим 3 проводиться коротким натисканням на кнопку. Довге утримання кнопки (більш 1.5с) в режимах три і чотири переведе нас в режим 1, тобто зітре дані порога спрацьовування. І тільки з режиму 2 довге натискання запустить процес автокалибровки, але про нього як і раніше пізніше. Також варто сказати про те, що при пропажі живлення пристрій "забуває" про успішної реєстрації значенні порога спрацьовування захисту.
Про конструкції і налаштування. Конструктивно все розташовано на одній платі. Роз'єми для підключення розташовані в один ряд і мають досить великі контакти. Пристрій вимагає окреме харчування в межах 7 ... 15в. Товщина і довжина проводів критична для підключення земляного дроти і дроти "- Rn" - ці два дроти повинні бути максимально товстими і короткими. Провід "-Rn" підключається безпосередньо до мінусової вихідний клеми. Опір шунта як таке виміряти вдасться не всім - китайський мультиметр таке поміряти не в змозі, тому настройка каналу амперметра зводиться до налаштування коефіцієнта посилення ОУ IC4. Опір шунта для номіналів на схемі повинно скласти 3.62 м (Іллі) ом. Реально - будете підбирати резистор R25. Як шунта я використовував половинку витка від спіралі нагрівача якогось каміна товщиною близько 1 мм і діаметром 5мм. На платі місць під такі "перемички" передбачено два. Тепер власне про "граблях" ... Так як вирішено було відмовитися від двополярного харчування на користь відносно недорогого rail-2-rail ОУ - виникла проблема з нулем на виході. Коефіцієнт посилення досить великий, а посилюються в тому числі власні шуми, а такі ОУ до малошумливим і прецизійним віднести складно - на виході утворився певний потенціал, апаратними методами компенсувати який досить проблематично. У мене вийшло 0.15A (mcp6022, Кус = 100) при абсолютному нулі на вході 🙁 Ну а тепер давайте згадаємо як влаштований АЦП. 0.15А, точніше цифра 0.15 по відношенню до 9.99 - це 15 відліків АЦП. АЦП у нас 10-бітний, тобто 2 в 10-й ступеня = 1024 відліку. Так виходить що такою цифрою як 15 ми цілком можемо пожертвувати абсолютно безболісно для діапазону вимірювання, а якщо навіть припустити що цифра буде більше 24 "вільних" відліків, то це буде означати що "отгризет" трошки з вимірюваного діапазону зверху, тобто верхня межа буде не 9.99A, а скажімо 9,87. Все не так і погано. Загалом саме це ми і робимо при калібрування. Запам'ятовуємо значення АЦП при фактичному струмі 0A - ніяка навантаження не підключена, а потім це значення, в подальшому віднімаємо з виміряного значення, замінюючи при цьому випадково утворився перехід через 0 (це може бути в межах похибки вимірювання) звичайним 0.00. Я вже поліз в нетрі алгоритму роботи програми ...
Опишу краще практичний алгоритм настройки каналу вимірювання струму. Запускаємо попередню калібрування (довге натискання кнопки з режиму установки порога спрацьовування). Ознакою успішної калібрування - відображення 0.00А при відключеному навантаженні. Проводимо це до початку будь-яких підбирань резисторів, потім підбираємо R25 до прийнятного, але не остаточного значення показань струму, потім повторно калібруємо і остаточно виставляємо номінал R25. Більше нам калібрування ніколи не знадобиться, єдине побажання - цю процедуру виконувати вже за місцем установки в кінцевий виріб. З вольтметром все набагато простіше - підбираємо співвідношення резисторів в дільнику R24 R23 для діапазони 10 ... 100в і R22 R21 для діапазону 0 ... 10в. Номінали вказані для ідеального збігу обставин, коли зразкове напруга на AREF дорівнюватиме 2.56В. На практиці все одно доведеться підбирати .... Довжина і товщина дроту "+ Rn" не особливо критична, але його варто підключати безпосередньо на вихідну клему БП. Ще варто проконтролювати напругу на AREF і верхньому по схемі виведення резистора R13 - в обох точках має бути близько 2.5В. Ось в цілому і вся настройка. Єдине на чому б ще зупинився - так це на здаються непотрібними резисторах R29 R30 - вони потрібні для належного функціонування автовизначення типів індикаторів. Також резистор R13 можна замінити на будь-який інший (в розумних межах) номінал, не забуваючи що R15 = R13.
Прошивка EEPROM в переліку файлів потрібна для того щоб записати 0 за адресою майбутньої константи зсуву нуля. Це потрібно для того, хто хоче оцінити масштаб трагедії зі зміщеним нулем з точністю до одного відліку. Я ж рекомендую просто при першому ж запуску провести калібрування. Ось загалом і все не рахуючи фузов:
файли:
Схема в SPlan 7
Друкована плата в Spint Layout 5
прошивка
прошивка EEPROM
Модифікації вихідної прошивки:
1. прошивка , В якій реалізовано запам'ятовування порога спрацьовування струму захисту після виключення живлення, а також автоматична ініціалізація EEPROM при початковій прошивці МК.
2. прошивка в якій відключена розділова кома в каналі струму. При відповідному перерахунку шунта / підсилювача струм буде відображатися як 0 ... 999.
3. прошивка в якій кома в каналі вимірювання напруги зміщена на один символ вправо. Тобто діапазони виглядають як: 00.0 ... 99.9 і 100 ... 999. Перерахунок вхідних дільників обов'язковий.
4. прошивка в якій кома в каналі струму знаходиться на індикаторі 2. При відповідному перерахунку шунта / підсилювача струм буде відображатися як 00.0 ... 99.9.
Ви запитаєте навіщо це потрібно в четвертому режимі?