MultiMap
Нелинейная интерполяция по массиву точек для преобразования сырых данных датчиков в полезные значения
Установка
Последняя опубликованная версия- Скачайте архив — реестр отдает его уже проверенным.
- В Arduino IDE выберите «Скетч → Подключить библиотеку → Добавить .ZIP библиотеку».
- Укажите скачанный файл — библиотека появится в списке доступных.
SHA-256:1592383a2dc50d8cb71ab28cdf0a008a5f14e580337c606535df1467118bb8cbMultiMap-0.4.0-1592383a.zipОписание
Когда датчик выдаёт «сырые» значения, их нужно привести в полезный вид — например, отображение кодов с analogRead() на вольты или температуру по нелинейной характеристике. Встроенная функция map() справляется только с линейным масштабированием. Эта библиотека решает задачу нелинейной интерполяции через массив точек: вы задаёте несколько пар входных и выходных значений, и multiMap() соединяет их линейными отрезками, воспроизводя криволинейную зависимость. Точки не должны быть равномерно распределены — можно добавить больше точек в крутых участках кривой и меньше на прямых, это поднимает точность без лишних расчётов. Функция требует, чтобы зависимость была инъекцией: на каждый вход приходилось одно значение на выходе. Функции с особенностями вроде tan(x) при 90° или разрывами в районе нуля приближать не получится.