This is ACS758 XX current sensor IC develop by Allegro. This device provides an economical and precise solutions for AC or DC current sensing. Typical application include in motor control, power load detection and management, power supply, DC to DC converters and control, power inverted control, and over-current fault detections. This device consists of precise low-offset linear hall circuit with a copper conduction path flowing through copper conductive path that generates a magnetic field which the Hall IC converts into a proportional voltage. The ACS758 accuracy is optimized through the close proximity of the magnetic signal to the hall transducer a precise proportional output voltage is provided by the low-offset, chopper-stabilized BiCMOS hall IC, which is programmed for accuracy.
The output of the device has a positive slope(>Vcc/2) when an increasing current flows through the primary copper conduction path from the terminal 4 to terminal 5, which is the path used for current sampling. The internal resistance of this conductive path is 100 μΩtypical, providing low power loss. As you can see the thickness of the copper conductor allows survival of the device at thigh overcurrent conditions the terminals of the conductive path are electrically isolated from the signal leads that allows the device to use in applications required electrical isolation without the use of opto-isolators or other isolation techniques. For further reading please refer to the data-sheet.
Required Components
- Arduino IDE | Atmel Studio | Energia | Processing
- Arduino PRO, FIO, NANO, UNO, MINI, MEGA, PRO MINI, LEO, BT, DUE, ETHERNET,LILYPAD, NodeMCU, Teensy Board, TeensyDuino, ESP8266 12, 12E, ESP32, LinkItOne, ESP8266 NodeMCU, ESPDuino, ATMEGA328 16/12, ATMEGA32u4 16/8/ MHz, ESP8266, MSP430 ,ATMEGA250 16 MHz, ATSAM3x8E, Note: The Diagram below is using NANO. (please refer to each MCU’s respective pin-outs & bus configurations)
- Allegro ACS758 AC or DC Current Sensor / ACS758 Module
- Capacitors (See below required values)
- Resistors (See below required values)
- Jumper Wire (Optional)
- PCB Designer (Circuit simulation to PCB Layout)
Wiring Guide
Source Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
#define senseIn = A0 int miliVoltsPerAmp = 40; //See the diagram for scale factors int acOffset = 2500; //See the diagram for offset value int rawSense = 0; double voltageValue = 0; double amp = 0; void setup(){ while(!Serial){ Serial.begin(9600); //If serial is available } Serial.println("14CORE | ACS758 Test Code"); Serial.println("Initializing ............"); delay(2000); } void loop(){ rawSense = analogRead(senseIn); voltageValue = (rawSense / 1023.0) * 5000; amp = ((voltageValue - acOffset)/miliVoltsPerAmp); Serial.println("RAW VALUE > "); Serial.println("rawSense"); Serial.println("MiliVolts > "); //Print measured voltageValue Serial.println("voltageValue, 3"); //Set display 3 digits after decimal point Serial.println("AMPS > "); Serial.println(amp, 3); delay(2500); } |
There are two capcitors and you only specify one. Seems the ‘coupling capacitor’ that is ‘application dependent’ doesn’t seem to be listed anywhere on how to compute it’s value. The only reference to Rf and Cf is only one place in the datasheet. Any suggestions? I assume it to be an r/c component to respond in the proper response time? Or suppress noise? Thanks