viernes, 1 de noviembre de 2013

Sensor De Intensidad Solar

Universidad Autónoma Del Caribe




Buscador de posicionamiento solar y sensor de intensidad




Ingeniería Mecatrónica
German Lozano Mantilla
Jairo Orduz Rodriguez






 Materia: 
Sensores Y Actuadores




Profesor:
Ing. Mauricio Barrios



01/11/2013
Barranquilla/Atlantico




Introducción
En esta práctica vamos a implementar el uso de celdas fotovoltaicas, servomotor y la tarjeta Arduino, esto con el fin de lograr construir un seguidor solar e identificar la intensidad que refleja la luz del ambiente en el que se encuentre.


Objetivos
Por medio del flujo luminoso que llega a unas fotoceldas estas variando la resistencia se caracteriza para poder predecir  o dar un estado aproximado del cambio climático en el sector donde se esté sensando, y a su vez lograr capturar los rayos de luz directamente haciendo que el dispositivo se mueva buscando la mejor posición de donde provienen los rayos de luz.




Conceptos Básicos
Flujo Luminoso
Es la medida de la potencia luminosa percibida su unidad de medida por el Sistema Internacional de Unidades es el lumen (lm).
1 lm = cd*sr = lx*m^2
Donde
Cd=Candela
Lx=Flujo luminoso
Células Fotovoltaicas
En general las células fotovoltaicas reciben la energía solar y son capaces de convertir esa luz en un potencial eléctrico. Estas celdas dependen del efecto fotovoltaico que consiste en la emisión de electrones por un material cuando se hace incidir sobre él una radiación electromagnética. El primer fabricante fue Willoughby Smith a mitad del siglo XIX, transformo parcialmente la energía luminosa en energía eléctrica.
Principio de funcionamiento
Los fotones del rayo de luz tienen una energía característica determinada por la frecuencia de la luz. En el proceso de fotoemisión, si un electrón absorbe la energía de un fotón y éste último tiene más energía que la función trabajo, el electrón es arrancado del material. Si la energía del fotón es demasiado baja, el electrón no puede escapar de la superficie del material.
Aumentar la intensidad del haz no cambia la energía de los fotones constituyentes, solo cambia el número de fotones. En consecuencia, la energía de los electrones emitidos no depende de la intensidad de la luz, sino de la energía de los fotones.
Los electrones pueden absorber energía de los fotones cuando son irradiados, pero siguiendo un principio de "todo o nada". Toda la energía de un fotón debe ser absorbida y utilizada para liberar un electrón de un enlace atómico, o si no la energía es re-emitida. Si la energía del fotón es absorbida, una parte libera al electrón del átomo y el resto contribuye a la energía cinética del electrón como una partícula libre.

Servomotor
Un servomotor (también llamado servo) es un dispositivo similar a un motor de corriente continua que tiene la capacidad de ubicarse en cualquier posición dentro de su rango de operación, y mantenerse estable en dicha posición
Un servomotor es un motor eléctrico que consta con la capacidad de ser controlado, tanto en velocidad como en posición.
Los servos se utilizan frecuentemente en sistemas de radio control y en robótica, pero su uso no está limitado a éstos. Es posible modificar un servomotor para obtener un motor de corriente continua que, si bien ya no tiene la capacidad de control del servo, conserva la fuerza, velocidad y baja inercia que caracteriza a estos dispositivos.


Materiales a usar:
Celdas Fotovoltaicas (x3)

Servomotor
Madera balso
Display LCD 2x16
Arduino Mega 2560 R3

Resistencias 330Ω (x3)

Potenciómetro 1kΩ

Cables de conexión


Diagrama de Conexión





Codigo Arduino

/* Este Programa Está Diseñado Para Seguir La Intensidad Lumínica Del Ambiente
Usando Servomotor y Celdas Fotovoltaicas, Además Para Dar Porcentaje De Valores
Relacionados Con La Intensidad Q Reciban Las Celdas*/

// Germán Lozano && Jairo Orduz
// Universidad Autónoma Del Caribe
// Materia: Sensores y Actuadores

#include <Servo.h>            // Incluye La Libreria Del Servomotor
#include <LiquidCrystal.h>    // Incluye La Libreria Del LCD 2x16

//pines de las fotoceldas
int fotoDerecha=3;
int fotoCentro=5;
int fotoIzquierda=4;
int Lumin;        // Variable Donde Se Va a Guardar El Procentaje De Luz

