0% encontró este documento útil (0 votos)
31 vistas6 páginas

Funcionamiento del LDR y su uso en Arduino

El documento describe cómo funciona un sensor LDR (fotorresistencia) y proporciona varios ejemplos de código de Arduino para medir y responder a los niveles de luz detectados por un LDR. La resistencia de un LDR varía inversamente con la intensidad de la luz incidente, lo que permite medir la luminosidad. Los ejemplos incluyen encender LED en secuencia, variar la intensidad de un LED PWM y controlar un relé para encender y apagar una luz automáticamente.

Cargado por

paola jimenez
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
31 vistas6 páginas

Funcionamiento del LDR y su uso en Arduino

El documento describe cómo funciona un sensor LDR (fotorresistencia) y proporciona varios ejemplos de código de Arduino para medir y responder a los niveles de luz detectados por un LDR. La resistencia de un LDR varía inversamente con la intensidad de la luz incidente, lo que permite medir la luminosidad. Los ejemplos incluyen encender LED en secuencia, variar la intensidad de un LED PWM y controlar un relé para encender y apagar una luz automáticamente.

Cargado por

paola jimenez
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

LDR

Sin importar si utilizas un Módulo sensor LDR, o realices tú mismo un divisor


de tensión, el componente estrella, el que le permitirá a Arduino conocer el
nivel de luminosidad presente en el lugar en donde instalemos nuestro proyecto
es un LDR o fotorresistencia.

Este componente es llamado de diversas maneras, tal vez lo encuentres como


fotorresistor, fotorresistencia, fotocelda o LDR.

Aquí puedes ver uno de los símbolos que se usa para el LDR.

Un LDR es un componente que usamos en electrónica y que varía su


resistencia en función de la intensidad de la luz que incida en él.

Generalmente, encontramos en el comercio aquellos que:

 Disminuyen su resistencia cuando la intensidad de luz que se le


aplica aumenta.
 Incrementan su resistencia cuando la intensidad de la luz recibida
es menor.
 En otras palabras, su valor de resistencia es inversamente
proporcional a la intensidad de luz que se le aplique.

Este comportamiento podemos verificarlo con la ayuda de un multímetro


colocado en la escala de resistencia (ohmios – Ω).

¿Cómo funciona una fotorresistencia LDR?


El LDR basa su funcionamiento en el efecto fotoeléctrico.

Generalmente, la parte sensible a la luz de un LDR está fabricada con células


de sulfuro de cadmio (CdS), este material tiene la capacidad de variar su
resistencia eléctrica, cuya unidad de medida es el ohmio (Ω), según la cantidad
de luz que incide en sus células.

Las variaciones obtenidas en la resistencia del LDR son muy diversas


dependiendo del fabricante del mismo, pero pueden ser del orden de unos 100
Ω o menos con luz brillante y más de 1 MΩ (1 000 000 Ω) en la oscuridad.

La variación de resistencia en el LDR ante cambios de intensidad en la luz


ocurren con cierto retardo, y el mismo no es igual cuando se pasa de oscuridad
a luz, o de luz a oscuridad. Un tiempo de respuesta típico es de 100 ms o 0.1
segundo, aproximadamente.

ESQUEMA DE CONEXIÓN

PRIMER CODIGO LECTURA DE UN LDR


//Identificar el valor de la luz
int analogPin=0;
int valorLDR=0;
void setup(){
[Link](9600);
}
void loop(){
valorLDR=analogRead(analogPin);
[Link](valorLDR);
delay(400);
}

SEGUNDO CODIGO ENCENDIDO DE UN LED CON UN LDR

int analogPin=0;
int valorLDR=0;
int umbralNumber=900;// Ejemplo puede ser cualquier numero deseable
int LED=13;
void setup(){
pinMode(LED, OUTPUT);
[Link](9600);
}
void loop(){
valorLDR=analogRead(analogPin);
if (valorLDR >= umbralNumber){
digitalWrite(LED, HIGH);
}
else{
digitalWrite(LED, LOW);
}
}

TERCER CODIGO ENCENDIDO DE VARIOS LEDS CON


SECUENCIA Y LDR

