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
SIN EDUBASICA
Pues se necesita hacer el cableado correspondiente A0 con el potenciómetro y D3 a un led:
ContinuamosPrograma. ...
Regulación LED con potenciómetro sin la instrucción map
El programa sería el siguiente
unaMontaje 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**