Visual Basic para Excel

Fotoresistencia

Una fotorresistencia es un componente electrónico cuya resistencia disminuye con el aumento de intensidad de luz incidente. Puede también ser llamado fotorresistor, fotoconductor, célula fotoeléctrica o resistor dependiente de la luz, cuya siglas, LDR, se originan de su nombre en inglés light-dependent resistor.  Los valores de la resistencia para estos dispositivos varían dependiendo del uso que le demos y la luz disponible, los valores típicos varían entre 1 MΩ, o más, en la oscuridad y 100 Ω con luz brillante.

 

Actividad

Contol de leds dependiendo de la intensidad de luz que reciba la fotoresistencia:  con 3 LEDS, uno verde, uno amarillo y uno rojo. con suficiente luz ambiente, todos los LEDS están apagados, y conforme baja el nivel de luz, se encienden las diferentes “alertas”, siendo la roja la que indica mayor oscuridad.

Material complementario

  • Fotorresistencia: Definición, características y tipos [ir al sitio]

Materiales

  • 1  Arduino UNO Rev3
  • 1  Protoboard
  • 1  Fotoresistencia
  • 1  Resistencia de 10K (puede ser menor, dependiendo de si queremos ser sensibles a la claridad o a la oscuridad)
  • 3  Led colores diferentes (rojo, amarillo, verde)
  • 3  Resistencias 220[ohm]
  • Cables de conexión

Montaje

Sketch

int fotoPin = A0;  //define a pin análogo para el fotoresistor
                  //valores entre 0 (luz) y 1023 (oscuridad)
const int ledPin1 = 2;
const int ledPin2 = 3;
const int ledPin3 = 4;

void setup(){
    pinMode(ledPin1, OUTPUT);
    pinMode(ledPin2, OUTPUT);
    pinMode(ledPin3, OUTPUT);    
}

void loop(){

    int lectura = analogRead(fotoPin);
  
    if(lectura < 300)
    {
      digitalWrite(ledPin1, LOW);
      digitalWrite(ledPin2, LOW);
      digitalWrite(ledPin3, LOW);      
    }
    else if(lectura >= 300 && lectura < 500)
    {
      digitalWrite(ledPin1, HIGH);
      digitalWrite(ledPin2, LOW);
      digitalWrite(ledPin3, LOW);
    }
    else if(lectura >= 500 && lectura < 700)
    {
      digitalWrite(ledPin1, HIGH);
      digitalWrite(ledPin2, HIGH);
      digitalWrite(ledPin3, LOW);
    }
    else if(lectura >= 700)
    {
      digitalWrite(ledPin1, HIGH);
      digitalWrite(ledPin2, HIGH);
      digitalWrite(ledPin3, HIGH);      
    }

    delay(100);
}