Está en la página 1de 6

ARDUINO NIVEL 1

Una función que nos ayuda


a convertir valores

Instructor: Konrad Peschka


Curso de Arduino nivel 1

Una función qué nos ayuda a convertir valores

Arduino UNO posee 6 entradas analógicas, lo que significa que podemos


conectarlo a seis sensores analógicos y obtener sus valores en cada pasada del
loop principal de Arduino, que en el caso de Arduino es en el mejor de los casos
de 8 KHz (este tema es muy discutible, pues depende de la autenticidad de la
placa y de la complejidad del código del loop); esto significa que podemos
realizar 8.000 lecturas del puerto analógico por segundo.

Puertos de entrada analógicos

La resolución de estas entradas es de 10 bits, lo que nos ofrece 1024


valores entre 0 y 1023 como valores de entrada, que se corresponden a 1024
valores intermedios entre 0V y 5V.

En ocasiones, los valores que obtenemos de una lectura de un pin, como


un sensor, pueden estar fuera de una escala determinada, y tenemos que
convertirlos a otro rango para poder usarlos.

El valor de salida que podemos darle al led es de 0 a 255, que se traduce


en su nivel de luminosidad, pero los datos que leemos del sensor pueden llegar
a 1024. Por esto debemos mapear el resultado, es decir, dejarlo en unos valores
de entre 0 y 255.

Instructor: Konrad Peschka 1


Curso de Arduino nivel 1

La función “map” del programa asigna un valor máximo y un valor mínimo


a un rango dado.

Imagina que recibimos mediante un sensor LDR, valores con un rango del
1 al 9 y que, en función a este valor, tenemos que iluminar un LED RGB. Si no
conociéramos esta función map() nos tocaría trabajar o bien con la estructura if
o haciendo unos cálculos previos.

Al tener 9 posibles valores mediante el sensor 1, 2, 3, 4, 5, 6, 7, 8, 9.

Mapear puerto con función IF

O bien haciendo un cálculo previo, dividiendo el valor máximo, en este


caso 255 entre el número de valores que tiene el rango, en este caso 9.
Quedando 255 dividido entre 9 = 28 aproximadamente.

Reajustar salida mediante operaciones aritméticas

Instructor: Konrad Peschka 2


Curso de Arduino nivel 1

Cuando comenzamos a trabajar con rangos mayores o queremos que el


resultado sea mucho más exacto, necesitaremos trabajar con la función map ().

y = map(valor, minimo, maximo, cambiominimo, cambiomaximo);


Parámetros necesarios para la función map

En este ejemplo vamos a transformar un valor del rango (0, 255) elegido
de forma aleatoria (con la función random()), en valores de rango (0, 1024) y
vamos a mostrar por el Monitor serial los resultados.

Uso de la función map

Para que veáis que fácil es de implementar esta función la voy a separar del
resto de código.

Sintax función map

Instructor: Konrad Peschka 3


Curso de Arduino nivel 1

Circuito Propuesto

El circuito propuesto consta de un potenciómetro conectado a la placa


Arduino, el potenciómetro deberá estar conectado en el pin “A2”, utilizando la
función “map” se deberá imprimir por puerto serie el valor en porcentaje en la
entrada A2, para ello usaremos:

● 1 Arduino uno
● 1 Potenciómetro
● 1 Protoboard

Circuito: Función Map

Solución de la Programación

Instructor: Konrad Peschka 4


Curso de Arduino nivel 1

Programa: Función Map


void setup()
{
Serial.begin(9600); //Inicializamos el puerto de serie
}

void loop()
{int analogico=analogRead(A0); // Se declara una variable que almacene
// el valor en el pin “A0”
int porciento=map(analogico,0,1023,0,100); // Con el uso de la función map se
// convierten los valores a una escala de 0-100
Serial.print("A0="); //Se imprime por puerto serie el valor
Serial.print(analogico); //de la variable analógico
Serial.print(" porciento="); // Con el uso de la función map, se imprime
Serial.println(porciento); // por puerto serie el valor de la variable “porciento”
}

Instructor: Konrad Peschka 5

También podría gustarte