Вот взгляните:
http://caxapa.ru/28070.html?todo=fullобратите внимание, что в случае схемы с операционником
ему или же нужно двухполярное питание,
или использовать rail-to-rail, а они во первых намного дороже,
а во вторых все равно не перекрывают полностью весь диапазон от 0 до +5В.
И еще может иногда быть важно то, что на выход источника сигнала
через входной резистор будет подано +2.5В.