This current-to-voltage module linearly converts 0~25mA current signals into 0~3V voltage signals. Industrial sensors or devices usually have the current signal output of 4~20 mA. With this current-to-voltage module, your main control board can easily read the current signals output from industrial sensors or devices. Normally, current signals lower than 4mA can be used for fault diagnosis, and current signals higher than 20mA can be used for overrun detection. Therefore, this module is designed with a wide range of 0~25mA detection range, which is compatible with fault detection, overrun detection applications. This module uses 0.1% high precision sense resistor and ultra-low noise rail-to-rail zero-drift op amp, so it is high accuracy, no need to calibration, and easy to use. 3.3V~5.5V wide voltage power supply, 0~3V voltage signal output, which are compatible with more main control boards, adapt to more applications.

NOTE: For higher accuracy, it is recommended to use 12 or more bit ADC!


Board Overview

Num Label Description
1 GND Power GND(0V)
2 VCC Power VCC(3.3~5.5V)
3 SIGNAL Voltage Signal Output
4 I+ Current Input
5 I- Current Output


This tutorial will demonstrate how to use this module with Arduino control board to read current signal of 4~20mA. Please prepare a sensor or device that outputs current signal of 4~20mA.


Connection Diagram

Sample Code

Before uploading the sample code, it is recommended that you use a voltmeter to confirm the actual reference voltage of the ADC on the main control board, and then modify VREF in the sample code, to improve the measurement accuracy.

 DFRobot Gravity: Analog Current to Voltage Converter(For 4~20mA Application)

 GNU Lesser General Public License.
 See <> for details.
 All above must be included in any redistribution

#define CurrentSensorPin  A2
#define VREF 5000 // ADC's reference voltage on your Arduino,typical value:5000mV

unsigned int voltage; //unit:mV
float current;  //unit:mA

void setup()

void loop()
    voltage = analogRead(CurrentSensorPin)/1024.0*VREF;
    Serial.print("mV  ");
    current = voltage/120.0;  //Sense Resistor:120ohm

Expected Results



For any questions, advice or cool ideas to share, please visit the DFRobot Forum.

More Documents

DFshopping_car1.png Get Gravity: Analog Current to Voltage Converter(for 4~20mA Application) from DFRobot Store or DFRobot Distributor.

Turn to the Top