Basically my idea is the arduino will output 0-4mA current from PWM digital pin
It is not possible to control the current from an Arduino pin.
PWM merely switches the pin between HIGH and LOW. The current drawn while the pin is HIGH depends on the load.