top of page

Práctica 1: Encendido nocturno

El objetivo de esta práctica es encender un LED utilizando un sensor de luz LDR, es decir, queremos que se encienda el LED cuando cae la noche y oscurece. En caso contrario el LED permanecerá apagado. Para ello utilizaremos un sensor LDR.

 Materiales:

  • 1 Arduino UNO

  • 1 Protoboard

  • 4 Cables de Conexión

  • 1 LED

  • 1 Sensor LDR

  • 1 Resistencia de 220Ω (rojo-rojo-marrón)

  • 1 Resistencia de 10KΩ (marrón-negro-naranja)

Características Eléctricas: 

Polarizado: Sí

Intensidad de Corriente: 20mA

Tensión Led: (verde, ámbar, rojo)2.1V

Tensión Led:  blanco3.3V

Características LDR

Polarizado: No

Resistencia mínima (con luz): 100Ω

Resistencia máxima (sin luz): 1MΩ

Descripción breve dispositivos:

 

Que es LDR o Fotorresistor:

Un fotorresistor o fotorresistencia es un componente electrónico cuya resistencia disminuye con el aumento de intensidad de luz incidente.Puede también ser llamado fotoconductor, célula fotoeléctrica o resistor dependiente de la luz, cuyas siglas, LDR, se originan de su nombre en inglés light-dependent resistor. 

Su funcionamiento se basa en el efecto fotoeléctrico. Un fotorresistor está hecho de un semiconductor de alta resistencia como el sulfuro de cadmio, CdS.2​ Si la luz que incide en el dispositivo es de alta frecuencia, los fotones son absorbidos por las elasticidades del semiconductor dando a los electrones la suficiente energía para saltar la banda de conducción. El electrón libre que resulta, y su hueco asociado, conducen la electricidad, de tal modo que disminuye la resistencia. Los valores típicos varían entre 1 MΩ, o más, en la oscuridad y 100 Ω con luz brillante.

fororrestsitor.jpg

Por un lado se conecta el LED al pin digital 13 de la placa de arduino (utilizando su debida resistencia). Por otro lado, se conecta el sensor LDR al pin analógico 0 de la placa de arduino.

Programación en Arduino IDE

En primer lugar, se configura el pin digital 13 en modo salida (OUTPUT). Esta configuración se establece en la función setup(), ya que solamente se ejecuta una vez.

Por otro lado, en la función loop() se calcula el valor del sensor analógico conectado al pin de entrada analógica 0 de la placa de arduino, y en caso de ser superior al valor 150 se activará la salida digital 13 encendiendo el LED. En caso contrario el LED permanecerá apagado.

encendido-nocturno-esquema.png
Captura.PNG

 Códigos para copiar:

/**
 * Encendido nocturno
 */

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

void loop() {
  if (analogRead(0) > 150) {
    digitalWrite(13, HIGH);
  }
  else {
    digitalWrite(13, LOW);
  }
}

 Otros Códigos:

​

LDR.PNG

 Códigos para copiar:

/

int LED = 9;     //El LED esta conectado en el pin 9 
  int LDR = 0;     //El LDR esta conectador en el pin A0
  int luz = 0;       
  int valor_sensor = 0;       
  int valor_limite = 190;  //Este valor hara que el LED cambie de estado a una determinada luminosidad (podeis con distintos valores para ajustar la sensibilidad)


void setup() {      //Configuracion de los pin como entrada o salida 
  Serial.begin(9600);    
  pinMode(LED,OUTPUT);
  pinMode(LDR,INPUT);
}

void loop ()  //Configuracion de los valores del LDR
{
  valor_sensor = analogRead(LDR); 
  luz = (5.0 * valor_sensor * 100.0)/1024.0; //analogRead donde le pasamos como parámetro el número de pin que queremos leer y nos da un valor entre 0 y 1023 osea, 1024 valore
                                             //Esto quiere decir que si en el pin tenemos 0V nos dará 0 y si tenemos 5V o 3.3V (depende de a que voltaje esté funcionando nuestro Arduino) nos dará 1023, 
                                             //así de sencillo.Por lo tanto si queremos saber que voltaje tenemos en la entrada analógica solo debemos de multiplicar por 5/1024 
                                             //Temperatura = (Valor * 5 / 1024) / 0.01 = Valor * 5 * 100 / 1024
  Serial.print(luz);  
  Serial.println(" Luz");             
  delay(300);                       
  
  if (luz <= valor_limite)   //Si el valor de luz es menor o igual que el valor limite
  {
    digitalWrite (LED, LOW);  //El led se apaga
  }
  if (luz > valor_limite)   //Si es mayor que el valor limite
  {
    digitalWrite (LED, HIGH);  //El led se eniende
  }
}

bottom of page