Продовжуємо розбиратися з варіантами реалізації вольтметра - амперметра з урахуванням мікропроцесора.
Не забудьте архів із файлами, вони нам сьогодні будуть потрібні.
За бажання поставити великі індикатори доведеться вирішувати питання обмеження струму споживання через порти МК. У разі необхідно ставити буферні транзистори на кожен розряд індикатора.
Індикатори великих розмірів
Отже, розглянута раніше схема набуде вигляду, показаного на рис. 2. Додалося три транзистори VT1-VT3 буферного каскаду на кожний розряд індикатора. Встановлений буферний каскад інвертує вихідний сигнал МК. Тому вхідна напруга на базі VT2 інверсна щодо колектора зазначеного транзистора, а значить підходить для подачі на виведення формування коми. Це дає можливість усунути транзистор VT1, який був раніше в схемі на рис. 1, замінивши останній розв'язуючим резистором R12. Не забудьте, що змінилися і номінали резисторів у ланцюгах бази транзисторів VT1-VT3.
Якщо бажаєте поставити індикатори з нетрадиційно великими габаритами, доведеться в ланцюгу колекторів зазначених транзисторів поставити низькоомні (1 - 10 Ом) резистори для обмеження кидків струму при їх включенні.
Логіка роботи МК для цього варіанту потребує лише невеликої зміни програми в частині інверсії вихідного сигналу управління розрядами, а саме портів RA0, RA1, RA5.
Розглянемо тільки те, що зміниться, а саме підпрограму, вже відому нам під умовною назвою «Функція формування динамічної індикації» у Лістингу №2(дивіться папку «тр_ОЕ_30V» в архіві або першу частину статті):
16. void Indicator () (17. while (show_digit)< 3) { 18. portc = 0b111111; // 1 ->C 19. if (show_digit == 2)(delay_ms(1); ) 20. porta = 0b100111; 21. show_digit = show_digit + 1; 22. switch (show_digit) ( 23. case 1: ( 24. if (digit1 == 0) ( ) else ( 25. Cod_to_PORT(DIGIT1); 26. PORTA &= (~(1)<<0)); //0 ->A0 27. ) break;) 28. case 2: ( 29. Cod_to_PORT(DIGIT2); 30. PORTA &= (~(1<<1)); //0 ->A1 31. break;) 32. case 3: ( 33. Cod_to_PORT(DIGIT3); 34. PORTA &= (~(1<<5)); //0 ->A5 35. break;)) 36. Delay_ms(6); 37. if (RA2_bit==0) (PORTA |= (1<<2);// 1 ->A2 38. Delay_ms(1);) 39. if ((show_digit >= 3)!= 0) break; 40. ) show_digit = 0;)
Порівняйте обидва варіанти. Інверсія сигналу порту RA (рядок 20 Лістингу №2) легко читається, оскільки записано в двійковій формі. Достатньо поєднати висновки МК та двійкове число. У рядках 19 та 37 з'явилися трохи дивні умови, яких не було спочатку. У першому випадку: "затримати сигнал логічного нуля на порту RA1 під час індикації другого розряду". У другому: «якщо на порті RA2 логічний нуль, інверсія». Коли компілюватимете фінальну версію програми можете їх видалити, а ось для симуляції в PROTEUS вони потрібні. Без них не буде нормально індикуватися кома і сегмент «G».
Чому? - спитайте Ви, адже перший варіант чудово працював.
Насамкінець, згадайте слова коваля з фільму «Формула Любові»: «...якщо одна людина побудувала, інша завжди розібрати може!».
Успіхів!
Читацьке голосування
Статтю схвалили 27 читачів.
Для участі у голосуванні зареєструйтесь та увійдіть на сайт із вашими логіном та паролем.У цьому приладі автор використав оригінальний метод керування чотирирозрядним семіелементним світлодіодним індикатором сигналами всього з чотирьох висновків мікроконтролера. У програмі мікроконтролера передбачено режим автоматичного калібрування вольтметра.
З'єднання світлодіодного цифрового індикатора з мікроконтролером, що стало традиційним, через перетворювач послідовного коду в паралельний 74HC595 вимагає використовувати три висновки мікроконтролера для управління перетворювачем коду і ще по одному висновку для кожного розряду індикатора. Отже, для чотирирозрядного індикатора потрібні сім висновків. Це не дає можливості застосовувати такі індикатори з маловивідними мікроконтролерами, наприклад, з PIC12F675, які мають всього шість висновків (крім висновків живлення).
На другому етапі наростаючий перепад рівня на виведенні мікросхеми 12 74HC595 переписує нульовий вміст зсувного регістра в регістр зберігання. Це повністю гасить індикатор.
На третьому етапі відбувається завантаження інформації в зсувний регістр мікросхеми 74HC595 послідовним кодом, що формується мікроконтролером на виведенні мікросхеми 14. На її висновок 11 надходять тактові імпульси.
На четвертому етапі наростаючим перепадом рівня на виведенні 12 мікросхеми 74HC595 інформація з її зсувного регістру надходить у регістр зберігання, причому завдяки високим рівням на катодах розряди індикатора залишаються погашеними.
На п'ятому етапі загальному катоді розряду, для якого призначений виведений на виходи мікросхеми 74HC595 паралельний код, програма встановлює низький рівень, включаючи його елементи відповідно до цього коду. На цьому обробка переривання завершується, а встановлений стан індикатора зберігається незмінним до переривання.
Для управління восьмирозрядним індикатором потрібно вісім виходів мікроконтролера. При цьому сигнали з чотирьох додаткових висновків просто управляють рівнями на катодах розрядів. Варто зазначити, що в цьому випадку можливе застосування індикаторів як із загальними катодами, так і загальними анодами, підключаючи до виходів коду перетворювача відповідно елементи або розряди. З причин, викладених нижче, динамічну індикацію у першому випадку переважно організувати поелементно, тоді як у другому - поразрядно.
Тепер розповімо про вольтметр, у якому використано описаний принцип.
Основні технічні характеристики
Вимірювана напруга, В............... 0...80
Дискретність виміру, В.......0,1
Похибка.................0,5% + од. мл. розр.
Напруга живлення, В............7...15
Струм споживання, мА, трохи більше........................30
Схема вольтметра показано на рис. 1. У ньому застосовано поелементну динамічну індикацію. У кожний момент часу високий рівень встановлений на анодах однієї групи однойменних елементів усіх розрядів HG1 індикатора. На загальних катодних висновках розрядів, у яких ці елементи мають світитися, встановлюють низький рівень, інакше - високий. Зверніть увагу, що однойменні елементи можуть бути включені одночасно у всіх розрядах, але в кожному розряді в даний момент включено лише один елемент. Саме тому обрано підключення анодів елементів до виходів мікросхеми DD2, здатність навантаження яких вище, ніж виходів мікроконтролера.
Мал. 1. Схема вольтметра
При періоді переривань 2 мс частота оновлення зображення на індикаторі дорівнює 64 Гц та його блимання на око непомітно. Вибраний спосіб динамічної індикації також дозволив удвічі зменшити кількість резисторів (R4-R7), що обмежують струм через світлодіоди індикатора.
У мікроконтролера PIC12F675-I/P (DD1) залишаються не зайнятими в динамічній індикації лінії введення-виведення GP0 та GP3. Перша використана як вхід АЦП, на неї подають через дільник R1R2 напруга, що вимірювається. На лінії GP3 без перемички S1 завдяки резистору R3 встановлений високий логічний рівень, що служить сигналом, що переводить вольтметр в режим калібрування. Якщо перемичка встановлена, рівень цього висновку низький і вольтметр працює у звичайному режимі.
При першому включенні вольтметра з відсутньою перемичкою S1 на індикатор HG1 буде виведено з блимаючим крайнім правим знаком. У цьому стані на вхід приладу слід подати якомога ближче до 80 напруга, контролюючи його зразковим вольтметром. При короткочасному з'єднанні контактних майданчиків, призначених для перемички S1, прилад обчислить та запам'ятає калібрувальний коефіцієнт і використовуватиме його надалі.
Однак 80 В - досить велика напруга, не виключені скрути з її отриманням. У такому випадку під час індикації значення зразкової напруги прилад потрібно вимкнути та знову ввімкнути. На індикаторі з'явиться , а при наступних вимкненнях та включеннях - , , знову і далі по колу. Калібрування слід зробити при максимальному доступному з цих значень напруги. Чим більша зразкова напруга, тим точніше калібрування. Якщо в момент калібрування вхідна напруга дуже відрізняється від зразкового, коефіцієнт обчислений не буде, а на індикатор виведено
Після калібрування вимкніть вольтметр і остаточно встановіть перемичку S1, інакше при наступному увімкненні все доведеться повторно повторити. Вольтметр може працювати і без калібрування, якщо при першому його включенні перемичка S1 вже встановлена. І тут він використовує коефіцієнт, записаний у програмі, але похибка може перевищити 10 %. Про це попередить увімкнена точка в крайньому правому розряді індикатора.
Аналого-цифрове перетворення проводиться в режимі "сплячого" мікроконтролера для зменшення перешкод з боку його працюючих вузлів. З цього стану він автоматично виходить після закінчення перетворення.
Живиться прилад напругою 5, отриманим за допомогою інтегрального стабілізатора напруги DA1. Використовувати замість зазначеного на схемі стабілізатор 78L05 можна тільки в крайньому випадку, оскільки стабільність його вихідної напруги значно гірша. Без погіршення параметрів можна застосувати стабілізатор LP2951. Стабілітрон VD1 на напругу 5,6 разом із внутрішнім захисним діодом мікроконтролера оберігають останній від пошкодження при перевищенні вимірюваною напругою допустимого значення. Без обмежувача напруга живлення мікроконтролера у цій ситуації може критично збільшитись.
Пристрій зібрано на друкованій платі розмірами 40x36 мм із однобічно фольгованого склотекстоліту завтовшки 1,5 мм, показаної на рис. 2. Більшість резисторів та конденсаторів – типорозміру 0805 для поверхневого монтажу. Резистор R1 для надійної роботи при підвищеній напрузі застосований вивідною потужністю 0,5 Вт. Конденсатор C1 можна встановити і керамічний, і вивідний оксидний, для якого на платі передбачено посадкове місце, позначене C1". Індикатор FYQ-3641AHR-11 можна замінити іншим із серії 3641А або трирозрядним серії 3631А без переробки плати. Фотознімок 3.
Вже кілька років займаюся радіоелектронікою, але соромно зізнатися, я все ще не має нормального блоку живлення. Запитую зібрані пристрої тим, що попадеться під руку. Від будь-яких напівдохлих батарейок і трансформаторів з діодним мостом без будь-якої стабілізації напруги та обмеження вихідного струму. Такі збочення є досить небезпечними для зібраної конструкції. Нарешті наважився зібрати нормальний блок живлення. А почав збирання з ампервольтметра. Треба, звичайно, було починати з іншого, але як уже є. Оскільки потроху займаюся програмуванням, то вирішив сам розробити показометр. Як екран стоїть дисплей від Nokia-1202. Напевно я вже всіх замучив з цим дисплеєм, але він у 3 рази дешевше, ніж 2×16 HD44780 (принаймні у нас). Цілком паябельний роз'єм і взагалі непогані характеристики. Коротше – гарний варіант для вимірювача напруги та струму.
Електрична схема цифрового ампервольтметра для БП
Малюнок плати цифрового ампервольтметра
У першому та другому рядку відображається усереднене значення напруги та струму з 300 вимірів АЦП. Це зроблено для більшої точності виміру. У третьому рядку виводиться опір навантаження, розрахований за законом Ома. Хотів спочатку зробити, щоб виводилася споживана потужність, але зробив опір. Може пізніше перероблю на потужність. У четвертому рядку виводиться температура вимірювана датчиком DS18B20. Він запрограмований виміряти температуру від 0 до 99 градусів Цельсія. Його треба встановити на радіатор вихідного транзистора, або на якийсь інший елемент схеми, де є сильне нагрівання.
До мікроконтролера можна також підключити кулер для охолодження радіатора транзистора. Він змінюватиме свої оберти при зміні температури вимірюваної датчиком DS18B20. На ніжці PB3 є ШИМ сигнал. Кулер підключається до цього висновку через силовий ключ. Як силовий ключ найкраще використовувати MOSFET транзистор. При температурі 90 градусів у вентилятора будуть максимальні оберти. Датчик температури можна не встановлювати. У цьому випадку у четвертому рядку просто висвітиться напис OFF. Кулер підключаємо на пряму. На виході PB3 буде 0.
В архіві є два варіанти прошивки. Одна на максимально вимірюваний струм 5 ампер, а друга до 10 ампер. Максимальна напруга, що вимірювається - 30 вольт. Коефіцієнт посилення ОУ LM358 за розрахунками обрано 10. Для різних прошивок потрібно підібрати шунт. Не всі мають можливість вимірювати соті частки ома і прецизійні резистори. Тому в схемі є два підстроювальні резистори. Ними можна підкоригувати показання вимірів.
Там же в архіві є і друкована плата. Є невеликі відмінності на фото – там вона трохи підправлена. Видалено одну перемичку і розмір менший за висотою на 5 мм. Стабільність показань ампервольтметр висока. Іноді плаває лише на соті частки. Хоча порівнював лише з моїм китайським тестером. Для мене цього цілком вистачить.
Всім дякую за увагу.
АРХІВ:
Модернізований варіант
Додав лише відображення ще й десятої частини потужності.Ось переробив для виміру до 50А. Шунт 0,01 ом. Коефіцієнт посилення ОУ приблизно від 6 до 7. Потрібно буде перерахувати резистори. Фьюзи ті самі, що й раніше.
Хочу надати вашій увазі модернізовану версію показометра для лабораторного блоку живлення. Додалася можливість відключати навантаження при перевищенні певного встановленого заздалегідь струму. Прошивку покращеного вольтамперметра можна завантажити нижче. Схема цифрового вимірювача струму та напруги.
У схему також додалося кілька деталей. З органів управління – одна кнопка та змінний резистор номіналом від 10 кілоом до 47 кілоом. Його опір не критично для схеми, і як видно може змінюватись у досить широких межах. Трохи змінився зовнішній вигляд на екрані. Додав відображення потужності та ампер*годин.
Змінний струм відключення зберігається в EEPROM. Тому після вимкнення не потрібно буде все налаштовувати заново. Для того, щоб зайти в меню установки струму необхідно натиснути кнопку. Повертаючи ручкою змінного резистора, треба встановити струм, при якому відбудеться відключення реле. Воно підключено через ключ на транзисторі до виведення PB5 мікроконтролера Atmega8.
У момент вимкнення на дисплеї висвітиться напис про те, що максимальний встановлений струм був перевищений. Після натискання на кнопку ми знову перейдемо в меню установки максимального струму. Потрібно ще раз натиснути на кнопку, щоб перейти в режим виміру. На вихід PB5 мікроконтролера подасть лог 1 і при цьому ввімкнеться реле. Таке стеження за струмом має свої мінуси. Захист не зможе спрацювати миттєво. Спрацьовування може зайняти кілька десятків мілісекунд. Для більшості піддослідних пристроїв цей недолік не є критичним. Для людини ця затримка не видно. Все відбувається одразу. Нова друкована плата не розроблялася. Хто захоче повторити пристрій, може трохи підредагувати друковану плату від попереднього варіанту. Зміни будуть незначні.
З усіх питань звертаємося на форум. Дякую за увагу. Ампервольтметр допив Бухар.
АРХІВ:
Форум