Indice dei contenuti

Sistema di inseguimento solare fai da te: Ottimizzare l'uso dell'energia solare

Immagine di Dean Ding
Preside Ding

Da 15 anni concentrati sull'industria solare

Sistema di inseguimento solare fai da te: Ottimizzare l'uso dell'energia solare

Questo tutorial fornisce una guida dettagliata su come costruire un sistema di inseguimento solare a basso costo basato sul supporto a terra monopolare LINKSOLAR (link ufficiale), che può migliorare l'efficienza di produzione di energia di un pannello fotovoltaico da 100W di 30%-45%. Il tutorial include il codice, l'elenco dei materiali e le soluzioni per la protezione dalle intemperie.

1. Perché abbiamo bisogno di un sistema di inseguimento solare?

1.1 Migliorare l'efficienza della produzione di energia elettrica

  • Montaggio fisso: La cattura giornaliera di energia è di circa 70%.
  • Tracciamento a singolo asse: L'efficienza aumenta a 85%-90% (dati NREL).
  • Tracciamento a doppio asse: Può raggiungere 95% (obiettivo di questo progetto).

1.2 Vantaggi di Monte LINKSOLAR

  • Capacità di carico di livello industriale: Un singolo polo supporta fino a 6 pannelli da 100W.
  • Modifica rapida: Compatibile con il motore passo-passo NEMA17.
  • Design resistente al vento: Palo in acciaio zincato da 4 pollici + fondazione preinterrata.

2. Elenco dei materiali e preparazione degli strumenti

CategoriaModello/SpecificheDescrizione ottimizzata per le parole chiave
Montaggio del nucleoLINKSOLAR Monopolo con montaggio a terraSupporto solare per installazione a terra
Motore di azionamentoNEMA17 + scheda driver DRV8825Motore passo-passo ad alta coppia per l'inseguimento solare
Sensore di luceModulo sensore di luce digitale TSL2591Sensore di luce I2C per l'inseguimento del fotovoltaico all'aperto
Controllore principaleScheda di sviluppo ESP32Regolatore di inseguimento solare abilitato al WiFi

3. Guida all'installazione passo-passo

3.1 Fasi di modifica del supporto

  • Rinforzo dei pali
  • Saldare un cuscinetto a flangia (modello FYLC-205) alla parte superiore del supporto LINKSOLAR.
  • Fissare il motore NEMA17 con bulloni a U (asse di rotazione orizzontale).
  • Struttura di regolazione dell'inclinazione
  • Utilizzare alluminio a L (6061-T6) per collegare il pannello al secondo motore.
  • Installare i finecorsa (KW12-3) per evitare la rotazione eccessiva.

3.2 Schema di collegamento del circuito

