Good morning,

I would like to use an Arduino Duemilanove to read the voltage signal generated from a current sensor (CSLA2CD). The datasheet for this sensor can be found here.

The problem is that the sensor requires a supply voltage of 6 to 12v. The signal output voltage is half the supply when no current flows through the sensor. I am using a 8v regulator for its supply, so the signal voltage may range from 4v (no current sensed) all the way to about 6v (about 60 amps).

Unless I'm mistaken, the arduino's analog pin can detect from 0v to 5v. So it would only accurately provide me data up to the 5v signal mark.

My questions are:

  1. Would a voltage divider be a good solution to reduce the signal voltage to a range the Arduino can read? If so,

  2. what would be the best resistor combination to use?

If there are better solutions than a voltage divider then please share.

Thanks very much!


It should work, but I don't know if its the best way.

Because the maximum voltage is 12 volts (I know you are only giving it 8, but you don't want to fry your board) you need the divider to send the Arduino 5/12 of the power. You don't need much current, so you can use big values or resistors. 10K and 24K should work, but you should research or test this before you hook it up to you kit.

  • Thank you for the quick reply! The Arduino will never receive the full 12v because i'm powering the sensor separately from the Arduino. The Arduino is only connected to the sensor via the analog pin and ground. The most voltage it would ever get into its analog pin would be 8v if there was a catastrophic failure with the sensor and it sent the full supply. That may still be enough to kill the pin, but probably not the whole Arduino, as far as I know. So you're recommending that I test the system using 10K for R1 and 24K for R2? Just want to clarify. – Andres May 8 '17 at 14:31
  • 1
    @Andres: If you know for sure that the input voltage will never be more than 8 V, then you could use 10 kΩ between the sensor and the Arduino and 15 kΩ between the Arduino and ground. The Arduino will then read no more than 4.8 V. – Edgar Bonet May 8 '17 at 15:24
  • 1
    Honeywell has also Current Sensors for 5V (the CSNX series). If you are only reading DC currents, then you can add a little capacitor parallel to the 15k resistor of about 10nF (1nF to 100nF) to reduce some noise. Do you have a modern 3.3V Arduino Due or do you really have a very old Duemilanove ? For the Duemilanove it is allowed to pull or push 1mA into a Arduino pin. That means with 10k and 15k the Arduino is protected for voltages from -10V to 19V. A voltage divider is accurate and works very well, anything else (for example OpAmps) would only introduce more inaccuracy. – Jot May 9 '17 at 6:36

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.