Делал что-то подобное на 555-таймере, питающемся от обмотки питания драйвера шим-контроллера источника. На выходе - ШИМ со скажностью, зависящей от уровня сетевого напряжения, пропускаем через оптрон и RC-цепочку - на АЦП контроллера. Нелинейность присутствует, разброс тоже, температурная зависимость и пр... утртаняется программно... но мне точно не не надо было...