Omet navegació

9.1.- Fotoresistència LDR

 

 

1. Esquema elèctric.

El LDR és una resistència que depèn de la llum.

LDR

En el nostre cas la posem al port 3 de la targeta Arduino, i posem dos leds, un roig al port 7 i un led verd al port 13. El programa compararà amb un condicional el valor llegit pel sensor LDR amb un valor establert i si supera aquest valor engegarà el led verd. En cas contrari s'engega el led roig de forma periòdica. Mireu l'esquema elèctric i el programa.

Arduino + LDR

2. Programa.

 

 
			// Copyright (C) 2011 Carles Ferrando
			// This program is free software; you can redistribute it and/or modify it under the terms
			// of the GNU General Public License as published by the Free Software Foundation;
			// See the GNU General Public License for more details
			// ( http://www.gnu.org/licenses/gpl.html )
			//
			// lecturaLDR
			// En aquest programa llegirem el valor d'un LDR i en funció de la lectura farem un cosa o una altra
			//
			int LDR = 3; // selecciona el pin d'entrada per al sensor de llum
			int ledverd = 13; // selecciona el pin per al LED VERD
			int ledroig=7;// selecciona el pin per al LED ROIG
			int val = 0; // variable per emmagatzemar el valor capturat des del LDR
			void setup() {
			  Serial.begin(9600); // Inicialitza el monitor serie per enviar-hi dades
			pinMode(ledverd, OUTPUT);  // declara el ledverd com eixida
			pinMode(ledroig, OUTPUT);  // declara el ledroig com eixida
			pinMode(LDR, INPUT); // declara el LDR com entrada
			}
			void loop() { // Aquest es el començament d'un cicle infinit
			val = analogRead(LDR); // llegeix i asigna a "val" un valor entre 0 i 1033
			Serial.print("Lectura LDR="); //Imprimeix el retol
			Serial.println(val); //Imprimeix la dada val i retorna final de linia
			delay(100);
			if(analogRead(LDR)>630){  //Si el valor llegit es major que 630 s'executen es instrucions de baix
			digitalWrite(ledverd, HIGH);  // engega el ledverd
			delay(300);                  // atura el programa 300  milisegons, aixó és 0,3s
			digitalWrite(ledverd, LOW);  // atura el ledverd
			delay(100); // atura el programa 0,1s
			}  
			// Aquestes intruccions s'executen sempre
			digitalWrite(ledroig, HIGH);  // engega el ledroig
			delay(300); // atura el programa 0,3s
			digitalWrite(ledroig, LOW);  // apaga el ledverd
			delay(100); // atura el programa 0,1s//Aquest es el final del cicle
			

 

 

3. Monitor sèrie.

Recorda que si anem a escriure dades en el monitor sèrie doncs hem posat l'ordre

Serial.begin(9600);

seguida de

Serial.print("intensitat llum="); //Imprimeix el retol

Serial.println(val); //Imprimeix la dada val i retorna final de línia


Caldrà engegar el monitor serie prement el botó

 

botó serial monitor

I podràs veure les dades llegides en una finestra com aquesta.

serial monitor LDR

 

4. El funcionament és aquest:

 

5. Utilitat. Un muntatges derivat d'aquest l'utilitzarem per detectar en un automatisme si estem en hores diürnes o nocturnes, per detectar la presència d'objectes que tapem quasi tota la llum, o per mesurar la llum que incideix d'un objecte d'un color concret.