Датчик тока ACS758, выполненный в виде микросхемы, состоит линейного датчика Холла, интегрированного на кристалл микросхемы, и медного проводника, размещенного близко к кристаллу. При протекании электрического тока через проводник, создается магнитное поле которое фиксируется датчиком Холла и преобразуется в напряжение, пропорциональное значению входного тока.
Выходное напряжение датчика меняется в зависимости от величины тока и его направления относительно средней точки, которая равна половине напряжения питания.
Силовые и сигнальные цепи имеют гальваническую развязку до 3 кВ. Датчик имеет сверхнизкое сопротивление проводника, порядка 100 мкОм. Датчики тока выпускаются на разные диапазоны, от 50 до 200 А. Напряжение питания датчика от 3,3 до 5 В. Датчик может выпускаться в виде микросхемы, так и в виде модуля CJMCU-758.
Датчик имеет следующую маркировку:
Как видно из таблицы, датчики рассчитаны на разный ток, бывают одно и двунаправленные, имеют разную зависимость мВ/А (чувствительность).
Для измерения тока я использовал датчик ACS758LCB-050B на 50 А, двунаправленный. Для измерения выходного сигнала используется плата Arduino Nano, информация о величине тока выводится на 4-х разрядный семисегментный дисплей (модуль) на базе драйвера TM1637. Питание (5 В) на датчик подается с платы Arduino.
#include <STM32_TM1637.h> // http://rcl-radio.ru/wp-content/uploads/2020/02/STM32_TM1637_V1_3.zip STM32_TM1637 tm(2,3);// CLK, DIO const float u_p = 5.10; float u_i, u_sum; void setup(){ tm.brig(5); pinMode(A0,INPUT); tm.print_float(50,2 ,0,0,0,0b01110111); delay(1000); tm.print_float(0,0 ,0b01000000,0b01000000,0b01000000,0b01000000); delay(1000); } void loop(){ for(int i=0;i<10;i++){ u_i=analogRead(A0)*u_p/1023; u_sum = u_sum+u_i; delay(50); } u_i=u_sum/10;u_sum=0; tm.print_float((u_i-(u_p/2))*25,1,0,0,0,0); }
В скетче необходимо указать напряжение питания датчика:
const float u_p = 5.10;
Форум — http://forum.rcl-radio.ru/viewtopic.php?id=203
ACS758.pdf