Está en la página 1de 6

Sistema para medir la intensidad de luz e

indicarla mediante varios leds

Alejandro José Segovia Gámez


TECH PROJECT: ARDUINO EN EL AULA

CEP Axarquía (Vélez Málaga)


Mayo 2018
1. Finalidad del sistema:

El objetivo de este proyecto es el diseño y construcción de un luxómetro capaz


de medir la intensidad luminosa y mostrarla al usuario mediante una escala de
LEDs. La utilidad de este dispositivo irá un poco más allá, ya que se pretende
implementarlo en un proyecto posterior que permita la subida y bajada de las
persianas de una vivienda según la intensidad luminosa en el exterior, con vistas
principalmente al ahorro de energía en climatización y en iluminación.

2. Búsqueda de Información:

La información necesaria para construir el dispositivo se ha obtenido


principalmente del material del curso TECH PROJECT: ARDUINO EN EL AULA,
aunque ha sido ampliada mediante los documentos que se señalan a
continuación:

- Gestión domótica de una casa unifamiliar basada en Arduino. Rodríguez


Diego, Miguel. UNIVERSIDAD DE VALLADOLID. ESCUELA DE INGENIERIAS
INDUSTRIALES
- Control automático de toldo. Fundación San Valero
- Casa domótica con Arduino. Sanclemente Carretero, Óscar. UNIVERSITAT
POLITÈCNICA DE VALÈNCIA. ESCUELA TÉCNICA SUPERIOR DE
INGENIERÍA DEL DISEÑO
- Arduino fotoresistencias o LDR.

3. Hardware:

Materiales:

1 x placa arduino UNO

1 x LDR

4 x LED rojo

4 x resistencia 220 Ohm

1 x resistencia 10 kOhm

8 x cables jumper
Esquema de conexiones:

4. Software:

/*

Sistema para medir la intensidad de luz e indicarla mediante varios leds

*/

// variables constantes para los pines

const int ldrPin = A0; //establece el pin de la LDR

const int ledPin1 = 4; //establece el pin del LED 1

const int ledPin2 = 7; //establece el pin del LED 2

const int ledPin3 = 8; //establece el pin del LED 3

const int ledPin4 = 12; //establece el pin del LED 4

//variable para almacenar el valor de la LDR

int ldrValue = 0;

void setup() {

// establecer pines de LEDs como salida


pinMode (ledPin1, OUTPUT);

pinMode (ledPin2, OUTPUT);

pinMode (ledPin3, OUTPUT);

pinMode (ledPin4, OUTPUT);

// abrir el puerto serie para monitonizar las lecturas de LDR y calibrar

Serial.begin(9600);

void loop() {

// leer el valor del sensor

ldrValue = analogRead (ldrPin);

Serial.println (ldrValue);

delay (1000); // se evita el parpadeo cuando la lectura de la LDR está


cerca de un límite

// para luz baja enciende LED 1

if (ldrValue<=250){

digitalWrite (ledPin1, HIGH);

digitalWrite (ledPin2, LOW);

digitalWrite (ledPin3, LOW);

digitalWrite (ledPin4, LOW);

//para luz media enciende LED 1 y 2

if (ldrValue>250 && ldrValue<=500){

digitalWrite (ledPin1, HIGH);


digitalWrite (ledPin2, HIGH);

digitalWrite (ledPin3, LOW);

digitalWrite (ledPin4, LOW);

//para luz alta enciende LED 1 , 2 y 3

if (ldrValue>500 && ldrValue<=800){

digitalWrite (ledPin1, HIGH);

digitalWrite (ledPin2, HIGH);

digitalWrite (ledPin3, HIGH);

digitalWrite (ledPin4, LOW);

//para luz alta enciende LED 1 , 2 , 3 Y 4

if (ldrValue>800){

digitalWrite (ledPin1, HIGH);

digitalWrite (ledPin2, HIGH);

digitalWrite (ledPin3, HIGH);

digitalWrite (ledPin4, HIGH);

}
5. Funcionamiento:

Se puede ver una muestra del funcionamiento en el siguiente vídeo de


youtube:

https://youtu.be/ce_KOvCGD20

6. Evaluación:

La LDR muestra ser un sensor poco preciso, por lo que las lecturas fluctúan y
cuando la lectura del sensor está próxima a alguno de los límites que hemos
establecido parpadea de forma nerviosa. Esto se ha solucionado de forma
satisfactoria incluyendo un delay de 1 segundo cada vez que se realiza la lectura
del sensor, pero debe existir una forma de tratar los datos que permita reducir
este efecto al mínimo. No se ha profundizado más en el tema porque el objetivo
de este proyecto era familiarizarme con las lecturas analógicas de la LDR para
poder implementarla con posterioridad en otro proyecto.

Como propuestas de ampliación y mejora podría aumentarse el número de LEDs


y de rangos e incluso incluir una forma de programar dichos rangos a posteriori
(según la época del año) sin necesidad de conectar la placa al ordenador.

También podría gustarte