int valorLDR = 0; //Creamos la variable de tipo número entero para almacenar los datos recogidos del
sensor analógico LDR (Light Dependant Resitor).

int pinLed1 = 8; //Nombramos los pines digitales que vamos a utilizar para los LEDs.
int pinLed2 = 9;
int pinLed3 = 10;
int pinLed4 = 11;
int pinLed5 = 12;

int pinLDR = A0; //Seleccinoamos el pin analógico A0 como input del sensor LDR.

void setup() {
pinMode(pinLed1, OUTPUT); //Configuramos como outputs, o salida de datos, los pines de los LEDs.
pinMode(pinLed2, OUTPUT);
pinMode(pinLed3, OUTPUT);
pinMode(pinLed4, OUTPUT);
pinMode(pinLed5, OUTPUT);

[Link](9600); //Inicializamos el monitor serie para visualizar los valores del LDR.
}
void loop() {
valorLDR = analogRead(pinLDR); //Leemos el valor del pinLDR y lo guardamos en la variable creada.
[Link](valorLDR); //Imprimimos dicho valor, comprendido entre 0 y 1023.
delay (100);

if(valorLDR < 890) { //Creamos los condicionales que determinarán los intervalos de encendido y
apagado de todos los LEDs.
digitalWrite(pinLed1, LOW);
digitalWrite(pinLed2, LOW);
digitalWrite(pinLed3, LOW);
digitalWrite(pinLed4, LOW);
digitalWrite(pinLed5, LOW); }

else if((valorLDR >= 891) & (valorLDR < 905)) {


digitalWrite(pinLed1, HIGH);
digitalWrite(pinLed2, LOW);
digitalWrite(pinLed3, LOW);
digitalWrite(pinLed4, LOW);
digitalWrite(pinLed5, LOW); }

else if((valorLDR >= 906) & (valorLDR < 920)) {


digitalWrite(pinLed1, HIGH);
digitalWrite(pinLed2, HIGH);
digitalWrite(pinLed3, LOW);
digitalWrite(pinLed4, LOW);
digitalWrite(pinLed5, LOW); }

else if((valorLDR >= 921) & (valorLDR < 935)) {


digitalWrite(pinLed1, HIGH);
digitalWrite(pinLed2, HIGH);
digitalWrite(pinLed3, HIGH);
digitalWrite(pinLed4, LOW);
digitalWrite(pinLed5, LOW); }

else if((valorLDR >= 936) & (valorLDR < 950)) {


digitalWrite(pinLed1, HIGH);
digitalWrite(pinLed2, HIGH);
digitalWrite(pinLed3, HIGH);
digitalWrite(pinLed4, HIGH);
digitalWrite(pinLed5, LOW); }

else if(valorLDR >= 951) {


digitalWrite(pinLed1, HIGH);
digitalWrite(pinLed2, HIGH);
digitalWrite(pinLed3, HIGH);
digitalWrite(pinLed4, HIGH);
digitalWrite(pinLed5, HIGH); }

CUARTO CODIGO ENCENDIDO DE UN LED CON PWM

int led = 9; //Pin PWM donde va conectado el LED


int sensorLuz = A0; //Pin análogo en donde va conectada la
fotocelda
int valorLuz;
int brilloLed;
void setup() {
pinMode(sensorLuz,INPUT);
pinMode(led,OUTPUT);
[Link](9600);
}
void loop() {
[Link](valorLuz);
valorLuz = 1023 - analogRead(A0); //Mapeo inverso de los
valores que toma la fotocelda
brilloLed = map(valorLuz, 0, 1023, 0, 255); //transformando un
valor de(0,123) a (0,255)
analogWrite(led, brilloLed); //Escribe los valores
en forma de PWM al LED
}

LUZ AUTOMÁTICA CON LDR Y RELE

int luz=4;
int adc;
float volt;

void setup(){
pinMode(luz,OUTPUT);
}

void loop(){
adc=map(adc,0,1023,0,5000); // la variable adc que va de 0 a
1023 siendo 0 a 0 voltios y 1023 a 5000 mV.
if(volt<=1000){
digitalWrite(luz,LOW);
}
else {
digitalWrite(luz, HIGH);
}
delay (1000);
}

También podría gustarte