﻿<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="https://www.yfrobot.com.cn/wiki/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh">
		<id>https://www.yfrobot.com.cn/wiki/index.php?action=history&amp;feed=atom&amp;title=Map%28%29</id>
		<title>Map() - 版本历史</title>
		<link rel="self" type="application/atom+xml" href="https://www.yfrobot.com.cn/wiki/index.php?action=history&amp;feed=atom&amp;title=Map%28%29"/>
		<link rel="alternate" type="text/html" href="https://www.yfrobot.com.cn/wiki/index.php?title=Map()&amp;action=history"/>
		<updated>2026-04-05T16:29:39Z</updated>
		<subtitle>本wiki的该页面的版本历史</subtitle>
		<generator>MediaWiki 1.22.6</generator>

	<entry>
		<id>https://www.yfrobot.com.cn/wiki/index.php?title=Map()&amp;diff=1698&amp;oldid=prev</id>
		<title>Allblue：以“&lt;font color=&quot;orange&quot; size=&quot;+1&quot;&gt;'''描述'''&lt;/font&gt;  将一个数字重新映射到另一个范围。 也就是说，fromLow的值将被映射到ToLow，一个值从H...”为内容创建页面</title>
		<link rel="alternate" type="text/html" href="https://www.yfrobot.com.cn/wiki/index.php?title=Map()&amp;diff=1698&amp;oldid=prev"/>
				<updated>2017-09-13T05:48:10Z</updated>
		
		<summary type="html">&lt;p&gt;以“&amp;lt;font color=&amp;quot;orange&amp;quot; size=&amp;quot;+1&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;描述&amp;#039;&amp;#039;&amp;#039;&amp;lt;/font&amp;gt;  将一个数字重新映射到另一个范围。 也就是说，fromLow的值将被映射到ToLow，一个值从H...”为内容创建页面&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;font color=&amp;quot;orange&amp;quot; size=&amp;quot;+1&amp;quot;&amp;gt;'''描述'''&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
将一个数字重新映射到另一个范围。 也就是说，fromLow的值将被映射到ToLow，一个值从High到toHigh，值之间的值之间的值等。&lt;br /&gt;
&lt;br /&gt;
不会将值限制在范围内，因为超出范围的值有时是有意义和有用的。 如果需要对范围的限制，则可以在该函数之前或之后使用constrain()函数。&lt;br /&gt;
&lt;br /&gt;
请注意，任一范围的“下限”可能大于或小于“上限”，因此map()函数可用于反转数字范围，例如&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color:dimgray&amp;quot;&amp;gt;&lt;br /&gt;
y = map(x, 1, 50, 50, 1);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
该函数也能很好的处理负数，所以这个例子&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color:dimgray&amp;quot;&amp;gt;&lt;br /&gt;
y = map(x, 1, 50, 50, -100);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
也是有效的，效果很好。&lt;br /&gt;
&lt;br /&gt;
map()函数使用整数数学，所以不会产生分数，当数学可能表明它应该这样做。 小数剩余部分被截断，而不是四舍五入或平均。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;orange&amp;quot; size=&amp;quot;+1&amp;quot;&amp;gt;'''语法'''&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color:dimgray&amp;quot;&amp;gt;&lt;br /&gt;
map(value, fromLow, fromHigh, toLow, toHigh)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;orange&amp;quot; size=&amp;quot;+1&amp;quot;&amp;gt;'''参数'''&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* value：要映射的数字&lt;br /&gt;
* fromLow：值的当前范围的下限&lt;br /&gt;
* fromHigh：值的当前范围的上限&lt;br /&gt;
* toLow：值的目标范围的下限&lt;br /&gt;
* toHigh：值的目标范围的上限&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;orange&amp;quot; size=&amp;quot;+1&amp;quot;&amp;gt;'''返回'''&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* 映射值&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;orange&amp;quot; size=&amp;quot;+1&amp;quot;&amp;gt;'''示例'''&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color:dimgray&amp;quot;&amp;gt;&lt;br /&gt;
/* Map an analog value to 8 bits (0 to 255) */&lt;br /&gt;
void setup() {}&lt;br /&gt;
&lt;br /&gt;
void loop()&lt;br /&gt;
{&lt;br /&gt;
  int val = analogRead(0);&lt;br /&gt;
  val = map(val, 0, 1023, 0, 255);&lt;br /&gt;
  analogWrite(9, val);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;orange&amp;quot; size=&amp;quot;+1&amp;quot;&amp;gt;'''附录'''&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
对于数学的实现，这里是完整的函数&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color:dimgray&amp;quot;&amp;gt;&lt;br /&gt;
long map(long x, long in_min, long in_max, long out_min, long out_max)&lt;br /&gt;
{&lt;br /&gt;
  return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;orange&amp;quot; size=&amp;quot;+1&amp;quot;&amp;gt;'''扩展阅读'''&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:- [[constrain()]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Arduino语法参考 | 返回Arduino语法参考列表]]&lt;br /&gt;
&lt;br /&gt;
更多建议和问题欢迎反馈至 [http://www.yfrobot.com YFRobot论坛]&lt;/div&gt;</summary>
		<author><name>Allblue</name></author>	</entry>

	</feed>