Основное отличие функций map() и constrain() в Arduino заключается в их функциях:
- map() используется для пересчёта значения из одного диапазона в другой. sinardcom.ru Функция позволяет масштабировать одно числовое значение в другой диапазон, что особенно актуально при преобразовании показаний аналоговых датчиков. sinardcom.ru При этом map() не ограничивает значение переменной заданными пределами. progoschool.ru vk.com
- constrain() позволяет ограничить значение переменной заданными рамками. sinardcom.ru Функция проверяет переданное ей значение и, если нужно, задаёт новое значение, чтобы оно было в области допустимых значений, заданной параметрами. progoschool.ru Это удобно, например, при управлении яркостью светодиода или значением аналогового сигнала, когда нужно исключить выход за допустимые пределы. sinardcom.ru
Таким образом, map() больше подходит для преобразования значений, а constrain() — для ограничения значений в определённом диапазоне.