Clase 5 de fundamentos de Arduino:  FOTORRESISTOR 

Introducción de la clase de FOTORESISTOR para Arduino 

Un fotorresistor o fotocélula es una resistencia variable controlada por la luz. La resistencia de un fotorresistor disminuye con el aumento de la intensidad de la luz incidente; en otras palabras, exhibe fotoconductividad. Un fotorresistor se puede aplicar en circuitos detectores sensibles a la luz y circuitos de conmutación activados por luz y oscuridad.

Componentes 

{Product:2000}{Product:1436}{Product:287}{Product:603}{Product:13}{Product:222}{Product:1743}

Principio del experimento

La resistencia del fotorresistor cambia con la intensidad de la luz incidente. Si la intensidad de la luz incidente es alta, la resistencia se reduce; si es baja, aumenta. En este experimento, usaremos ocho LED para indicar la intensidad de la luz. Cuanto mayor sea la intensidad de la luz, más se encenderá el LED. Cuando la intensidad de la luz sea lo suficientemente alta, se encenderán todos los LED. Cuando no haya luz, todos los LED se apagarán.

Procedimiento

Paso 1: Conecta el circuito como se muestra en el diagrama siguiente:

 

El diagrama esquemático correspondiente es el siguiente:

                         

Paso 2: Programa (consulta el código de ejemplo en el CD o en la web oficial).

//

//2015.5.7

/*

  Bargraph sketch

 Turns on a series of LEDs proportional to a value of an analog sensor.

 Six LEDs are controlled but you can change the number of LEDs by changing

 the value of NbrLEDs and adding the pins to the ledPins array

 */

const int NbrLEDs = 8;

const int ledPins[] = { 5, 6, 7, 8, 9, 10, 11, 12};

const int photocellPin = A0;                          

int sensorValue = 0;        // value read from the sensor

int ledLevel = 0;           // sensor value converted into LED 'bars'

void setup() {

  for (int led = 0; led < NbrLEDs; led++)

  {

    pinMode(ledPins[led], OUTPUT);// make all the LED pins outputs

  }

}

void loop() {

  

  sensorValue = analogRead(photocellPin);

  ledLevel = map(sensorValue, 300, 1023, 0, NbrLEDs);  // map to the number of LEDs

  for (int led = 0; led < NbrLEDs; led++)

  {

    if (led < ledLevel ) {

      digitalWrite(ledPins[led], HIGH);     // turn on pins less than the level

    }

    else {

      digitalWrite(ledPins[led],LOW);      // turn off pins higher than 

                                                // the level

    }

  }

}

Paso 3: Compila el programa.

Paso 4: Carga el programa en la placa UNO.

Si se ilumina el fotorresistor con cierta intensidad de luz, se encenderán varios LEDs. Si aumenta la intensidad de la luz verá que se iluminan más LEDs.

Cuando lo coloques en un entorno oscuro todos los LEDs se apagarán.

Tarea que hacer

Además, puedes reemplazar el fotorresistor por un micrófono para utilizar LEDs para indicar la intensidad del sonido. Cuanto mayor sea la intensidad del sonido, más LED se encenderán. Puedes crear este efecto usted mismo.