Использование датчика тока ACS712 » Программирование устройств на PIC микроконтроллерах


Логин:
Пароль:
О сайте:

Pic.Rkniga.ru - Сайт как для начинающих, так и для опытных радиолюбителей, разрабатывающих свои устройства на популярных PIC микроконтроллерах.
Здесь можно обмениваться сообщениями на форуме, а также добавлять на сайт статьи и схемы своих устройств.

Меню сайта
Главная Форум по PIC микроконтроллерам Форум Статьи по PIC микроконтроллерам Статьи Справочная информаци по PIC микроконтроллерам Справочник Литература по PIC микроконтроллерам Литература Схемотехника Схемотехника устройств на PIC микроконтроллерах Микроконтроллеры Программаторы Все по программированию PIC микроконтроллеров Программы, Софт Программы Ссылки Написать нам
Опрос

Какой средой программирования вы пользуетесь?


MPLab/MPLabX
MicroC
MicroBasic
MicroPascal
Другой


Последние материалы
  • Каршеринг в Москве - это Просто, Удобно и Недорого.
  • Кнопка On/OFF на PIC12F629.
  • Часы с синхронизацией от китайского будильника
  • ШИМ регулятор на PIC16F628A.
  • Счетчики прямого и обратного счета на PIC16F628A.
  • Таймер отключения питания для мультиметра и не только.
  • Программирование на C микроконтроллеров PIC24
  • Измеритель напряжения и тока
  • Маршрутный компьютер для электровелосипеда
  • Простой двухканальный термометр на PIC16F690 и датчиках DS18B20
  • Популярные материалы
    Случайная книга
    Использование датчика тока ACS712
    Автор публикации: alex Просмотров: 9054 Добавлен: 12-11-2014, 15:30 Комментарии: 0

         Измерение и контроль протекающего тока являются принципиальным требованием для широкого круга приложений, включая схемы защиты от перегрузки по току, зарядные устройства, импульсные источники питания, программируемые источники тока и пр. Один из простейших методов измерения тока –использование резистора с малым сопротивлением, – шунта между нагрузкой и общим проводом, падение напряжения на котором пропорционально протекающему току. Несмотря на то, что данный метод очень прост в реализации, точность измерений оставляет желать лучшего, т.к. сопротивление шунта зависит от температуры, которая не является постоянной. Кроме того, такой метод не позволяет организовать гальваническую развязку между нагрузкой и измерителем тока, что очень важно в приложениях, где нагрузка питается высоким напряжением.

    Модуль датчика тока ACS712.
    Рисунок 1. Модуль датчика тока ACS712.

    Основные недостатки измерения тока с помощью резистивного шунта:
    • нагрузка не имеет прямой связи с «землей»;
    • нелинейность измерений, обусловленная температурным дрейфом сопротивления резистора;
    • отсутствие гальванической развязки между нагрузкой и схемой измерения.
         В статье мы рассмотрим экономичный и прецизионный интегральный датчик тока Allegro ACS712, принцип его работы, основанный на эффекте Холла, характеристики и способ подключения к микроконтроллеру для измерения постоянного тока. Статья разделена на две части: первая посвящена устройству и характеристикам датчика, вторая – интерфейсу с микроконтроллером и работе с датчиком.
         Датчик тока ACS712 основан на принципе, открытом в 1879 году Эдвином Холлом (Edwin Hall), и названным его именем. Эффект Холла состоит в следующем: если проводник с током помещен в магнитное поле, то на его краях возникает ЭДС, направленная перпендикулярно, как к направлению тока, так и к направлению магнитного поля. Эффект иллюстрируется Рисунком 2. Через тонкую пластину полупроводникового материала, называемую элементом Холла, протекает ток I. При наличии магнитного поля на движущиеся носители заряда (электроны) действует сила Лоренца, искривляющая траекторию движения электронов, что приводит к перераспределению объемных зарядов в элементе Холла. Вследствие этого на краях пластины, параллельных направлению протекания тока, возникает ЭДС, называемая ЭДС Холла. Эта ЭДС пропорциональна векторному произведению индукции B на плотность тока I и имеет типовое значение порядка нескольких микровольт.

    Эффект Холла
    Рисунок 2. Эффект Холла.

         Микросхема ACS712 выпускается в миниатюрном 8-выводном корпусе SOIC для поверхностного монтажа (Рисунок 3). Она состоит из прецизионного линейного датчика Холла с малым напряжением смещения и медного проводника, проходящего у поверхности чипа и выполняющего роль сигнального пути для тока (Рисунок 4). Протекающий через этот проводник ток, создает магнитное поле, воспринимаемое встроенным в кристалл элементом Холла. Сила магнитного поля линейно зависит от проходящего тока. Встроенный формирователь сигнала фильтрует создаваемое чувствительным элементом напряжение и усиливает его до уровня, который может быть измерен с помощью АЦП микроконтроллера.

    Микросхема ACS712 в корпусе SOIC
    Рисунок 3. Микросхема ACS712 в корпусе SOIC.


    Внутренняя конструкция датчика тока ACS712. Виден U-образный медный проводник проходящий вокруг элемента Холла
    Рисунок 4. Внутренняя конструкция датчика тока ACS712. Виден U-образный медный проводник проходящий вокруг элемента Холла.

         На Рисунке 5 показано расположение выводов ACS712 и типовая схема его включения. Выводы 1, 2 и 3,4 образуют проводящий путь для измеряемого тока с внутренним сопротивлением порядка 1.2 мОм, что определяет очень малые потери мощности. Его толщина выбрана такой, чтобы прибор выдерживал силу тока в пять раз превышающую максимально допустимое значение. Контакты силового проводника электрически изолированы от выводов датчика (выводы 5 – 8). Расчетная прочность изоляции составляет 2.1 кВ с.к.з.

    Расположение выводов интегрального датчика ACS712 и типовая схема включения
    Рисунок 5. Расположение выводов интегрального датчика ACS712 и типовая схема включения.

         В низкочастотных приложениях часто требуется включить на выходе устройства простой RC фильтр, чтобы улучшить отношение сигнал-шум. ACS712 содержит внутренний резистор RF, соединяющий выход встроенного усилителя сигнала со входом выходной буферной схемы (см. Рисунок 6). Один из выводов резистора доступен на выводе 6 микросхемы, к которому подключается внешний конденсатор CF. Следует отметить, что использование конденсатора фильтра приводит к увеличению времени нарастания выходного сигнала датчика и, следовательно, ограничивает полосу пропускания входного сигнала. Максимальная полоса пропускания составляет 80 кГц при емкости фильтрующего конденсатора равной нулю. С ростом емкости CF полоса пропускания уменьшается. Для снижения уровеня шума при номинальных условиях рекомендуется устанавливать конденсатор CF емкостью 1 нФ.

    Использование датчика тока ACS712


    Чувствительность и выходное напряжение ACS712
         Выходное напряжение датчика пропорционально току, протекающему через проводящий путь (от выводов 1 и 2 к выводам 3 и 4). Выпускается три варианта токового датчика для разных диапазонов измерения:
    • ±5 А (ACS712-05B),
    • ±20 А (ACS712-20B),
    • ±30 А (ACS712-30A)
         Соответствующие уровни чувствительности составляют 185 мВ/А, 100 мА/В и 66 мВ/A. При нулевом токе, протекающем через датчик, выходное напряжение равно половине напряжения питания (Vcc/2). Необходимо заметить, что выходное напряжение при нулевом токе и чувствительность ACS712 пропорциональны напряжению питания. Это особенно полезно при использовании датчика совместно с АЦП.
         Точность любого АЦП зависит от стабильности источника опорного напряжения. В большинстве схем на микроконтроллерах в качестве опорного используется напряжение питания. Поэтому при нестабильном напряжении питания измерения не могут быть точными. Однако если опорным напряжением АЦП сделать напряжение питания датчика ACS712, его выходное напряжение будет компенсировать любые ошибки аналого-цифрового преобразования, обусловленные флуктуациями опорного напряжения.
         Рассмотрим эту ситуацию на конкретном примере. Допустим, что для опорного напряжения АЦП и питания датчика ACS712 используется общий источник Vcc = 5.0 В. При нулевом токе через датчик его выходное напряжение составит Vcc/2 = 2.5 В. Если АЦП 10-разрядный (0…1023), то преобразованному выходному напряжению датчика будет соответствовать число 512. Теперь предположим, что вследствие дрейфа напряжение источника питания установилось на уровне 4.5 В. Соответственно, на выходе датчика будет 4.5 В/2 = 2.25 В, но результатом преобразования, все равно, будет число 512, так как опорное напряжение АЦП тоже снизилось до 4.5 В. Точно также, и чувствительность датчика снизится в 4.5/5 = 0.9 раз, составив 166.5 мВ/А вместо 185 мВ/А. Как видите, любые колебания опорного напряжения не будут источником ошибок при аналого-цифровом преобразовании выходного напряжения датчика ACS712.
         На Рисунке 7 представлены номинальные передаточные характеристики датчика ACS712-05B при напряжении питания 5.0 В. Дрейф выходного напряжения в рабочем диапазоне температур минимален благодаря инновационной технологии стабилизации.

    Зависимость выходного напряжения ACS712-05B от измеряемого тока
    Рисунок 7. Зависимость выходного напряжения ACS712-05B от измеряемого тока при напряжении питания 5.0 В и различных рабочих температурах.

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

    Экспериментальная схема
         Для экспериментов с датчиком тока необходимо собрать конструкцию согласно схеме, приведенной на Рисунке 8. Автор использовал для этого макетную плату и модуль на базе микроконтроллера (Рисунок 9).
         Модуль датчика тока ACS712-05B можно приобрести готовый (на eBay он продается совсем недорого), или изготовить самостоятельно. Емкость конденсатора фильтра выбрана равной 1 нФ, по питанию установлен блокировочный конденсатор 0.1 мкФ. Для индикации включения питания припаян светодиод с гасящим резистором. Питание и выходной сигнал датчика подведены на разъем с одной стороны платы модуля, 2-контактный разъем для измерения протекающего тока расположен с противоположной стороны.

    Схема подключения модуля датчика ACS712 и ЖК индикатора к микроконтроллеру
    Рисунок 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.

    Схема модуля датчика ACS712 для измерения малых токов
    Рисунок 10. Схема модуля датчика ACS712 для измерения малых токов.


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

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

    Смещение 20 мА при нулевом токе через датчик ACS712
    Рисунок 11. Смещение 20 мА при нулевом токе через датчик ACS712.

         Если выходное напряжение регулируемого источника питания установить равным 1 В, через резистор должен протекать ток порядка 370 мА. Измеренное значение тока в эксперименте – 390 мА, что превышает правильный результат на одну единицу младшего разряда АЦП (Рисунок 12).

    Показания индикатора при измерении тока 370 мА
    Рисунок 12. Показания индикатора при измерении тока 370 мА.

    При напряжении 2 В индикатор покажет 760 мА.
         На этом мы завершим обсуждение датчика тока ACS712. Однако мы не коснулись еще одного вопроса. Как с помощью этого датчика измерять переменный ток? Имейте ввиду, что датчик обеспечивает мгновенный отклик, соответствующий току, протекающему через измерительные выводы. Если ток течет в положительном направлении (от выводов 1 и 2 к выводам 3 и 4), чувствительность датчика положительная, и выходное напряжение больше Vcc/2. Если же ток меняет направление, чувствительность будет отрицательной, и выходное напряжение датчика опустится ниже уровня Vcc/2. Это означает, что при измерении переменного сигнала АЦП микроконтроллера должен делать выборки достаточно быстро, чтобы иметь возможность вычислять среднеквадратичное значение тока.

    В архиве: Проект MicroC с исходным кодом и прошивка микроконтроллера PIC16F1847.

    ispolzdatchtoka712.rar [36,42 Kb] (cкачиваний: 358)

    Комментарии