//Salida analoga PWM Servo
int motor=6;   // Le damos nombre al pin 6 del servo
int angulo=90;  // Le damos nombre al angulo inicial de 90 grados del servo

Servo myservo;            // declaramos un nombre para identificar mejor el servomotor
LiquidCrystal lcd(12,11,5,4,3,2); // declaramos los pines a usar del LCD

void setup(){
    lcd.begin(16, 2);   
    Serial.begin(9600);  //inicializamos a una velocidad de 9600 baudios
   
    myservo.attach(motor);   // pin de conexion del servo
    myservo.write(angulo);   // inicializamos el servo
   
    delay(200);   // Retardo de 200 milisegundos antes de iniciar la siguiente lectura
    lcd.clear();  // limpia el lcd
    lcd.setCursor(0,0);   // ubica la escritura del LCD en la fila 1 columna 1
    lcd.print("Universidad");
    lcd.setCursor(0,1);
    lcd.print("Autonoma");
    delay(2000);
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print("Sensor De");
    lcd.setCursor(0,1);
    lcd.print("Luminosidad");
    delay(2000);
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print("German Lozano");
    lcd.setCursor(0,1);
    lcd.print("Jairo Orduz");
    delay(1000);
}

void loop(){

  /* Le damos nombre a las variables analogicas de entrada
  de las fotoceldas
    */
    int val1=analogRead(fotoDerecha);   
    int val2=analogRead(fotoCentro);
    int val3=analogRead(fotoIzquierda);
   
    Lumin = val2;
    Lumin = map(Lumin, 0, 1023, 0, 100); /* Realizamos un mapeo entre el cambio de voltaje que
           generan las fotoceldas y el porcentaje de 0 a 100*/
      if(Lumin>=1&&Lumin<=20){
       Lluvia();
      }
      if(Lumin>=21&&Lumin<=40){
       ProbableLluvia();
      }
      if(Lumin>=41&&Lumin<=60){
        Nublado();
      }
      if(Lumin>=61&&Lumin<=80){
        Despejado();
      }
      if(Lumin>=81&&Lumin<=100){
        Soleado();
      }
     
    if(val3>val2&&val3>val1){
      rotaDerecha();
    }
    else if(val1>val2&&val1>val3){
      rotaIzquierda();
    }
}

void rotaDerecha(){
    if(angulo<180){
      angulo++;
      myservo.write(angulo);
      delay(15);
    }
}
void rotaIzquierda(){
    if(angulo>0){
      angulo--;
      myservo.write(angulo);
      delay(15);
    }
}
void Lluvia(){
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print(Lumin);
    lcd.print("%  De Luz");
    lcd.setCursor(0,1);
    lcd.print("Lluvioso");
    delay(15);
}
void ProbableLluvia(){
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print(Lumin);
    lcd.print("%  De Luz");
    lcd.setCursor(0,1);
    lcd.print("Probable Lluvia");
    delay(15);
}
void Nublado(){
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print(Lumin);
    lcd.print("%  De Luz");
    lcd.setCursor(0,1);
    lcd.print("Cielo Nublado");
    delay(15);
}  
void Despejado(){
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print(Lumin);
    lcd.print("%  De Luz");
    lcd.setCursor(0,1);
    lcd.print("Cielo Despejado");
    delay(15);
}
void Soleado(){
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print(Lumin);
    lcd.print("%  De Luz");
    lcd.setCursor(0,1);
    lcd.print("Cielo Soleado");
    delay(15);
}




Conclusión
Para concluir, este documento ya sabiendo todos los conocimientos acerca de cómo funcionan los diferentes componentes antes mencionados, sabemos que será de bastante utilidad en el ámbito diario si queremos conocer o dar un dato aproximado acerca del cambio climático que en nuestra ciudad es bastante impredecible.
Ademas de ello es un proyecto básico y didáctico para quienes se están iniciando en el mundo de la programación con Arduino y sus diferentes implementaciones.



A continuación añadiremos unas imagenes del proyecto terminado y un video de su funcionamiento. 

Debido a que el video posee alta resolución su peso es demasiado para lograr cargarlo. así que he optado por añadirlo al Dropbox y que puedan observarlos desde este Link: https://dl.dropboxusercontent.com/u/78447322/20131031_231754.mp4







Esperamos les haya gustado el proyecto y que puedan aplicarlo. 

MUCHAS GRACIAS..!!!