La función map (mapear) sirve para convertir números
de un rango a otro.
Nos ahorra mucho trabajo de conversión y podemos cambiar una
magnitud a otra.
Un sensor mide
magnitudes de 10 bits es decir, valores de 0 a 1023, 1024 valores. Mientras que
un actuador utiliza magnitudes de 8 bits es decir valores de 0 a 255, 256
valores.
Veamos un ejemplo:
Un potenciómetro es
un sensor y utiliza valores de 0 a 1023 y un led es un actuador y utiliza
valores de 0 a 255, vamos a usar el potenciómetro para controlar el brillo del
led, pero queremos que se use toda la escala del potenciómetro, que al bajarlo
por completo sea cero y al girarlo por completo sea 255, no 1023.
Debemos usar la función
map como sigue:
Recuerda que debemos
declarar una variable donde se guarde nuestro valor de map, eso lo hacemos en
el inicio del código.
variable2 = map
(variable1, 0, 1023, 0, 255);
Donde le indicamos al programa que los valores de la variable1 que es donde se guarda el valor original del potenciómetro (0 a 1023) cambiarán de escala a (0 a 255) y la variable2 será la que guarde el nuevo valor.
Si cambiamos el
valor de 0 a 1023 por uno que va de 0 a 255, de manera gráfica quedaría así nuestro potenciómetro:
Si no utilizamos la función map el potenciómetro quedaría así, es decir que no aprovechamos todo el recorrido, solo una pequeña sección de el:
Otro ejemplo es usar la función map en un servomotor.
Veamos cómo se usaría con un servomotor:
En Arduino el código quedaría así:
variable1 = map (variable2, 0, 1023, 0, 180);
El valor del potenciómetro que va de 0 a 1023 lo mapeamos a el valor del servomotor que es de 0 a 180°
De ésta forma cambiamos de escala para usarla en cualquier elemento.
No hay comentarios:
Publicar un comentario