4-20mA current loop revisited: a simpler calibration procedure


4-20mA receiver calibration

The calibration of the receiver aims to restore the initial signal input. The analogRead() function returns values between 0 and 1023. We aim to return the same values in the serial monitor connected to the receiver side.

To calibrate the receiver we have connect the receiver to the laptop, and power the transmitter from the external supply – the transmitter is already calibrated, no need for serial debugging anymore. The multimeter is still set on the 200mA DC, and in series with the bus.

4-20mA receiver with Arduino Uno

Now, upload the code below in the receiver. Start the serial monitor.

Turn the potentiometer knob until you have 4mA through the bus. Write down the value returned by the receiver in the serial terminal – that is the ADC_4mA calibration parameter.

Do the same for 20mA through the bus, and write down the ADC_20mA calibration values.

Now, take the code below, update the calibration values and upolad it to the receiver:

If everything is OK, you should now be able to see values between 0 and 1023 in the serial terminal connected to the receiver.

1 2


  1. Avatar

    Thank you for you tutorials (this, and the old one), as they are the only ones available on these click boards. I think it would be best, however, to include a drawn wiring schematic for further clarity, as those of us not using the Arduino Uno and associated MikroE Click Shields will find that the procedure is obfuscated.

Leave A Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.