Arduino中的map函数

一、案例

val = analogRead(dyPin);    //读取模拟口的模拟量数值
dyValue=map(val,0,1023,0,500);//这个函数是将电位器调节的模拟量的值按比例转换成对应的电压量

问题,为什么不是0~499呢?

其实也行↓

map(val, 0, 1023, 0, 500)被调用时,假设val的取值范围是0到1023。如果使用0到499作为映射范围,会导致最大值无法被完全映射到目标范围内。考虑到实际应用中可能需要完整映射整个范围,因此选择0到500作为映射范围更为合适,这样可以确保最大值1023能够被映射到500。

因此,为了确保映射的准确性和完整性,选取0到500作为映射范围是更为合理的选择。

通过analog 模拟输入引脚获取 对应的 模拟值 对应为1K阈值。

Serial.println((float)dyValue/100.00);    //串口显示对应的电压值

二、map函数

在Arduino中,map()函数用于将一个数字从一个范围映射到另一个范围。其语法如下:

map(value, fromLow, fromHigh, toLow, toHigh)
  • value:要映射的值。
  • fromLow 和 fromHigh:原始范围的最小值和最大值。
  • toLow 和 toHigh:目标范围的最小值和最大值。

例如,map(val, 0, 1023, 0, 500) 的作用是将 val 这个值从 0 到 1023 的范围映射到 0 到 500 的范围内。这意味着如果 val 的值为 0,映射后的值为 0;如果 val 的值为 1023,映射后的值为 500;如果 val 的值在这个范围内,将按比例线性映射到目标范围内的对应值。

三、请区别与Java语言的Map集合 

在Arduino中,map()函数用于将一个数字从一个范围映射到另一个范围,这是一种数学计算函数,用于对数值进行线性映射转换。

而在Java语言中,Map是一种接口(Interface),它表示映射表,即一种键值对的集合。Java中的Map集合用于存储键值对,并提供了根据键来查找值的功能。常见的实现类包括HashMapTreeMap等,它们提供了不同的实现方式和性能特点。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值