Och nö... wie würdest Du das denn MIT uC lösen?!

Du nimmst einen OPV, 1/2 LM358 zB, (+)-Eingang an Deine "Vorgabespannung", Basis vom Leistungstransistor an den Ausgang, Kollektor an +Ub, Emitter ist der Ausgang und geht über einen Widerstand von sagen wir mal 1k auf den (-)-Eingang des OPV. Zwischen (-)-Eingang und Ausgang kommt noch ein Kondensator von ein paar nF, damit die Möhre nicht schwingt.
Parallel zum Ausgang des Ganzen noch ein Elko mit 100u aufwärts und gut ist.
Bedenke aber, dass der OPV nur bis 2V an +Ub heran kommt und der Transistor auch noch etwas vertilgt, bei 12V Usoll brauchst Du also 15V oder mehr. Mit einem OPV, der ein- und ausgangsseitig rail to rail kann reichen dann auch um die 13V.
Transistor gut kühlen!