Автопортал || Авто - статьи

Сельскохозяйственная техника
Чтение RSS

Використання датчика струму ACS712. Частина 2 - Підключення датчика до мікроконтролеру і робота з ним

Частина 1 - теорія

Підключення датчика струму до мікроконтролеру

Ознайомившись з основами теорії, ми можемо переходити до питання зчитування, перетворення та візуалізації даних. Іншими словами ми спроектуємо простий вимірювач постійного струму.

Аналоговий вихід датчика підключається до одного з каналів АЦП мікроконтролера. Всі необхідні перетворення і обчислення реалізуються в програмі мікроконтролера. Для відображення даних використовується 2-рядковий символьний ЖК індикатор.

експериментальна схема

Для експериментів з датчиком струму необхідно зібрати конструкцію згідно зі схемою, наведеною на рисунку 8. Автор використав для цього макетну плату і модуль на базі мікроконтролера (Малюнок 9).

Модуль датчика струму ACS712-05B можна придбати готовий (на eBay він продається зовсім недорого), або виготовити самостійно. Ємність конденсатора фільтра обрано рівної 1 нФ, по харчуванню встановлений блокувальний конденсатор 0.1 мкФ. Для індикації включення живлення припаяний світлодіод з резистором. Харчування і вихідний сигнал датчика підведені на роз'єм з одного боку плати модуля, 2-контактний роз'єм для вимірювання струму, що протікає розташований з протилежного боку.

Харчування і вихідний сигнал датчика підведені на роз'єм з одного боку плати модуля, 2-контактний роз'єм для вимірювання струму, що протікає розташований з протилежного боку

Малюнок 8.Схема підключення модуля датчика ACS712 і ЖК індикатора до мікроконтролера.

Схема підключення модуля датчика ACS712 і ЖК індикатора до мікроконтролера

Малюнок 9.Макетна і отладочная плати для проведення експериментів.

Для експериментів з вимірювання струму регульоване джерело постійної напруги підключимо до Струмовимірювальні висновків датчика через послідовний резистор 2.7 Ом / 2 Вт. Вихід датчика підключений до порту RA0 / AN0 (висновок 17) мікроконтролера. Двохстрочний символьний ЖК індикатор підключений до порту B мікроконтролера і працює в 4-бітному режимі.

Мікроконтролер харчується напругою +5 В, це ж напруга використовується в якості опорного для АЦП. Необхідні обчислення і перетворення реалізуються в програмі мікроконтролера.

Математичні вирази, які використовуються в процесі перетворення, наведені нижче.

Чутливість датчика струму Sens = 0.185 В / А. При харчуванні Vcc = 5 В і опорному напрузі Vref = 5 В розрахункові співвідношення будуть наступними:

Вихідний код АЦП

де

отже

У підсумку, формула для обчислення струму виходить такою:

Важливе зауваження. Представлені вище співвідношення засновані на припущенні, що напруга живлення і опорна напруга для АЦП рівні 5 В. Однак останній вираз, що зв'язує ток I і вихідний код АЦП Count, зберігає силу навіть при флуктуаціях напруги джерела живлення. Про це йшла мова в теоретичній частині опису.

З останнього виразу видно, що дозвіл датчика по току становить 26.4 мА, чому відповідають 513 відліків АЦП, що на один відлік перевищує очікуваний результат. Таким чином, ми можемо зробити висновок, що дана реалізація не дозволяє вимірювати малі струми. Для збільшення дозволу і підвищення чутливості при вимірюванні малих струмів потрібно використання операційного підсилювача. Приклад такої схеми показаний на рисунку 10.

Приклад такої схеми показаний на рисунку 10

Малюнок 10.Схема модуля датчика ACS712 для вимірювання малих струмів.

програма мікроконтролера

Програма мікроконтролера PIC16F1847 написана на мові Сі і скомпільована в середовищі mikroC Pro (mikroElektronika). Результати вимірювань відображаються на дворядковому ЖК індикаторі з точністю до двох десяткових знаків.

вихід

При нульовому вхідному струмі вихідна напруга датчика ACS712 в ідеальному випадку має бути суворо Vcc / 2, тобто з АЦП має бути лічено число 512. Дрейф вихідної напруги датчика на 4.9 мВ викликає зсув результату перетворення на 1 молодший розряд АЦП (Малюнок 11). (Для Vref = 5.0 В, дозвіл 10-бітного АЦП буде 5/1024 = 4.9 мВ), що відповідає 26 мА вхідного струму. Зауважимо, що для зменшення впливу флуктуацій бажано проводити кілька вимірів, і потім усереднювати їх результати.

Зауважимо, що для зменшення впливу флуктуацій бажано проводити кілька вимірів, і потім усереднювати їх результати

Малюнок 11.Зміщення 20 мА при нульовому струмі через датчик ACS712.

Якщо вихідна напруга регульованого джерела живлення встановити рівним 1 В, через
резистор повинен протікати струм близько 370 мА. Виміряне значення струму в експерименті - 390 мА, що перевищує правильний результат на одну одиницю молодшого розряду АЦП (Малюнок 12).

Малюнок 12.Показання індикатора при вимірюванні струму 370 мА.

При напрузі 2 В індикатор покаже 760 мА.

На цьому ми завершимо обговорення датчика струму ACS712. Однак ми не торкнулися ще одного питання. Як за допомогою цього датчика вимірювати змінний струм? Майте на увазі, що датчик забезпечує миттєвий відгук, відповідний току, що протікає через вимірювальні висновки. Якщо струм тече в позитивному напрямку (від висновків 1 і 2 до висновків 3 і 4), чутливість датчика позитивна, і вихідна напруга більше Vcc / 2. Якщо ж струм змінює напрямок, чутливість буде негативною, і вихідна напруга датчика опуститься нижче рівня Vcc / 2. Це означає, що при вимірюванні змінного сигналу АЦП мікроконтролера повинен робити вибірки досить швидко, щоб мати можливість обчислювати середньоквадратичне значення струму.

завантаження

Вихідний код програми мікроконтролера і файл для прошивки - завантажити

Як за допомогою цього датчика вимірювати змінний струм?