- Необхідні матеріали:
- Робота датчика струму ACS712:
- Кругова діаграма:
- Моделювання:
- Програмування мікроконтролера PIC:
- Робоча:
Вимірювання напруги та струму завжди буде корисним під час виготовлення або налагодження будь-якої електричної системи. У цьому проекті ми збираємося зробити власний цифровий амперметр за допомогою мікроконтролера PIC16F877A та датчика струму ACS712-5A. Цей проект може вимірювати як змінний, так і постійний струм з діапазоном 0-30А з точністю до 0,3А. За допомогою кількох модифікацій коду ви також можете використовувати цю схему для вимірювання до 30А. Тож давайте почнемо !!!
Необхідні матеріали:
- PIC16F877A
- 7805 Регулятор напруги
- Датчик струму ACS712
- 16 * 2 РК-дисплей
- Розподільна коробка та навантаження (Тільки для випробувань)
- Підключення проводів
- Конденсатори
- Макет.
- Живлення - 12В
Робота датчика струму ACS712:
Перш ніж починати будувати проект, для нас дуже важливо зрозуміти роботу датчика струму ACS712, оскільки він є ключовою складовою проекту. Вимірювання струму, особливо змінного струму, завжди є важким завданням через шум у поєднанні з цим неправильну ізоляційну проблему тощо. Але за допомогою цього модуля ACS712, розробленого компанією Allegro, стало набагато простіше.
Цей модуль працює за принципом ефекту Холла, який був відкритий доктором Едвіном Холом. Відповідно до його принципу, коли провідник, що несе струм, розміщений у магнітному полі, по його краях створюється напруга, перпендикулярна напрямкам як струму, так і магнітного поля. Не будемо заглиблюватися в цю концепцію, але, просто кажучи, ми використовуємо датчик Холла для вимірювання магнітного поля навколо провідника струму. Це вимірювання буде виражатися в мілівольтах, які ми називали напругою Холла. Ця виміряна напруга Холла пропорційна струму, який протікав через провідник.
Основною перевагою використання датчика струму ACS712 є те, що він може вимірювати як змінний, так і постійний струм, а також забезпечує ізоляцію між навантаженням (навантаженням змінного / постійного струму) та вимірювальним блоком (частина мікроконтролера). Як показано на малюнку, ми маємо три штифти на модулі, які є Vcc, Vout та Ground відповідно.
2-контактний клемний блок - це місце, через яке слід пропустити провід струму. Модуль працює на + 5 В, тому Vcc повинен живитись від 5 В, а земля повинна бути підключена до Землі системи. Штифт Vout має напругу зміщення 2500 мВ, тобто, коли через провід не протікає струм, вихідна напруга становитиме 2500 мВ, а коли струм буде позитивним, напруга буде більше 2500 мВ, а коли струм буде негативним, напруга буде менше 2500 мВ.
Ми будемо використовувати модуль АЦП мікроконтролера PIC для зчитування вихідної напруги (Vout) модуля, яка становитиме 512 (2500 мВ), коли через провід немає струму. Це значення буде зменшуватися, коли струм тече в негативному напрямку, і буде збільшуватися, коли струм тече в позитивному напрямку. Наведена нижче таблиця допоможе вам зрозуміти, як змінюється вихідна напруга та значення АЦП залежно від струму, що проходить через провід.
Ці значення були розраховані на основі інформації, наведеної в технічному паспорті ACS712. Ви також можете обчислити їх, використовуючи наведені нижче формули:
Напруга Vout (мВ) = (значення АЦП / 1023) * 5000 струм через провід (A) = (Vout (mv) -2500) / 185
Тепер, коли ми знаємо, як працює датчик ACS712 і що ми можемо від нього очікувати. Перейдемо до принципової схеми.
Кругова діаграма:
Повна електрична схема цього проекту цифрового амперметра показана на зображенні нижче.
Повна схема цифрового вимірювача струму працює на напрузі + 5 В, що регулюється регулятором напруги 7805. Ми використовували РК-дисплей 16X2 для відображення значення струму. Вихідний вивід датчика струму (Vout) підключений до 7- го виводу ПІК, який є AN4 для зчитування аналогової напруги.
Далі штифтове з'єднання для PIC показано в таблиці нижче
S.No: |
Номер PIN-коду |
Ім'я PIN-коду |
Пов'язаний з |
1 |
21 |
RD2 |
RS РК |
2 |
22 |
RD3 |
E РК |
3 |
27 |
RD4 |
D4 РК-дисплея |
4 |
28 |
RD5 |
D5 РК-дисплея |
5 |
29 |
RD6 |
D6 РК-дисплея |
6 |
30 |
RD7 |
D7 РК-дисплея |
7 |
7 |
AN4 |
Vout поточного Сеснора |
Ви можете побудувати цю цифрову схему амперметра на макетній дошці або використовувати дошку для перфорації. Якщо ви дотримувались навчальних посібників з PIC, ви також можете повторно використовувати обладнання, яке ми використовували для вивчення мікроконтролерів PIC. Тут ми використовували ту саму плату перфів, яку ми створили для світлодіодного блимання з мікроконтролером PIC, як показано нижче:
Примітка: Для вас не обов'язково будувати цю плату, ви можете просто слідувати принциповій схемі та побудувати схему на хлібній дошці та використовувати будь-який самоскид, щоб скинути свою програму в мікроконтролер PIC.
Моделювання:
Цю схему вимірювача струму можна також змоделювати, використовуючи Proteus, перш ніж фактично продовжувати роботу з обладнанням. Призначте шістнадцятковий файл коду, наведеного в кінці цього підручника, і натисніть кнопку відтворення. Ви повинні помітити струм на РК-дисплеї. Я використовував лампу як навантаження змінного струму, ви можете змінювати внутрішній опір лампи, натискаючи на неї, щоб змінювати струм, що проходить через неї.
Як ви можете бачити на наведеному вище малюнку, амперметр показує фактичний струм, що протікає через лампу, який становить близько 3,52 А, а на РК-дисплеї струм становить близько 3,6 А. Однак у практичному випадку ми можемо отримати помилку до 0,2А. Значення АЦП і напруга в (мВ) також відображаються на РК-дисплеї для Вашого розуміння.
Програмування мікроконтролера PIC:
Як уже говорилося раніше, повний код можна знайти в кінці цієї статті. Код пояснюється рядками коментарів і просто включає концепцію взаємодії РК-дисплея з мікроконтролером PIC та використанням модуля АЦП у мікроконтролері PIC, про що ми вже розповідали в попередніх навчальних посібниках з вивчення мікроконтролерів PIC.
Значення, прочитане з датчика, не буде точним, оскільки струм змінюється і також піддається шуму. Отже, ми читаємо значення АЦП 20 разів і усереднюємо його, щоб отримати відповідне поточне значення, як показано в коді нижче.
Ми використовували ті самі формули, які були пояснені вище, для розрахунку напруги та значення струму.
for (int i = 0; i <20; i ++) // Читати значення 20 разів {adc = 0; adc = ADC_Read (4); // Зчитування напруги АЦП = adc * 4.8828; // Обчислимо напругу, якщо (Напруга> = 2500) // Якщо струм додатний Ампер + = ((Напруга-2500) /18,5); else if (Напруга <= 2500) // Якщо сила струму від'ємна Ампер + = ((2500-Напруга) /18,5); } Підсилювачі / = 20; // Середнє значення, прочитане 20 разів
Оскільки цей проект може також читати змінний струм, струм струму також буде негативним і позитивним. Тобто величина вихідної напруги буде вище і нижче 2500 мВ. Отже, як показано нижче, ми змінюємо формули негативного та позитивного струму, щоб не отримати негативного значення.
if (Напруга> = 2500) // Якщо струм додатний Ампер + = ((Напруга-2500) /18,5); else if (Напруга <= 2500) // Якщо сила струму від'ємна Ампер + = ((2500-Напруга) /18,5);
Використання датчика струму 30А:
Якщо вам потрібно виміряти струм більше 5А, ви можете просто придбати модуль ACS712-30A та підключити його таким же чином і змінити нижченаведений рядок коду, замінивши 18,5 на 0,66, як показано нижче:
if (Напруга> = 2500) // Якщо струм додатний Ампер + = ((Напруга-2500) /0,66); else if (Напруга <= 2500) // Якщо сила струму від'ємна Ампер + = ((2500-Напруга) /0,66);
Також перевірте амперметр на 100 мА за допомогою мікроконтролера AVR, якщо потрібно виміряти низький струм.
Робоча:
Після того, як ви запрограмували мікроконтролер PIC та підготували обладнання. Просто включивши навантаження та мікроконтролер PIC, ви зможете бачити струм, що проходить через провід, що відображається на РК-екрані.
ПРИМІТКА: ЯКЩО ви використовуєте модуль ASC7125A, переконайтеся, що ваше навантаження не споживає більше 5А, також використовуйте дроти більшого калібру для струмопровідних провідників.
Повна робота проекту амперметра на основі мікроконтролера показана у відео нижче. Сподіваюся, ви запустили проект і вам сподобалось його робити. Якщо у вас є сумніви, ви можете написати їх у розділі коментарів нижче або опублікувати на наших форумах.