- volver al inicio »
- midiendo la cantidad de luz
Esta vez no queremos obtener valores
digitales SI/NO, sino que queremos medir el valor de la luz que llega. Por eso
usaremos entradas ANALÓGICAS. Las podemos encontrar en nuestra placa como A0,
A1…
El esquema del montaje será muy
parecido al montaje básico del pulsador (que para eso lo hemos explicado…)
Como ves, la principal diferencia es
que conectamos el LDR a un pin analógico.
Además vamos a hacer otra cosa
interesante con este nuevo sketch. Vamos a visualizar los valores que
obtengamos del sensor en nuestro ordenador a través del puerto USB. Para ello
usaremos el MONITOR SERIAL del menú HERRAMIENTAS de nuestro IDE. Si, es
bastante feo, pero es el que hay. Las instrucciones básicas que debemos conocer
del monitor son:
Serial.begin(9600) inicia la comunicación con el
monitor a 9600 bits/seg
Serial.print(“Hola Mundo!”) muestra
una línea con Hola mundo
Serial.println(Valor) muestra en la misma línea el valor de una variable
Serial.println(Valor) muestra en la misma línea el valor de una variable
Con esto nos apañamos..., de
momento.
Vamos con el ejemplo:
// Midiendo la cantidad de luz con un LDR
int LDR_pin = 2; //
vamos a leer los valores del pin 0
int LDR_val = 0; //
definimos la VARIABLE LDR_val y le damos el valor inicial = 0
void setup() {
Serial.begin(9600); // iniciamos el monitor serial.
}
void loop()
{
LDR_val = analogRead(LDR_pin); // leemos el valor que da el LDR.
Serial.print("LDR = "); // Imprimimos el texto LRD= en una línea del monitor
Serial.println(LDR_val); //
en la misma línea, a continuación, el valor leído por el sensor
delay(1000); // Paro 1 segundo. Vuelvo al bucle, mido, imprimo, espero….bucle
}
Genial, ya sabemos presentar en
nuestro ordenador datos medidos con nuestra placa arduino. Ahora, además de
leerlos y presentarlos, vamos a procesarlos.
Lo inmediato que se nos ocurre a
todos es que, a partir de un determinado valor de lectura, hagamos algo. Por
ejemplo podríamos encender automáticamente un led cuando el valor de la luz sea
inferior al que nosotros fijemos. El esquema electrónico sería:
Usando el mismo ejemplo anterior,
vamos a añadir unas líneas de código. Sólo comentaremos las líneas
añadidas.
// Encendido automático de un LED en función de la luz
int LED_pin=13; //conectamos el LED en el
pin 13
int LDR_pin = 2;
void setup() {
pinMode(LED_pin,OUTPUT); // LED del pin configurado como SALIDA
Serial .begin(9600);
}
void loop()
{
LDR_val = analogRead(LDR_pin);
Serial.print("LDR =
");
Serial.println(LDR_val);
if (LDR_val>=20) // Si hay luz, valor
mayor de 20:
{
digitalWrite(LED_pin, LOW); // Apago el LED
}
else if (LDR_val<20) // Si no hay luz, si su
valor es menor que 20…
{
digitalWrite(LED_pin, HIGH); // Encendemos el LED
delay(1000);
}
}