Skip to content

Arduino project: the map() function

New Course Coming Soon:

Get Really Good at Git

When you acquire analog values from an analog input pin, by default they are acquired as values ranging from 0 to 1023.

This is because the analog read resolution is 10 bits, and 2^10 is 1024.

Tip: on ARM-based Arduino devices, like Arduino Zero, Arduino Due and the Arduino MKR family, you can map up to 12 bits, but the default is 0. On those devices you can call the analogReadResolution(12) to set the resolution to 12 bits, so you can go from 0 to 4095 instead of 1023

The map() function provided by the Arduino language allows you to map that range of values to a different range.

Here’s the function signature:

int <newvalue> = map(<value>, <original_min>, <original_max>, <new_min>, <new_max>);

It’s important to note that the function returns an integer value, the decimal part is cut.

For example you might want to map the original 1024 values we mentioned you can acquire through analog input to a set of only 10 values, because you might have some logic that only handles 10 steps.

You can do so like this:

int acquiredValue = analogRead(A1);
int value = map(acquiredValue, 0, 1023, 0, 9);

Here’s a full example:

void setup() {
    Serial.begin(9600);
}

void loop() {
    int acquiredValue = analogRead(A1);
    int value = map(acquiredValue, 0, 1023, 0, 9);
    Serial.println(value);
}

Now instead of the input having 1024 possible values, you have a restricted set of 10 possible values, going from 0 to 9.

Are you intimidated by Git? Can’t figure out merge vs rebase? Are you afraid of screwing up something any time you have to do something in Git? Do you rely on ChatGPT or random people’s answer on StackOverflow to fix your problems? Your coworkers are tired of explaining Git to you all the time? Git is something we all need to use, but few of us really master it. I created this course to improve your Git (and GitHub) knowledge at a radical level. A course that helps you feel less frustrated with Git. Launching Summer 2024. Join the waiting list!

Here is how can I help you: