- Необходимые материалы:
- Работа датчика тока 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 (мВ) -2500) / 185
Теперь мы знаем, как работает датчик ACS712 и чего от него ожидать. Приступим к принципиальной схеме.
Принципиальная электрическая схема:
Полная принципиальная схема этого проекта цифрового амперметра показана на изображении ниже.
Полная схема цифрового измерителя тока работает от напряжения + 5В, которое регулируется регулятором напряжения 7805. Мы использовали ЖК-дисплей 16x2 для отображения значения тока. Выходной контакт датчика тока (Vout) подключен к 7- му контакту PIC, который является AN4 для считывания аналогового напряжения.
Кроме того, штыревое соединение для PIC показано в таблице ниже.
S.No: |
Пин код |
Имя контакта |
Соединен с |
1 |
21 год |
RD2 |
RS LCD |
2 |
22 |
RD3 |
E LCD |
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 А. Однако в практическом случае мы могли бы получить Error до 0.2A. Значение АЦП и напряжение в (мВ) также отображаются на ЖК-дисплее для вашего понимания.
Программирование микроконтроллера PIC:
Как говорилось ранее, полный код можно найти в конце этой статьи. Код самообъясняется с комментариями и просто включает концепцию сопряжения ЖК-дисплея с микроконтроллером PIC и использования модуля ADC в микроконтроллере PIC, которые мы уже рассмотрели в наших предыдущих руководствах по изучению микроконтроллеров PIC.
Значение, считываемое с датчика, не будет точным, поскольку ток переменный и также подвержен шуму. Следовательно, мы считываем значение АЦП 20 раз и усредняем его, чтобы получить соответствующее текущее значение, как показано в приведенном ниже коде.
Мы использовали те же формулы, которые были объяснены выше, для расчета значения напряжения и тока.
for (int i = 0; i <20; i ++) // Считываем значение за 20 раз {adc = 0; adc = ADC_Read (4); // Считываем напряжение АЦП = adc * 4.8828; // Вычислить напряжение if (Voltage> = 2500) // Если ток положительный Amps + = ((Voltage-2500) /18.5); else if (Voltage <= 2500) // Если ток отрицательный, Amps + = ((2500-Voltage) /18.5); } Ампер / = 20; // Усреднение значения, которое было прочитано 20 раз
Поскольку этот проект также может считывать переменный ток, ток будет как отрицательным, так и положительным. То есть значение выходного напряжения будет выше и ниже 2500мВ. Следовательно, как показано ниже, мы меняем формулы для отрицательного и положительного тока, чтобы не получить отрицательное значение.
if (Voltage> = 2500) // Если ток положительный Amps + = ((Voltage-2500) /18.5); else if (Voltage <= 2500) // Если ток отрицательный, Amps + = ((2500-Voltage) /18.5);
Используя датчик тока 30А:
Если вам нужно измерить ток более 5 А, вы можете просто купить модуль ACS712-30A и подключить его таким же образом и изменить приведенную ниже строку кода, заменив 18,5 на 0,66, как показано ниже:
if (Voltage> = 2500) // Если ток положительный, Amps + = ((Voltage-2500) /0.66); else if (Voltage <= 2500) // Если ток отрицательный, Amps + = ((2500-Voltage) /0.66);
Также проверьте амперметр 100 мА с помощью микроконтроллера AVR, если вы хотите измерить слабый ток.
За работой:
После того, как вы запрограммировали микроконтроллер PIC и подготовили ваше оборудование. Просто включите нагрузку и микроконтроллер PIC, и вы должны увидеть, как ток, проходящий через провод, отображается на ЖК-экране.
ПРИМЕЧАНИЕ: ЕСЛИ вы используете модуль ASC7125A, убедитесь, что ваша нагрузка не потребляет более 5А, также используйте провода большего калибра для токоведущих проводов.
Полная работа проекта амперметра на базе микроконтроллера PIC показана на видео ниже. Надеюсь, проект заработал, и вам понравилось. Если у вас есть сомнения, вы можете написать их в разделе комментариев ниже или разместить на нашем форуме.