SENSOR PARA MEDIR LA LUZ QUE IRRADIA UN CUERPO LUMINOSO

En esta ocasión, vamos a resolver uno de los ejercicios sacados del libro KIT Basico Arduino UNO, pagina 93

DESCRIPCIÓN DEL EJERCICIO

"Te proponemos que crees un sensor para medir la luz que irradia un cuerpo luminoso. Vamos a tener dos equipos el A y el B. En el equipo A va estar un LED que varía su brillo de acuerdo a la posición de un potenciómetro (Ver T6) y en el equipo B va estar comandado por una fotocelda. La idea es que dobles el LED y la fotocelda a 90°, los coloques lo más junto posible y los enfrentes, como si los dos se fueran a mirar de frente. Por consola serial debes ir mostrando la lectura de luz de la fotocelda, esta lectura debe ser en porcentaje de 0% a 100%. Un ejemplo de la salida por consola: Concentración de luz 57%."

DIAGRAMA DEL CIRCUITO

//Diagrama pendiente de subida

  • ·         El pin que se utilizara para leer el valor del potenciómetro es el pin analógico A1.
  • ·         El pin que se encargara de leer el valor de la fotorresistencia (LDR) es el pin analógico A0.
  • ·         El pin para mandarle datos al LED, es el pin digital 9.


El objetivo del circuito es que la intensidad del LED, será dado por el potenciómetro, pero dicha luz producida, será absorbida por la fotorresistencia, que como bien sabemos varia su valor en cuanto a la intensidad de luz que percibe. 

Ya teniendo todo esto, lo que haremos para conocer el valor de la fotocelda, será utilizar el monitor serial de Arduino IDE. Pero los datos que se mostraran, será un porcentaje de la intensidad de luz, esa parte lo lograremos mapeando los datos que nos arroja directamente la fotocelda que va entre 0 y 1023.


CODIGO DEL PROGRAMA

int potenciometro=0; //variable entera que guarda el valor del potenciómetro
int ldr=0; //variable entera que guarda el valor del LDR
int mapeo=0; //Variable entera que nos sirve para guardar el porcentaje
void setup() {
  pinMode(A0,INPUT);//declarar el pin analogico A0 como entrada de datos (LDR)
  pinMode(A1,INPUT); //declarar el pin analogico A1 como entrada (Potenciómetro)
  pinMode(9,OUTPUT);// declarar el pin digital 9 como salida de datos (LED)
  Serial.begin(9600); //Inicializar el monitor serial
}

void loop() {
  potenciometro=analogRead(A1); //obtener el valor del potenciómetro y guardarlo en la variable correspondiente
  digitalWrite(9,potenciometro);//activar el pin 9 donde está el LED, mandándole el valor del potenciometro
  ldr=analogRead(A0); //obtener el valor del LDR y guardarlo en la variable correspondiente
  mapeo=map(ldr,0,1023,0,100); //mapeamos el valor del LDR, ya que nos arroja datos entre 0 y 1023, pero nosotros queremos datos entre 0 y 100.

//imprimimos el resultado del mapeo en el monitor serial
  Serial.print("Concentracion de luz ");
  Serial.print(mapeo);
  Serial.println("%");
}

En el siguiente video se explica paso a paso la codificación del programa en Arduino, de igual manera se explica el funcionamiento



Revisa todos los materiales disponibles en el canal, siguiendo este enlace:

Comentarios

Entradas más populares de este blog

Como ser romántico nivel programador

Felicitaciones de cumpleaños para un programador [tomado de frasesparacumpleaños.com]

INDICADOR LUMINOSO DE VOLUMEN DE UN EQUIPO DE SONIDO (PROGRAMACIÓN EN ARDUINO)