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.
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() { }
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;
}
No hay comentarios:
Publicar un comentario