Skip to main content

M1: Potenciómetro

Montaje: Lectura de potenciómetro y regulación de la luz sin map

Vamos a realizar un programa para comprobar que al variar el valor de una resistencia mediante un potenciómetro, también variará la cantidad de luz que emite un led. Como se puede ver en el siguiente vídeo, a medida que giramos el potenciómetro el led varía su luminosidad.

Perooooo si esto ya lo hemos hecho !! aquí 
Cierto, pero ahora SIN LA INSTRUCCIÓN MAP para comprender bien su funcionamiento.

Para ello el valor que lee 0-1024 lo convertimos a 0-255 que necesita la señal PWM que enviamos al LED simplemente dividiéndolo entre 4. (1024/4 = 256 aproximadamente 255)

CON EDUBASICA

Vamos a aprovechar el A0 que está conectado al potenciómetro y utilizaremos el D3 que está conectado al LED VERDE

Esquema del potenciómetro y de los diodos en EDUBÁSICA

SIN EDUBASICA

Pues se necesita hacer el cableado correspondiente A0 con el potenciómetro y D3 a un led:

Continuamos

Programa. ...
Regulación LED con potenciómetro sin la instrucción map

El programa sería el siguiente

https://Declaramoscreate.arduino.cc/editor/javierquintana/c0562793-5b64-490a-8dc4-72e4428de59a/preview

una

Montaje variable: paraLeer almacenarvalores el valor recibido en pin 0. int val = 0; void setup() { //El pin 3 corresponde al LED verde pinMode(3, OUTPUT); } void loop() { /*leemos el valor del pin O modificadopotenciómetro por el potenciómetropuerto queserie vasin desdela 0instrucción a 1023*/ val = analogRead(0); /*Escribimos el valor obtenido en el LED verde que puede ser entre 0 y 255. Por eso dividimos val por 4 */ analogWrite(3, val/4); }

Montaje : Mapeo Potenciómetro

map

Vamos LEERahora LOSleer VALORESlos DELvalores POTENCIÓMETROen ENvoltios PANTALLAque salen del potenciómetro. Pero 

SIN EDUBÁSICA

Conectamos la salida de un potenciómetro a A0

CON EDUBASICA

No hay que hacer nada, ya está !

Continuamos ...

Fíjate como dividimos los valores del potenciómetro A0 (que va desde 0 a 1024) entre 204.6 para convertirlos dentro del rango de 0-5V ( 1024/5=204.6 ) :

https://create.arduino.cc/editor/javierquintana/e95259e6-9c6f-4079-8c25-fbbbc212ca55/preview

Este es el vídeo:

Mapeo de valores

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.

Por ejemplo:

Supongamos que hacemos una lectura previa de lo que nos devuelve el LDR y nos devuelve unos valores mínimo y máximo por ejemplo: 917, 1024 y queremos traducir estos valores al rango 0-255 pues es lo que podemos darle a un LED. La solución será _mapear _esos valores para que, en caso de obtener el valor 917 (el equivalente a oscuridad), el led verde se apague (0) y la máxima luminosidad (1024) el led se ilumine al máximo (255).

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

_Nota: En el próximo montaje el valor máximo suele estar en 1024, pero el mínimo dependerá de las condiciones de luz en las que realicemos la práctica. Por eso en el código se especifican 2 variables que deberemos colocar a mano:

bajo_LDR y alto_LDR._

Observa si tu montaje necesita de algún ajuste utilizando la función map.

Aquí tienes un Excel (xlsx - 12,88 KB) para ver la transformación lineal que hace map con los valores que hemos comentado, es simplemente una demostración de lo que hace internamente la función map**