范围 (range)
将数值从一个范围线性映射到另一个范围。
输入
包含数值的消息对象。
输出
映射后的数值消息对象。
详细说明
范围节点将输入数值从一个范围线性映射到另一个范围。
常用于传感器数据的标准化和数值转换。
映射参数
- 输入范围: 原始数值的最小值和最大值
- 输出范围: 目标数值的最小值和最大值
- 限制输出: 将输出限制在目标范围内
- 舍入结果: 将结果舍入到指定小数位
映射公式
输出 = (输入 - 输入最小值) × (输出最大值 - 输出最小值) / (输入最大值 - 输入最小值) + 输出最小值
示例
温度转换:
javascript
// 配置:将0-100°C映射到32-212°F
// 输入
msg = {payload: 25}
// 输出
msg = {payload: 77} // 25°C = 77°F
传感器标准化:
javascript
// 配置:将0-1023的ADC值映射到0-100%
// 输入
msg = {payload: 512}
// 输出
msg = {payload: 50} // 50%
反向映射:
javascript
// 配置:将0-100映射到100-0(反向)
// 输入
msg = {payload: 25}
// 输出
msg = {payload: 75}
应用场景
- 传感器数据标准化
- 单位转换
- 百分比计算
- 信号调理
注意事项
- 输入值超出范围时的处理方式
- 除零错误的处理
- 浮点数精度问题