Está en la página 1de 1

26 de febrero 2018

Función MAP

La función "map" es sencilla y bastante útil, en esencia nos permite convertir un rango de
variación en otro con toda sencillez.

Por ejemplo, imagina que tienes un sensor de luz, algo que te dé un voltaje proporcional a la
cantidad de luz que reciba (una LDR o algo parecido). Si conectamos el sensor a una entrada
analógica vemos (son valores imaginarios) que esta varía de 130 a 320, siendo 130 la lectura a
oscuras y 320 la lectura a plena luz.

Imagina que quieres programar una luz que se ilumine en función de la luz ambiente, esto es,
más en la oscuridad que cuando hay plena luz. En nuestro ejemplo podemos usar un led que
conectamos a una de las salidas PWM del arduino. Esta salida controla el voltaje de salida en
función de un parámetro que varía entre 0 y 255.

De esta forma, cuando el sensor de luz nos da 130 tenemos que generar 255 por el PWM y
cuando leemos 320 es que estamos a plena luz y pondremos el PWM a 0 para que se apague el
led.

¿Cómo calculamos el valor que tenemos que darle al LED para cada valor del sensor de luz?,
muy fácil con la función map que nos permite pasar de un rango a otro.

Si no me he equivocado, sería algo como esto:

#define LDR 0
#define LED 9 //es una de las salidas PWM

int valor_ldr, valor_led;

void setup()
{
pinMode(LED, OUTPUT);
}

void loop()
{
valor_ldr = analogRead(LDR);
valor_led = map(valor_ldr,130,320,0,255);
analogWrite(LED, valor_led);
delay(100);
}

También podría gustarte