Главная » 2014 » Ноябрь » 20 » Модуль датчика тока ACS712
21:52
Модуль датчика тока ACS712

  Экономичный и прецизионный интегральный датчик тока Allegro 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.

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

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

Функциональная схема датчика тока ACS712.

 

 

 

 

 

 

 

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

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

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

Выходной код АЦП

 

где

 

 

Следовательно

 

 

 

 

В итоге, формула для вычисления тока получается следующей:

 

 

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

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

Пример такой схемы

 

 

 

 

 

 

 

Принципиальная схема модуля

 

 

 

 

 

 

Пример кода для Arduino

void setup() {

Serial.begin(9600);
}

void loop() {

float average = 0;
for(int i = 0; i < 1000; i++) {
average = average + (.0264 * analogRead(A0) -13.51);
delay(1);
}
Serial.print(average);
Serial.println(“mA”);
}

 

 

Datasheet на ACS712

Категория: Электроника | Просмотров: 3405 | Добавил: graftsv | Теги: датчик тока, ACS712
Всего комментариев: 0
avatar