Skip to content

Semana 4 Sensor de luz

Nestor Plasencia edited this page Nov 21, 2017 · 2 revisions

Como ya recordarás en la primera semana hablamos de que las entradas por naturaleza son los sensores, pero por facilidad de uso hemos estado usando un botón o un potenciómetro. Ahora vamos a conocer el uso de algunos sensores.

FOTORESISTOR (LDR : Light Dependent Resistor)

El LDR (Light Dependent Resistor) o fotorresistencia es una resistencia que varía su resistencia en función de la luz que incide sobre su superficie. Cuanto mayor sea la intensidad de la luz que incide en la superficie del LDR menor será su resistencia y cuanto menos luz incide mayor será su resistencia.

Los valores típicos de resistencia varían entre 1 MΩ, o más, en la oscuridad y 100 Ω con luz brillante.

Las entradas analógicas de Arduino sirven para medir voltajes entre 0 y 5V, pero no pueden medir la resistencia del LDR. Para poder medir la cantidad de luz usando un LDR necesitamos convertir su resistencia a un voltaje que medir con Arduino.

El circuito más sencillo para ello es el divisor de voltaje.

Este circuito consiste en dos resistencias conectadas en serie, a las que se aplica un voltaje en sus extremos, Vin. Al conducirse corriente a través de estas dos resistencias, se produce un voltaje en el punto donde se unen, Vout, cuyo valor puede determinarse con la fórmula:

En nuestro caso con el sensor LDR, construiremos un divisor de tensión donde R1 es nuestro propio LDR, y R2 es una resistencia que seleccionamos nosotros, de preferencia de alto ohmiaje.

A este circuito le aplicamos los 5V de nuestro Arduino en Vin, generando un voltaje en Vout que podemos leer con sus entradas analógicas. Al variar la resistencia del LDR, también lo hace el voltaje Vout que recoge nuestro Arduino, y de esta forma podemos detectar la cantidad de luz que hay en el ambiente.

En Circuits.io solo dejemos el arduino y el protoboard.

En +Components, adicionamos un Photoresistor (LDR) además de un Resistor

Los ubicamos en protoboard en serie, unimos el pin sobrante del fotoresistor a positivo y el pin sobrante del resistor a negativo. La unión entre los componentes la unimos a la entrada analogica A0.

A la resistencia le cambiamos el valor a 4.7 kOhm

El código que vamos a usar es de una lectura analogica.

int ldr = 0; 
int valor= 0; 
void setup(){

}
void loop(){
	valor = analogRead(ldr);	
}

Hasta este punto ya tenemos el valor de la lectura analogica, pero no tenemos una forma de visualizarlo. Por ello vamos a utilizar la consola serial para visualizar la información, para lograr esto agregamos en void setup la configuración del puerto serial. Serial.begin(9600); (el número 9600 es la velocidad de transmisión su unidad son los baudios) y para visualizar el valor obtenido agregamos Serial.println(valor);

int ldr = 0; 
int valor= 0; 
void setup(){
	Serial.begin(9600);
}
void loop(){
	valor = analogRead(ldr);
	Serial.println(valor);	
}

En Code Editor en la parte derecha encontrarás un botón Serial Monitor activalo, esto nos mostrara los valores obtenido en la entrada analogica.

En Code Editor ejecutamos la simulación con Upload and Run y movemos el indicador del sensor para ver los valores en el monitor serial.

Como vemos obtenemos un valor de 26 cuando está oscuro y un valor de 923 cuando está totalmente iluminado.

Ahora en +Components, adicionamos un LED y un Resistor de 220.

Los conectamos como una salida digital.

El código agregamos las configuraciones necesarias para el led.

int ldr = 0; 
int valor = 0;
int led = 9;
void setup(){
	Serial.begin(9600);
	pinMode(led,OUTPUT);
}

Agregamos una sentencia condicional de que si el ambiente esta oscuro (valor inferior a 800) encienda el led.

void loop(){
	valor = analogRead(ldr);
	Serial.println(valor);	
	if(valor < 800){
		digitalWrite(led,HIGH)
	}else{
		digitalWrite(led,LOW);
	}
}

En Code Editor ejecutamos la simulación con Upload and Run y movemos el indicador del sensor.