I am working on my graduation project to build a laser unit, i am supposed to control the power of laser diode when operating in pulsed mode and continuous mode. firstly, i had the pulses from "Arduino UNO" and connected it to a FET then i have a pulsed laser diode. secondly, i implemented a current constant driver which include a comparator "OP-AMP" , curent sensing resistor and FET, then i can control the current of laser diode butt it is not pulsed. The question here is how can i make an accurate constant current driver controlling the laser diode by digitally (by Arduino) with the ability to work in CW or pulsed mode.
Mosfets are an answer. They do make great current sources and scaling is by size. To be honest I don't know how fast you need to pulse this, but I'm going to give you a part that is both a CC driver and a PWM. You really don't want to make that circuit discretely. CAT4101 from OnSemi. Use a make-before-break digi-pot to change the constant current bias and use pwm for... pwm!