Reference   Language (extended) | Libraries | Comparison | Changes

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

Descripción

Re-mapea un número desde un rango hacia otro. Ésto significa que, un valor (value) con respecto al rango fromLow-fromHight será mapeado al rango toLow-toHigh.

No se limitan los valores dentro del rango, ya que los valores fuera de rango son a veces objetivos y útiles. La función constrain() puede ser usada tanto antes como después de ésta función, si los límites de los rangos son deseados.

Ten en cuenta que los límites "inferiores" de algún rango pueden ser mayores o menores que el límite "superior" por lo que map() puede utilizarse para revertir una serie de números, por ejemplo:

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

La función maneja correctamente también los números negativos, por ejemplo:

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

también es válido y funciona correctamente.

La función map() usa matemática de enteros por lo que no generará fracciones, aunque fuere el resultado correcto. Los resultados en fracciones se truncan, y no son redondeados o promediados.

Parámetros

value: el número (valor) a mapear.

fromLow: el límite inferior del rango actual del valor.

fromHigh: el límite superior del rango actual del valor.

toLow: límite inferior del rango deseado.

toHigh: límite superior del rango deseado.

Devuelve

El valor mapeado.

Ejemplo

/* Mapea un valor análogo a 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 los interesados en el funcionamiento de la función, aquí está su código:

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

Ver También

Página principal Referencia

Correcciones, sugerencias, y nueva documentación deberán ser publicadas en el Foro (castellano) o en el Foro (inglés).

El texto de la referencia de Arduino está publicado bajo la licencia Creative Commons Reconocimiento-Compartir bajo la misma licencia 3.0. Los ejemplos de código de la referencia están liberados al dominio público.

Share