map()

Descripción

Re-asigna un número de una gama a otra. Es decir, un valor de fromLow sería asignado a toLow, un valor offromHigh a toHigh, los valores intermedios a valores intemedios, etc.

No restringe los valores dentro del rango, ya que los valores fuera de la gama a veces se entiende que son útiles. La función constrain() se puede usar antes o después de esta función, si se desean límites de los intervalos.

Tenga en cuenta que los "límites inferiores" de cualquier rango pueden ser más grandes o más pequeños que los "límites superiores" para que la función map() se pueda usar para revertir una serie de números, por ejemplo:

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

La función también funciona con números negativos, según este ejemplo:

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

y también funciona con palabras.

La función map() usa números enteros por lo que no va a generar decimales, cuando las operaciones matemáticas podrían indicar que debería hacerlo. Los decimales remanentes se truncan, y no son redondeados o promediados.

Sintaxis

map(value, fromLow, fromHigh, toLow, toHigh)

Parámetros

  • value: el número a mapear
  • fromLow: el límite inferior del rango actual del valor
  • fromHigh: el límite superiordel rango actual del valor
  • toLow: el límite inferior del rango resultado del valor
  • toHigh: el límite superiordel rango resultado del valor

Retornos

  • El valor mapeado.

Ejemplo

// Mapea un valor analógico de 8 bits (0 a255) void setup() { pinMode(9, OUTPUT); // sets the pin as output } void loop() { int val = analogRead(0); val = map(val, 0, 1023, 0, 255); analogWrite(9, val); }

Apéndice

  • Para lo amantes de las mayemáticas, aquí está toda la función
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; }
  • 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:
float floatMap(float x, float in_min, float in_max, float out_min, float out_max) { return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min; }
  • Or
double doubleMap(double x, double in_min, double in_max, double out_min, double out_max) { return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min; }

ARDUINO BUY RECOMMENDATION

Arduino UNO R3
Arduino Starter Kit
Disclosure: Some links in this section are Amazon affiliate links. If you make a purchase through these links, we may earn a commission at no extra cost to you.
Additionally, some links direct to products from our own brand, DIYables.

※ OUR MESSAGES