Descrição

 

Re-mapeia um número de uma faixa de valores para outra. Isto é, um valor de fromLow é mapeado para toLow, um valor fromHigh para toHigh, e valores intermediários da primeira faixa para a segunda faixa, mantendo-se a proporção entre eles.

Não restringe valores dentro da faixa, porque valores que extrapolem podem ser úteis e intencionais. A função constrain() pode ser utilizada tantes antes como depois desta função se limites para as faixas forem necessários.

Verifique que os limites inferiores de uma faixa podem ser maiores ou menores que os limites superiores. Desse modo a função map() pode ser utilizada para colocar em ordem reversa uma faixa de valores, como por exemplo:

y = map(x, 1, 50, 50, 1);

A função também pode utilizar números negativos como neste exemplo:

y = map(x, 1, 50, 50, -100);

 

A função map() utiliza números inteiros e não gera frações. Quando o resultado for fracionário ele será truncado e não arredondado.

Parâmetros

value: o número a ser mapeado

fromLow: limite inferior da faixa atual de value

fromHigh: limite superior da faixa atual de value

toLow: limite inferior da faixa para a qual se quer mapear

toHigh: limite superior da faixa para a qual se quer mapear

Retorno

O valor mapeado.

Exemplo

/* Mapear uma entrada analógica de 10 bits para uma saída analógica de 8 bits (0 a 255) */
void setup() {}

void loop()
{
int val = analogRead(0);
val = map(val, 0, 1023, 0, 255);
analogWrite(9, val);
}

Apêndice

Para aqueles com inclinação matemática aqui está a função completa:

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;
}

Veja também:

 

Página de início da referência

Correções, sugestões, e nova documentação devem ser enviadas ao Forum.

O texto de referência do Arduino está baixo uma Licença Creative Commons Attribution-ShareAlike 3.0. Amostras de código utilizadas na referência foram deixados  ao domínio público.

 

O conteúdo desta página é uma tradução para o português a partir do site original do Arduino.

Esta obra está sob uma Licença Creative Commons.

Creative Commons License