Índice

Sistema de seguimiento solar DIY: Optimice el uso de la energía solar

Foto de Dean Ding
Decano Ding

15 años dedicados al sector solar

Sistema de seguimiento solar DIY: Optimice el uso de la energía solar

Este tutorial proporcionará una guía detallada sobre cómo construir un sistema de seguimiento solar de bajo coste basado en el soporte de tierra monopolo LINKSOLAR (enlace oficial), que puede mejorar la eficiencia de generación de energía de un panel fotovoltaico de 100W en 30%-45%. El tutorial incluye el código, una lista de materiales y soluciones de resistencia a la intemperie.

1. ¿Por qué necesitamos un sistema de seguimiento solar?

1.1 Mejora de la eficiencia de la generación de energía

  • Montaje fijo: La captación diaria de energía es de unas 70%.
  • Seguimiento de un eje: La eficiencia aumenta hasta 85%-90% (datos del NREL).
  • Seguimiento de doble eje: Puede alcanzar hasta 95% (objetivo de este proyecto).

1.2 Ventajas de Montaje LINKSOLAR

  • Capacidad de carga industrial: Un solo poste soporta hasta 6 paneles de 100 W.
  • Modificación rápida: Compatible con motor paso a paso NEMA17.
  • Diseño resistente al viento: Poste de acero galvanizado de 4 pulgadas + cimentación preenterrada.

2. Lista de materiales y preparación de herramientas

CategoríaModelo/EspecificaciónDescripción optimizada por palabras clave
Montaje en el núcleoMonopolo LINKSOLAR para montaje en sueloSoporte solar para instalación en el suelo
Motor de accionamientoNEMA17 + Placa de controladores DRV8825Motor paso a paso de alto par para seguimiento solar
Sensor de luzMódulo sensor de luz digital TSL2591Sensor de luz I2C para seguimiento fotovoltaico en exteriores
Controlador principalPlaca de desarrollo ESP32Controlador de seguimiento solar con WiFi

3. Guía de instalación paso a paso

3.1 Pasos de la modificación del montaje

  • Refuerzo de postes
  • Soldar un cojinete de brida (modelo FYLC-205) a la parte superior del soporte LINKSOLAR.
  • Fije el motor NEMA17 con pernos en U (eje de rotación horizontal).
  • Estructura de ajuste de la inclinación
  • Utilice aluminio en forma de L (6061-T6) para conectar el panel al segundo motor.
  • Instale interruptores de fin de carrera (KW12-3) para evitar la rotación excesiva.

3.2 Diagrama de conexión del circuito

[Sugerencia SEO] Utilice un texto alternativo para describir la imagen:
"Diagrama de cableado del sistema de seguimiento solar - ESP32 controla motores de doble eje y sensor de luz".

4. Explicación del código Arduino (con algoritmo PID)

4.1 Estructura del código

El código Arduino para este sistema se basa en un algoritmo de control PID, utilizando el sensor de luz TSL2591 y el sensor de orientación MPU6050 para ajustar el ángulo del panel solar en tiempo real para el seguimiento de doble eje. El código se divide en las siguientes secciones:

  • Inicialización del sensor: Incluye el sensor de luz TSL2591 y la configuración del sensor de orientación MPU6050.
  • Control PID: Utiliza el algoritmo PID para calcular los pasos del motor para un control horizontal (acimut) y vertical (elevación) preciso.
  • Accionamiento del motor: Controla la dirección y los pasos del motor paso a paso basándose en la salida PID.
  • Supervisión de datos: Salida de datos de sensores y cálculos PID vía serie para depuración.

4.2 Código completo

#include 
#include 
#include 
#include 

// Objetos sensores
Adafruit_TSL2591 tslEast = Adafruit_TSL2591(0x29);
Adafruit_TSL2591 tslWest = Adafruit_TSL2591(0x30);
MPU6050 mpu;

// Parámetros PID
double Kp = 2.0, Ki = 0.5, Kd = 0.1;
double entradaEste, entradaVertical, salidaPasoH, salidaPasoV;
double setpointH = 0, setpointV = 45; // Ángulo de inclinación inicial 45

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

