Нужно сделать терморегулятор с заданием уставки переменным резистором подключённым к модулю аналогового ввода

Вот думаю сделать нечто похожее на масштабирование применяемое в Си

Код:
void loop()
{
  int val = analogRead(0);
  int val1 = map(val, 0, 1023, 0, 255);
  analogWrite(9, val1);
}

математическая функция преобразования 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;
}
Может посоветуете как сделать лучше может ктото похожее уже делал?