На ардуино есть отличная
функция map и на
англ., для преобразования диапазонов.
spoiler
_______________________
Математически функция map() может быть записана так:
long map(long x, long in_min, long in_max, long out_min, long out_max)
{
return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
}
//а если заменить long на float или double, то она будет работать с плавающей точкой
//и соответственно изменить имя функции, что бы оно не пересекалось с родной библиотекой ардуины
_______________________
Если считать в милливольтах, т.е.
y = map(x, 0, 1023, 0, 5000), т.е. 1023 - соответствует 5000 мВ, т.е. 5 В.
Если надо можно сделать на ее основе свою, но переваривающую плавающие точки. Только помните, что плавающие точки считать немного дольше, чем целые числа.