SIGN IN
SIGN IN HOME BUY SOFTWARE PRODUCTS LEARNING COMMUNITY SUPPORT
LANGUAGE
Reference > Language > Functions > Math > Map
FUNCTIONS
map()
VARIABLES
[Math]
STRUCTURE
LIBRARIES Description
GLOSSARY Remaps a number from one range to another. That is, a value of fromLow would get
mapped to toLow, a value of fromHigh to toHigh, values inbetween to values in
The Arduino Reference text is between, etc.
licensed under a Creative
Commons AttributionShare Alike
3.0 License. Does not constrain values to within the range, because outofrange values are
sometimes intended and useful. The constrain() function may be used either before
Find anything that can be
improved? Suggest corrections or after this function, if limits to the ranges are desired.
and new documentation via
GitHub. Note that the "lower bounds" of either range may be larger or smaller than the "upper
Doubts on how to use Github? bounds" so the map() function may be used to reverse a range of numbers, for
Learn everything you need to example
know in this tutorial.
Last Update: 11/15/2017
y = map(x, 1, 50, 50, 1);
The function also handles negative numbers well, so that this example
EDIT THIS PAGE
y = map(x, 1, 50, 50, 100);
is also valid and works well.
The map() function uses integer math so will not generate fractions, when the math
might indicate that it should do so. Fractional remainders are truncated, and are not
rounded or averaged.
Syntax
Parameters
value : the number to map
fromLow : the lower bound of the values current range
fromHigh : the upper bound of the values current range
toLow : the lower bound of the values target range
toHigh : the upper bound of the values target range
Returns
The mapped value.
Example Code
/* Map an analog value to 8 bits (0 to 255) */
void setup() {}
void loop()
{
SIGN IN HOME BUY S O F T int
W A Rval
E = analogRead(0);
val = map(val, 0, 1023, 0, 255);
analogWrite(9, val);
}
Appendix
For the mathematically inclined, heres the whole function
long map(long x, long in_min, long in_max, long out_min, long out_max)
{
return (x in_min) * (out_max out_min) / (in_max in_min) + out_min;
}
See also
LANGUAGE abs()
LANGUAGE constrain()
LANGUAGE max()
LANGUAGE min()
LANGUAGE pow()
LANGUAGE sq()
LANGUAGE sqrt()
NEWSLETTER
ENTER YOUR EMAIL TO SIGN UP SUBSCRIBE
Copyright Notice
Contact Us
About Us
Careers
2017 Arduino