map()
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 intervalo 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.
Sintaxe
map(valor, deMenor, deMaior, paraMenor, paraMaior);
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
- paraMenor: o menor limite do intervalo alvo
- paraMaior: o maior limite do intervalo alvo
Retorna
O valor mapeado para o novo intervalo.
Código de Exemplo
Apêndice
Para os matematicamnete interessados, aqui tem-se o código da função:
Notes & Warnings
- 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.
- The map() function returns an integer number. If you want to get the float number, you need to put the below custom function in your sketch and use it:
- Or
Ver Também
- Tutorials : How to fade LED in a time period
- Tutorials : How to control speed of servo motor
- Linguagem : abs()
- Linguagem : constrain()
- Linguagem : max()
- Linguagem : min()
- Linguagem : pow()
- Linguagem : sq()
- Linguagem : sqrt()
※ ARDUINO BUY RECOMMENDATION
Arduino UNO R3 | |
Arduino Starter Kit |