Você está na página 1de 2

map

Eduardo Tocchetto
21 de Junho de 2021

1 map()
1.1 Descrição
Remapeia um número de um intervalo para outro. Isto é, um valor de deMenor
seria mapeado para paraMenor, um valor de deMaior para paraMaior, valores
dentro de uma faixa para volores dentro da outra faixa, etc.
Não restringe valores a ficar dentro do intervalo, porque valores fora do inter-
valo são as vezes úteis e pretendidos. A função constrain() pode ser usada tanto
antes como depois dessa função, se limites para os intervalos são desejados.
Note que os "limites mínimos"de cada intervalo podem ser maiores ou menores
que os "limites máximos"tal que a função map() pode ser usada para reverter um
intervalo de números, por exemplo
y = map(x, 1, 50, 50, 1);
A função também funciona bem com números negativos, tal que esse exemplo
y = map(x, 1, 50, 50, -100);
também é valido e funciona bem.
A função map() usa números inteiros e não irá gerar números fracionários,
quando a matemática indicar que deveria. Resíduos fracionários são truncados e
não são arredondados.

1.2 Sintaxe
=map(valor, deMenor, deMaior, paraMenor, paraMaior);

1.3 Parâmetros
valor: o número a ser mapeado
deMenor: o menor limite do intervalo atual do valor
deMaior: o maior limite do intervalo atual do valor

1
paraMenor: o menor limite do intervalo alvo
paraMaior: o maior limite do intervalo alvo

1.4 Retorno
O valor mapeado para o novo intervalo.

1.5 código Exemplo


Mapeia um valor analógico para 8 bits (0 a 255)

/* Mapeia um valor analógico para 8 bits (0 a 255) */


void setup() {}

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

1.6 Notas
Como mencionado anteriormente, a função map() usa matemática inteira. Então
frações podem ser suprimidas devido a isso. Por exemplo, frações como 3/2, 4/3,
5/4 irão ser retornadas como 1 pela função map(), apesar de os valores esperados
serem diferentes. Então, se seu projeto requer cálculos precisos (ex. tensão elétrica
com precisão de três decimais), por gentileza considere evitar a função map() e
implementar os cálculos manualmente no seu código.

Você também pode gostar