X

Al usar esta página web, aceptas nuestro uso de cookies. Usamos cookies para ofrecerte una mejor experiencia y para ayudar a que tu página funcione de manera efectiva.

D0/RXD1/TXD2D3 PWMD4D5 PWMD6 PWMD7D8D9 PWMD10 PWM/SSD11 PWM/MOSID12/MISOD13/SCKRESETRESET2AREFiorefA0A1A2A3A4/SDAA5/SCLN/CGND3V35VVINArduino Uno(Rev3) A5A4A3A2A1A0VINGNDGND5V3V3RESETIOREFRX0 0TX0 12- 34- 5- 678- 9- 10- 111213GNDAREF
MecatrónicaLATAM

ARDUINO FOTORESISTENCIA

Aprende a utilizar una fotoresistencia o LDR con Arduino, la cual, es un dispositivo que varía su valor en función de la luz recibida.

Es recomendable analizar las ventajas y desventajas de utilizar este sensor, así como verificar la hoja de datos para el modelo utilizado ya que podemos encontrar con características diferentes. Existen 2 formas de configurar un circuito con una fotoresistencia.

Nota: Aunque verifiquemos datos relevantes en la hoja de datos, es importante considerar que siempre existirán pequeñas variaciones debidas a la fabricación del componente. Un ejemplo muy claro es la tolerancia que se le da a diferentes tipos de resistores para indicar su valor.


LECTURA DE UNA FOTORESISTENCIA CON ARDUINO

Para la lectura de una fotoresistencia se crea un divisor de voltaje para poder hacer la lectura.

MATERIAL
  • 1x Arduino.
  • 1x LDR.
  • 1x Protoboard.
  • 1x Resistor(10kΩ).

Esquema de montaje

Como se puede observar tenemos 2 formas de montaje.

Circuito esquemático

LDR R (10kΩ)
LDR R (10kΩ)

Código

Se proporcionan 2 códigos en los cuales varían únicamente los cálculos aritméticos y se consideran como enteros, de esta manera se evitan los números flotantes y así no ralentizar la ejecución del programa. Pueden utilizar el código que mejor les convenga.

Utilizar si la fotoresistencia está entre GND y A0

  • const long A = 1000; //Resistencia en oscuridad en KΩ.
  • const int B = 15; //Resistencia a la luz (10 Lux) en KΩ.
  • const int Rc = 10; //Resistencia calibracion en KΩ.
  • const int LDR = A0; //Pin del LDR.
  • int V;
  • int iluminacion;
  • void setup()
  • {
    • Serial.begin(115200);
    }
  • void loop() //Definimos nuestra secuencia.
  • {
    • V = analogRead(LDR);
    • iluminacion = ((long)(1024-V)*A*10)/((long)B*Rc*V);
    • Serial.println(iluminacion);
    • delay(1000);
    }

Utilizar si la fotoresistencia está entre Vcc y A0

  • const long A = 1000; //Resistencia en oscuridad en KΩ.
  • const int B = 15; //Resistencia a la luz (10 Lux) en KΩ.
  • const int Rc = 10; //Resistencia calibracion en KΩ.
  • const int LDR = A0; //Pin del LDR.
  • int V;
  • int iluminacion;
  • void setup()
  • {
    • Serial.begin(115200);
    }
  • void loop() //Definimos nuestra secuencia.
  • {
    • V = analogRead(LDR);
    • iluminacion = ((long)V*A*10)/((long)B*Rc*(1024-V));
    • Serial.println(iluminacion);
    • delay(1000);
    }