Slider settings. Масштабирование

Как передать корректно масштабируемые данные из приложения Blynk?
Переменная типа byte Time
Слайдер значения 0,00 до 2,00
Decimals #.##
Включаю кнопку Mapping (без нее вообще только 0,1,2 передаются)
На слайдере все красиво… Значения слайдера отображаются до сотых долей. Открываю монитор порта Arduino IDE, смотрю, как изменяется переменная Time… А там какой-то ужас… Переменная масштабируется не пропорционально от 0 до 255, а как попало… Никакой логики не вижу.
Пробовал переменной присвоить тип float, не получилось…
Как получить значения переменной корректно такими, как на слайдере?

I have always found it more accurate to use the Arduino map() function on the device script instead of in the widget.


Я всегда считал более точным использовать функцию Arduino map () на скрипте устройства, а не в виджетах.

https://www.arduino.cc/reference/en/language/functions/math/map/

А покажите код как вы считываете из пина?

byte temp_delta;       // допустимые отклонения, дельта 'C
char auth[] = "**";
char ssid[] = "speakme";
char pass[] = "***";

BLYNK_CONNECTED()
{
  Blynk.syncAll();
}
BLYNK_WRITE(V11){temp_delta = param.asInt();} // слайдер дельта 'C

void setup()
{
  Serial.begin(115200);
  Blynk.begin(auth, ssid, pass);

  timer.setInterval (500, prints);        // serial
}

void loop()
{
  Blynk.run();
  timer.run();
}
}
void prints()
{
  Serial.print("temp_delta = ");
  Serial.println(temp_delta);
}


На скрине плавно двигаю слайдер от 0 до 2… Программно ничего не масштабирую. Странные данные.
Извиняюсь, не разобрался пока как тут сообщения форматировать…

То есть 241 это 0 на слайдере, а 15 это 2…

Blynk - FTFC

1 Like