Cargador solar

Reto:

Imos facer que unha placa solar se oriente automaticamente na dirección onde haxa máis luz. Para iso dispón de dous servos, un que move lateralmente a placa e outro que varía a inclinación, e catro resistencias variables LDR coas que compararemos a luz incidente desde 4 lados. Se a diferenza de luz obtida entre esquerda e dereita ou entre arriba e abaixo é superior á tolerancia establecida, os servos deberán orientar a placa ata que a diferenza estea dentro dos valores tolerados.

A idea é que, aproveitando ao máximo a enerxía solar mediante a orientación axeitada, poidamos alimentar un dispositivo coa enerxía eléctrica xerada (modo simple), cargar unha batería, cargar o noso móbil ou, ademais, poder medir algunhas magnitudes ambientais (intensidade da luz, temperatura, humidade, etc.) e amosar os datos nunha pantalla.

Montaxe:

No instituto dispoñemos de dous modelos de seguidor solar, un feito con corte láser similar ao das fotos e outro de metacrilato de keystudio. A disposición dos sensores de luz é a que aparece nos seguintes esquemas.

Modelo1: láser
Modelo2: keystudio
[Moebius Tech sunflower1]
[Moebius Tech Sunflower2]
[Keyestudio Acrylic Smart Solar Tracker System]

No modelo 2 de KeyStudio sería bo cambiar a posición dos sensores e situalos solidarios á placa solar, xa que ao estaren situados na base a propia placa fai sombra sobre eles, e non é fácil facer axustes utilizando unha lámpada ou lanterna. No exterior non hai problema e oriéntase ben.

Programación:

Consultar previamente:

Programa seguidor solar:

1) Incluír a librería “Servo”

2) Definir os parámetros:

  • tol: Tolerancia. É o intervalo de diferenza admisible na lectura das LDRs
  • t_vel: É tempo de retardo para axustar a velocidade á que se move o servo, a menor valor maior velocidade
// Parámetros
int tol = 50;    
int t_vel = 10;
  • Debemos indicar os pins aos que están conectados os sensores de luz (LDR) Utiliza os nomes e pins que aparecen no esquema de arriba, segundo o modelo utilizado.
  • Indica tamén os nomes dos servos
  • Establece un ángulo inicial e os ángulos máximo e mínimo para cada servo.
    /* Modelo 1 */
    
    // ángulos iniciales
    int h_ang = 90; 
    int v_ang = 10;
    
    // ángulos máximos e mínimos
     
    // Servo horizontal: 
    int h_max = 175; 
    int h_min = 5; 
    
    //Servo vertical: 
    int v_max = 180; 
    int v_mim = 120;
    /* Modelo 2 */
    
    // ángulos iniciales
    int h_ang = 90; 
    int v_ang = 150;
    
    // ángulos máximos e mínimos
     
    //Servo horizontal: 
    int h_max = 180; 
    int h_min = 0; 
    
    // Servo vertical: 
    int v_max = 90; 
    int v_min = 10;

3) Configuración

  • Indica o pin no que está conectado cada servo
  • Ordena que se movan ata o ángulo predeterminado inicial.
  • Inicia a comunicación serie se queres visualizar datos dos sensores e ángulos na consola.

4) Loop

  • Crea un diagrama de fluxo que represente o proceso completo, engadindo a lectura dos sensores, movemento e visualización de datos. Para o movemento dos servos segue os diagramas de fluxo que se mostran a continuación.
  • Cando modifiques o ángulo de cada servo, ten en conta que o valor de ángulo debe estar entre o límite mínimo e o máximo.
  • No modelo1, para coñecer a diferenza de luz na dirección horizontal e na vertical,  previamente debes calcular os valores promedio que dan os sensores. No modelo 2 non fai falta calcular a media, pois xa temos os sensores colocados a esquerda, dereita, arriba e abaixo.
// Promedio das lecturas adxacentes no modelo 1
      
int valor_ab  = (DerAb + EsqAb) / 2; 
int valor_arr = (DerAr + EsqAr) / 2; 
int valor_der = (DerAb + DerAr) / 2; 
int valor_esq = (EsqAb + EsqAr) / 2; 

// Diferenza promerio vertical e horizontal

int horiz = valor_esq - valor_der;
int vert = valor_arr - valor_ab;
  • Podes utilizar a consola para observar os valores e, a partir deles, facer os axustes necesarios.
[Diagrama de fluxo. Fai clic para ampliar]

Propostas de mellora:

  • Podemos incluír sensores ambientais e visualizar os datos recollidos nunha pantalla LCD ou oLED.
  • Podemos conectar a placa solar a un dispositivo que permita cargar unha batería 1860 e tamén alimentar o arduino.
    [Keyestudio Lithium Power Module Powering by Solar Energy or Via USB Cable]
  • Podemos conectar un módulo para poder cargar o noso teléfono móbil que ofrece unha tensión constante de 5V por USB.
    [Smart Phone Charging Module]
  • Os módulos anteriores son os que temos actualmente no instituto, pero existen moitas outras opcións no mercado que se poden usar tanto para cargar un dispositivo directamente cun panel solar, como para cargar baterías.
    [BricoGeek Cargador/Booster Solar 5V]