[Utilizzate il testo alt per descrivere l'immagine:
"Schema di cablaggio del sistema di inseguimento solare - ESP32 controlla i motori a doppio asse e il sensore di luce".

4. Spiegazione del codice Arduino (con algoritmo PID)

4.1 Panoramica della struttura del codice

Il codice Arduino per questo sistema si basa su un algoritmo di controllo PID, che utilizza il sensore di luce TSL2591 e il sensore di orientamento MPU6050 per regolare l'angolo del pannello solare in tempo reale per l'inseguimento su due assi. Il codice è suddiviso nelle seguenti sezioni:

  • Inizializzazione del sensore: Include la configurazione del sensore di luce TSL2591 e del sensore di orientamento MPU6050.
  • Controllo PID: Utilizza l'algoritmo PID per calcolare i passi del motore per un preciso controllo orizzontale (azimut) e verticale (elevazione).
  • Azionamento del motore: Controlla la direzione e i passi del motore passo-passo in base all'uscita PID.
  • Monitoraggio dei dati: Emette i dati del sensore e i calcoli PID via seriale per il debug.

4.2 Codice completo

#include 
#include 
#include 
#include 

// Oggetti sensore
Adafruit_TSL2591 tslEast = Adafruit_TSL2591(0x29);
Adafruit_TSL2591 tslWest = Adafruit_TSL2591(0x30);
MPU6050 mpu;

// Parametri PID
double Kp = 2,0, Ki = 0,5, Kd = 0,1;
double inputEast, inputVertical, outputStepH, outputStepV;
double setpointH = 0, setpointV = 45; // angolo di inclinazione iniziale di 45°

PID horizontalPID(&inputEast, &outputStepH, &setpointH, Kp, Ki, Kd, DIRECT);
PID verticalPID(&inputVertical, &outputStepV, &setpointV, Kp, Ki, Kd, DIRECT);

// Definizioni dei pin
#define STEP_H 12
#define DIR_H 13
#define STEP_V 14
#define DIR_V 15

void setup() {
  Serial.begin(115200);
  Wire.begin();

  // Inizializza i sensori
  tslEast.begin();
  tslWest.begin();
  mpu.initialize();

  // Impostare il guadagno del TSL2591
  tslEast.setGain(TSL2591_GAIN_MED);
  tslWest.setGain(TSL2591_GAIN_MED);

  // Inizializza il PID
  horizontalPID.SetMode(AUTOMATIC);
  verticalPID.SetMode(AUTOMATIC);
  horizontalPID.SetOutputLimits(-200, 200);
  verticalPID.SetOutputLimits(-100, 100);

  // Impostazione delle modalità dei pin del motore
  pinMode(STEP_H, OUTPUT);
  pinMode(DIR_H, OUTPUT);
  pinMode(STEP_V, OUTPUT);
  pinMode(DIR_V, OUTPUT);
}

void loop() {
  // Leggere l'intensità luminosa di est e ovest
  uint32_t eastLux = tslEast.getFullLuminosity();
  uint32_t westLux = tslWest.getFullLuminosity();
  inputEast = (eastLux - westLux) / 1000.0;

  // Leggere l'angolo di inclinazione corrente
  int16_t ax, ay, az;
  mpu.getAcceleration(&ax, &ay, &az);
  inputVertical = atan2(ay, az) * 180 / M_PI;

  // Calcolo dell'uscita PID
  horizontalPID.Compute();
  verticalPID.Compute();

  // Azionare il motore orizzontale
  digitalWrite(DIR_H, outputStepH > 0 ? HIGH : LOW);
  for(int i=0; i 0 ? HIGH : LOW);
  for(int i=0; i<abs(outputStepV); i++){
    digitalWrite(STEP_V, HIGH);
    ritardoMicrosecondi(500);
    digitalWrite(STEP_V, LOW);
    delayMicrosecondi(500);
  }

  // Stampa dei dati
  Serial.print("Est:");
  Serial.print(eastLux);
  Serial.print(" Ovest:");
  Serial.print(westLux);
  Serial.print(" Angolo:");
  Serial.println(inputVertical);

  ritardo(1000);
}

4.3 Analisi dei codici chiave

  • Controllo PID
  • orizzontalePID e verticalePID controllano rispettivamente i motori orizzontali e verticali.
  • ingressoEst e ingressoVerticale sono ingressi PID che rappresentano la differenza di intensità luminosa est-ovest e l'angolo di inclinazione della corrente.
  • uscitaFaseH e uscitaFaseV sono uscite PID che indicano i passi del motore.
  • Azionamento del motore
  • Utilizzo digitaleScrittura per controllare la direzione del motore (DIR_H e DIR_V).
  • Utilizzo per ciclo e ritardoMicrosecondi per il controllo della velocità di rotazione del motore.
  • Monitoraggio dei dati
  • Uscita dell'intensità luminosa est-ovest e dell'angolo di inclinazione corrente via seriale per il debug e il monitoraggio.

4.4 Installazione della libreria delle chiavi

  • Gestore delle librerie dell'IDE Arduino
  • Ricerca e installazione Libreria Adafruit TSL2591.
  • Ricerca e installazione MPU6050 di Electronic Cats.
  • Ricerca e installazione PID di Brett Beauregard.

4.5 Processo di calibrazione

  • Calibrazione del sensore di luce
  void calibrateTSL() {
    tslEast.setGain(TSL2591_GAIN_LOW);
    tslWest.setGain(TSL2591_GAIN_LOW);
    // Eseguire dopo aver allineato entrambi i sensori alla stessa sorgente luminosa
    while(abs(tslEast.getLuminosity() - tslWest.getLuminosity()) > 100) {
      delay(1000);
    }
  }
  • Calibrazione MPU6050
  void calibrateMPU() {
    mpu.CalibrateAccel(6); // calibrazione a 6 campioni
    mpu.CalibrateGyro(6);
    mpu.PrintActiveOffsets();
  }

4.6 Involucri per la stampa 3D

  • Supporti motore
  • Custodie per sensori

5. Suggerimenti per il debug e la manutenzione

5.1 Processo di calibrazione

  • Calibrazione del sensore di luce
  • Confrontare le letture del TSL2591 con un luxmetro (errore entro ±3%).
  • Azzeramento meccanico
  • Utilizzare i finecorsa per impostare le posizioni orizzontali e verticali iniziali.

5.2 Manutenzione ordinaria

  • Controllo trimestrale: Pulire i detriti della rotaia e lubrificare i cuscinetti.
  • Aggiornamento annuale: Aggiornare i parametri PID (ottimizzare in base ai dati meteo locali).

7. Domande frequenti (FAQ)

Agire: Contattate il personale ufficiale di LINKSOLAR e iniziate il vostro progetto di energia verde!

Speriamo che questo tutorial vi aiuti a costruire con successo un sistema di inseguimento solare efficiente!

Per completare questo modulo, abilitare JavaScript nel browser.
Nome

it_ITItalian
Per completare questo modulo, abilitare JavaScript nel browser.
Nome