1 Marzo 2024

Benvenuti nel BLOG di Vincenzo

Il blog realizzato mattoncino su mattoncino…!


Lo scopo principale di un inseguitore solare o Solar tracker è quello di massimizzare l’efficienza del dispositivo ospitato a bordo, solitamente si tratta di pannelli solari , abbeveratoi parabolici , riflettori Fresnel , lenti o specchi di un eliostato.

Precisamente, per i sistemi fotovoltaici a schermo piatto , i tracker vengono utilizzati per ridurre al minimo l’ angolo di incidenza tra la luce solare in entrata e un pannello fotovoltaico. La riduzione di questo angolo aumenta quindi considerevolmente la quantità di energia prodotta. La scelta di opzionare un sistema di inseguimento dotato di una sola asse è più che fondata, in quanto impiegare un’altra asse (Y), avrebbe significato conseguire a costi maggiori di installazione con un ritorno in produzione di energia talmente impercettibile e minimo che già preimpostando l’asse x parallela ai meridiani, quindi con un’oscillazione del pannello longitudinale (da est a ovest), la quantità di energia prodotta con una sola asse, sarebbe stata sostanzialmente uguale a quella prodotta con l’ausilio di una seconda asse.

A seguire il circuito elettrico del nostro prototipo il cui micro-controllore corrisponde a un Arduino Nano, il quale servendosi di due fotoresistori, ha la facoltà di indirizzare il Servo Motor verso la direzione più vantaggiosa per la produzione di energia…


A seguire il codice da caricare sul nostro Arduino:

//www.vincenzonet.it
#include <Servo.h>    
Servo sg90;   
int LDR1 = A0;          //connect The LDR1 on Pin A0
int LDR2 = A1;          //Connect The LDR2 on pin A1
int error = 25;         
int servopin = 2;         //You can change servo just makesure its on arduino's PWM pin
int initial_position = 90;
void setup() 
{ pinMode(11, OUTPUT);
  digitalWrite(11, HIGH);
  initial_position = 90;
  sg90.attach(servopin);  
  pinMode(LDR1, INPUT);   
  pinMode(LDR2, INPUT); 
  sg90.write(initial_position);
  //Move servo at 90 degree
  delay(2000);       
}  
void loop() 
{  
  int R1 = analogRead(LDR1); // read  LDR 1
  int R2 = analogRead(LDR2); // read  LDR 2
  int diff1= abs(R1 - R2);   
  int diff2= abs(R2 - R1);  
  if((diff1 <= error) || (diff2 <= error)) {   
  } //www.vincenzonet.it
  else {    
    if(R1 > R2)
    {     
    initial_position = --initial_position;   
    }   
    if(R1 < R2) 
    {
    initial_position = ++initial_position;   
    }
  }
  if(initial_position>140){
  initial_position=140;
  }
  if(initial_position<30){
  initial_position=30;
  }
  sg90.write(initial_position);
  delay(100);
}
//www.vincenzonet.it

Ecco dove scaricare il materiale relativo al Solar_tracker in file zip dove poter trovare foto del circuito e sketch…

D’Ambrosio Vincenzo Classe 2006

Iscriviti alla nostra newsletter!