// Definiciones de pines
#define STEP_H 12
#define DIR_H 13
#define STEP_V 14
#define DIR_V 15

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

  // Inicializar sensores
  tslEast.begin();
  tslWest.begin();
  mpu.initialize();

  // Ajustar ganancia TSL2591
  tslEast.setGain(TSL2591_GAIN_MED);
  tslWest.setGain(TSL2591_GAIN_MED);

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

  // Configura los modos de los pines del motor
  pinMode(STEP_H, OUTPUT);
  pinMode(DIR_H, OUTPUT);
  pinMode(STEP_V, OUTPUT);
  pinMode(DIR_V, OUTPUT);
}

void loop() {
  // Leer intensidad de luz este y oeste
  uint32_t eastLux = tslEast.getFullLuminosity();
  uint32_t westLux = tslWest.getFullLuminosity();
  inputEast = (eastLux - westLux) / 1000.0;

  // Leer ángulo de inclinación actual
  int16_t ax, ay, az;
  mpu.getAcceleration(&ax, &ay, &az);
  inputVertical = atan2(ay, az) * 180 / M_PI;

  // Calcular salida PID
  horizontalPID.Compute();
  verticalPID.Compute();

  // Accionar motor horizontal
  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);
    delayMicrosegundos(500);
    digitalWrite(PASO_V, BAJO);
    delayMicrosegundos(500);
  }

  // Imprimir datos
  Serial.print("Este:");
  Serial.print(esteLux);
  Serial.print(" Oeste:");
  Serial.print(westLux);
  Serial.print(" Ángulo:");
  Serial.println(entradaVertical);

  delay(1000);
}

4.3 Análisis de códigos clave

  • Control PID
  • horizontalPID y verticalPID controlan los motores horizontal y vertical, respectivamente.
  • entradaEste y entradaVertical son entradas PID, que representan la diferencia de intensidad luminosa este-oeste y el ángulo de inclinación de la corriente.
  • outputStepH y outputStepV son salidas PID, que indican los pasos del motor.
  • Accionamiento del motor
  • Utilice digitalWrite para controlar la dirección del motor (DIR_H y DIR_V).
  • Utilice para bucle y retardoMicrosegundos para controlar la velocidad de paso del motor.
  • Supervisión de datos
  • Salida de intensidad luminosa este-oeste y ángulo de inclinación actual vía serie para depuración y monitorización.

4.4 Instalación de la biblioteca de llaves

  • Gestor de bibliotecas del IDE Arduino
  • Buscar e instalar Biblioteca Adafruit TSL2591.
  • Buscar e instalar MPU6050 de Electronic Cats.
  • Buscar e instalar PID por Brett Beauregard.

4.5 Proceso de calibración

  • Calibración del sensor de luz
  void calibrarTSL() {
    tslEast.setGain(TSL2591_GAIN_LOW);
    tslWest.setGain(TSL2591_GAIN_LOW);
    // Ejecutar después de alinear ambos sensores a la misma fuente de luz
    while(abs(tslEast.getLuminosity() - tslWest.getLuminosity()) > 100) {
      delay(1000);
    }
  }
  • MPU6050 Calibración
  void calibrarMPU() {
    mpu.CalibrateAccel(6); // Calibración de 6 muestras
    mpu.CalibrateGyro(6);
    mpu.PrintActiveOffsets();
  }

4.6 Carcasas de impresión 3D

  • Soportes de motor
  • Cajas de sensores

5. Consejos de depuración y mantenimiento

5.1 Proceso de calibración

  • Calibración del sensor de luz
  • Compare las lecturas del TSL2591 con un luxómetro (error dentro de ±3%).
  • Puesta a cero mecánica
  • Utilice los finales de carrera para fijar las posiciones horizontales/verticales iniciales.

5.2 Mantenimiento rutinario

  • Cheque trimestral: Limpiar los residuos del carril y lubricar los cojinetes.
  • Actualización anual: Actualizar los parámetros PID (optimizar en función de los datos meteorológicos locales).

7. Preguntas más frecuentes (FAQ)

Actúa: Póngase en contacto con el personal oficial de LINKSOLAR y ponga en marcha su proyecto de energía verde.

Esperamos que este tutorial te ayude a construir con éxito un sistema de seguimiento solar eficiente!

Por favor, activa JavaScript en tu navegador para completar este formulario.
Nombre

es_ESSpanish
Por favor, activa JavaScript en tu navegador para completar este formulario.
Nombre