9.1.- Fotoresistència LDR
1. Esquema elèctric.
El LDR és una resistència que depèn de la llum.
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.
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ó
I podràs veure les dades llegides en una finestra com aquesta.
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.
Llicenciat sota la Llicència Creative Commons Reconeixement NoComercial CompartirIgual 3.0