4-20 mA current output for Arduino Uno

The purpose of this project is to provide a 4-20 mA output from a PWM signal generated by an ATmega328 or numerous other chips.

Similar projects worth following
Arduino Uno, or systems based on the ATmega328 chip has no a true analog output. The easiest way is to use one of the PWM outputs and filter the signal with a passive RC filter to obtain an analog signal proportional to the duration of the pulses. This expedient creates a considerable noise due to the frequency of the PWM itself. To eliminate the noise I used a second order active low-pass filter, Sallen-key type.
By connecting the filter directly to the PWM output is obtained a signal which varies from 0 to 5 V which would give an output current of 0 to 20 mA. The pulses duration is programmed with a word of 8 bits, losing 1/5 of the full scale. To improve the current resolution, I modified the minimum amplitude of pulses from 0 to 1 volts, giving at the output a 4 to 20 mA.

Enjoy this project?



Giovanni Carrera wrote 03/25/2020 at 15:41 point

A complete and detailed description of this project  can be found on my blog:

  Are you sure? yes | no

SanoopSiby wrote 09/04/2018 at 15:44 point

Hi, I am new in this platform. I would like to read and know more about the working of this circuit. I hope you would let me know some resources.  Thanks in Advance.

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates