用户工具

站点工具


ocrobot:kit:arduino_star_kit:tutorial019

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录前一修订版
ocrobot:kit:arduino_star_kit:tutorial019 [2017/10/04 07:58] 弘毅ocrobot:kit:arduino_star_kit:tutorial019 [2023/06/07 04:23] (当前版本) – 外部编辑 127.0.0.1
行 1: 行 1:
 +======使用MAP进行数据映射======
 +<WRAP center round info 100%>
 +这个例程展示如何使用map函数把ADC读数映射到0-255。
 +</WRAP>
 +使用map函数对获取的数值进行线性的放大或者缩小。
 +我们在很多场合需要对获取的数值进行线性的放大或者缩小,一般我们会使用乘法或者除法来进行处理。其实我们还有另外一种实现方法,就是使用map函数。
  
 +=====搭建电路=====
 +{{:ocrobot:kit:arduino_star_kit:2014-5-18_17-03-58.png?nolink|}}
 +=====代码=====
 +<code cpp>
 +/*映射一个模拟值到8位(0到255)*/
 +
 +void setup(){
 +
 +}
 + 
 +void loop()
 +{
 +  int val = analogRead(0);
 +  val = map(val,0,1023,0,255);
 +  analogWrite(9,val);
 +}
 +
 +
 +</code>
 +<WRAP center round tip 100%>
 +map(value, fromLow, fromHigh, toLow, toHigh)
 +
 +描述
 + 将一个数从一个范围映射到另外一个范围。也就是说,会将 fromLow 到 fromHigh 之间的值映射到 toLow 在 toHigh 之间的值。
 + 不限制值的范围,因为范围外的值有时是刻意的和有用的。如果需要限制的范围, constrain() 函数可以用于此函数之前或之后。
 + 注意:两个范围中的“下限”可以比“上限”更大或者更小,因此 map() 函数可以用来翻转数值的范围,例如:
 + y = map(x, 1, 50, 50, 1);
 + 这个函数同样可以处理负数,请看下面这个例子:
 + y = map(x, 1, 50, 50, -100);
 + 是有效的并且可以很好的运行。
 + map() 函数使用整型数进行运算因此不会产生分数,这时运算应该表明它需要这样做。小数的余数部分会被舍去,不会四舍五入或者平均。
 +参数:
 + value:需要映射的值;
 + fromLow:当前范围值的下限;
 + fromHigh:当前范围值的上限;
 + toLow:目标范围值的下限;
 + toHigh:目标范围值的上限
 +</WRAP>
 +
 +[[ocrobot:kit:arduino_star_kit:main|返回上一级]]

Valid HTML5 Valid CSS Driven by DokuWiki