Photo of solar panel on side river

Jak zbudować przenośny tracker solarny?

Zuriel Gonzalez
Zuriel
PA Engineer

W odróżnieniu od paliw kopalnych i energii jądrowej energia słoneczna jest bezpieczna i czysta. Dodatkowo pomaga chronić siedliska i przeciwdziała zmianom klimatu. Jej znaczenie wynika nie tylko z niskich kosztów i niezawodności, lecz przede wszystkim z faktu, że pomaga zachować nasz dom. Choć wiele branż już to dostrzega, dopiero czas pokaże, czy świat trwale przejdzie na odnawialne źródła energii. W tym projekcie pokażemy, jak wykorzystaliśmy nasz PA-14 Mini Linear Actuator do podążania za słońcem wzdłuż jednej osi ruchu. Dzięki temu uzysk mocy z panelu wzrasta nawet o 25% w porównaniu z panelem ustawionym na stałe. Poniżej dołączyliśmy również film instruktażowy.

Co to jest tracker solarny?

Tracker solarny to urządzenie służące do pochylania paneli słonecznych w kierunku padania promieni. Trackery śledzą słońce przez cały dzień, dzięki czemu panele zbierają możliwie najwięcej energii. Ich jedynym celem jest maksymalizacja uzysku. Dobra wiadomość: taki tracker możesz zbudować w domu. Mając odpowiednie narzędzia, przede wszystkim panele słoneczne i siłowniki liniowe, stworzysz własny tracker i zadbasz, by panele wykorzystywały maksimum światła słonecznego.

 

Korzyści z użycia siłowników liniowych w systemie śledzenia słońca

Budując system śledzenia słońca, warto stosować siłowniki liniowe 12 V. Siłowniki 12 V są powszechnie używane w trackerach solarnych, ponieważ zwiększają skuteczność paneli. Dlatego szukając siłownika do takiego systemu, rozważ siłownik 12 V do trackera solarnego.

Jedną z głównych zalet siłownika 12 V jest osiąganie pożądanych ruchów z wysoką precyzją. Niezależnie od położenia słońca te siłowniki ustawiają panele pod optymalnym kątem, aby jak najlepiej wychwytywać światło.

Konwersja energii z panelu słonecznego

Przekształcanie energii słonecznej w elektryczną obejmuje trzy proste kroki. Każdy z nich wykonuje oddzielny komponent:

  1. Panel słoneczny Sungold SGM-90W-18V. Absorbuje fotony światła i zamienia je w energię elektryczną, wyjściowo jako zmienne napięcie DC.
  2. Sterownik ładowania Genasun GV-10 reguluje napięcie DC z panelu, aby ładować akumulator.
  3. Akumulator litowo-jonowy 12VDC magazynuje energię do natychmiastowego lub późniejszego wykorzystania.

W naszym systemie do akumulatora podłączyliśmy złącze zapalniczki samochodowej. Dzięki temu łatwo dołączamy akcesoria 12 V do panelu. W filmie użyliśmy wentylatora oscylacyjnego, mocnego reflektora LED, a nawet ładowarki do telefonu.

 

Jak zbudować przenośny tracker solarny

System sterowania

Siłownik liniowy jest sterowany przez mikrokontroler Arduino z użyciem sterownika silnika Wasp. Odczytuje wartości z fotorezystorów, aby ustalić, która strona panelu jest oświetlona, i koryguje położenie panelu do wyrównania odczytów. Zapewnia to ustawienie panelu bezpośrednio na słońce i maksymalny uzysk mocy.

Schemat podłączenia panelu słonecznego do akcesoriów samochodowych

 

 

Komponenty

  1. 1x mini siłownik liniowy PA-14 – 6 cali – siła 150 lbs.
  2. 1x panel słoneczny Sungold SGM-90W-18 90 W.
  3. 1x sterownik ładowania paneli słonecznych Genasun GV-10 12VDC. 
  4. 1x Arduino Micro PLC.
  5. 1x Wasp Motor Controller.
  6. 2x fotorezystor 10 kΩ i 2x rezystor 7 kΩ. 
  7. 1x akumulator litowy ładowalny 12VDC. 
  8. 1x złącze zapalniczki do akcesoriów 12 V (opcjonalnie).
Zdjęcie mini siłownika liniowego i elementów systemu sterowania

 

Sterownik silnika

Do części sterującej trackera używamy Arduino Micro i sterownika WASP Motor Controller. Wasp jest sterowany z Arduino Micro za pomocą modulacji szerokości impulsu (PWM). Wasp pobiera zasilanie z akumulatora 12 V i wysuwa oraz chowa mini siłownik liniowy PA-14. Wybraliśmy siłownik o sile 150 lbs, ponieważ przy naszym obciążeniu pobiera mniej prądu niż wersja 35 lbs.

Schemat podłączenia panelu słonecznego do mikrokontrolera i siłownika liniowego


Czujnik światła

Do wykrywania natężenia światła użyliśmy fotorezystora 10 kΩ. Fotorezystor zachowuje się jak rezystor zmienny sterowany światłem: jego rezystancja maleje wraz ze wzrostem natężenia oświetlenia. Potrzebne są dwa czujniki – po stronie wschodniej i zachodniej panelu – aby określić położenie słońca.

Podłącz fotorezystor 10 kΩ i rezystor 7 kΩ w szereg i podaj sygnał 5 V z Arduino Micro. Zmierz napięcie na rezystorze 7 kΩ, używając wejścia analogowego Arduino Micro. Ponieważ układ działa jak dzielnik napięcia, odczyt analogowy na rezystorze 7 kΩ będzie rósł wraz ze wzrostem natężenia światła.

Pamiętaj, że fotorezystor jest bardzo czuły i może być konieczne ograniczenie światła docierającego ze słońca.

Schemat podłączenia czujnika światła

W naszej aplikacji najlepiej sprawdziło się skierowanie go na bok panelu i przysłonięcie półprzezroczystą taśmą.

Programowanie

Pełny program znajdziesz w następnej sekcji „Kod źródłowy”. Tutaj omawiamy poszczególne komponenty programu.


Biblioteka Servo

Biblioteka Servo.h umożliwia Arduino Micro sterowanie serwomechanizmami RC pojedynczymi komendami, jak poniżej:

myservo.writeMicroseconds (1000); // Actuator full speed backwards (1000)

myservo.writeMicroseconds (1520); // Actuator stop (1520)

myservo.writeMicroseconds (2000); // Actuator full speed forwards (2000)

Przypisanie pinów

Piny 10 i 11 w Arduino Micro są ustawione jako zasilanie i masa do sterowania kontrolerem WASP. Piny 6 i 8 w Arduino Micro są przypisane do wejść analogowych 7 i 8, które służą do odczytu z czujników światła (zachód i wschód).

 

Deklaracja zmiennych

W tej sekcji deklarowane i inicjalizowane są zmienne. Będą używane w funkcjach do przechowywania odczytów z czujników światła. Deklarujemy tu również czas próbkowania i interwał regulacji. Można je zmieniać, aby ustawić odstępy między odczytami i czas między kolejnymi korektami kąta panelu. Domyślnie odczyt wykonywany jest co 10 sekund, a pozycja panelu korygowana co 10 minut.

 

Ustawienia wejść i wyjść

Ustaw WASP_Power i WASP_Ground jako wyjścia, aby sterować kontrolerem WASP. Ustaw sensor_west_pin1 i sensor_east_pin2 jako wejścia do odczytu z fotorezystorów.

 

Odczyty z czujników

Jak wspomniano, aby określić kierunek ustawienia panelu, używamy dwóch fotorezystorów – mierzą natężenie światła po obu stronach panelu. Program pobiera próbkę co 10 sekund przez 10 próbek, a następnie porównuje średnie z obu czujników.

 

Ruch panelu słonecznego

Z Arduino Micro stosujemy sterowanie PWM do napędu siłownika. To prosta i niezawodna metoda sterowania siłownikiem liniowym. W zależności od ustawionej wartości PWM możemy wysuwać, chować lub zatrzymywać siłownik przez dowolny czas, o ile nie przekracza to cyklu pracy siłownika.

Na podstawie odczytów mamy dwie uśrednione wartości natężenia światła z czujników po zachodniej i wschodniej stronie. Następnie wykonywana jest komenda ruchu: wysunięcie, wsunięcie lub pozostanie w miejscu – w zależności od różnicy między odczytami. Zestaw tych komend uruchamia się co 10 minut, aby panel stale otrzymywał możliwie najwięcej światła.

 

Nocny reset pozycji

Dodatkową funkcją, którą można zaimplementować, jest reset pozycji. Jeśli tracker działa przez kilka dni, warto mieć pewność, że następnego ranka wróci do pozycji początkowej. Użyjemy prostego licznika: jeśli tracker nie poruszał się przez ostatnie 10 godzin, zostanie to zinterpretowane jako noc – tracker wróci do pozycji startowej i zaczeka na dzienne światło.

Poniżej znajdziesz kod użyty w tej wersji trackera solarnego. Wartości można zmieniać, aby dopasować je do różnych regionów i pór roku.

 

Kod źródłowy

Poniżej znajduje się kod, którego użyliśmy w tej wersji trackera solarnego. Pamiętaj, że wartości można modyfikować, by dostosować je do różnych regionów i pór roku.

<p>/*<br>  This program will allow the solar panel to track the sun, and drive the actuator using
  pwm. Readings from two photoresistors will be taking from each side of the solar panel.
  A number of samples will be taken, and a average reading will be calculated in order
  to determine which side has a higher sunlight intensity. The linear acutor will then
  either extend or retract to angle the solar panel so it is facing the sun. 
  A reset function is implemented so it will move the solar panel to its defult position.
  This allow the solar panel ready to charge in the morning after remain stationary during
  night time.  </p><p>  Hardware used:
                 1 x Arduino Micro
                 1 x WASP Motor Controller
                 1 x PA-14-6-150 Linear Actuator
                 2 x Photoresistors
                 2 x 7k ohm Resistors
*/
/*
            SERVO LIBRARY 
            
   Include the Servo library and create the servo object.
*/</p><p>#include 
Servo myservo;                                        // Create servo object to control a servo</p><p>/*
            PIN ASSIGNMENTS 
            
   Assign pins from WASP Controller and Arduino Micro to appropriate variable.
*/</p><p>const int WASP_Power = 10;                           // Assign pin 10 to Power for the WASP controller
const int WASP_Ground = 11;                          // Assign pin 11 to Ground for the WASP controller
const int sensor_west_pin1 = 7;                      // A7 pin 6 sensor input 1 west
const int sensor_east_pin2 = 8;                      // A8 pin 8 sensor input 2 east</p><p>/*
            VARIABLE DECLARATION
             
   Delcare variable that will be used in the functions later and initilize them.
*/</p><p>int sensor_west[10];                                 // 10 sample readings from sensor on the west side
int sensor_east[10];                                 // 10 sample readings from sensor on the east side
int reset_counter = 0;                               // Time counter for resetting the solar panel position
const int sample_time_interval = 10000;              // Change this value to set the interval between each sample is taken (ms)
const long solar_panel_adjustment_interval = 600000;  // Change this value to set the interval between each adjustment from the solar panel (ms)</p><p>void setup()
{</p><p>/*
            SET INPUT & OUTPUT 
            
   Set the input and output to the variables and pins.
*/</p><p>  myservo.attach(9);                                 // Attaches the servo on pin 9 to the servo object
  pinMode(WASP_Power, OUTPUT);                       // Set Power to output
  pinMode(WASP_Ground, OUTPUT);                      // Set Ground to output
  digitalWrite(WASP_Power, HIGH);                    // Set 5V to pin 10
  digitalWrite(WASP_Ground, LOW);                    // Set GND to pin 11
  pinMode(sensor_west_pin1, INPUT);                  // Set sensor west pin to input
  pinMode(sensor_east_pin2, INPUT);                  // Set sensor east pin to input
}</p><p>void loop()
{
  
/*
            SENSOR READINGS
            
   Take 10 sample readings from both sensors, and take the average of the inputs.
*/</p><p>  int solar_input_west = 0;                                     // Sun light intensity readings from sensor west
  int solar_input_east = 0;                                     // Sun light intensity readings from sensor east</p><p>  for( int i=0; i<10; i++)
  {   
    sensor_west[i] = analogRead(sensor_west_pin1);              // Taking the analog readings from sensor west
    sensor_east[i] = analogRead(sensor_east_pin2);              // Taking the analog readings from sensor east
    solar_input_west = sensor_west[i] + solar_input_west;       // Sum all the inputs from sensor west
    solar_input_east = sensor_east[i] + solar_input_east;       // Sum all the inputs from sensor east
    delay(sample_time_interval);
  }</p><p>  solar_input_west = (solar_input_west) / 10;                   // The the average of input signals from sensor west
  solar_input_east = (solar_input_east) / 10;                   // The the average of input signals from sensor east</p><p> /*
            SOLAR PANEL MOVEMENT
            
   The solar panel will tilt toward west if the sunlight intensity detected on the west side of the panel is greater than the
   one detected on the east side. The solar panel will tilt toward east if the sunlight intensity detected on the east side
   is greater than the one detected on the west side. However, if the readings from both side are similar, the solar panel
   will remain stationary.   
*/</p><p>  if( solar_input_west - solar_input_east > 20)                // If the sunlight intensity is higher on the west side of the panel
  {
    myservo.writeMicroseconds(2000);                           // Full speed forwards (2000) signal pushing the solar panel to the left(west)
    delay(500); //0.5 seconds  
    reset_counter = 0;
  }
  
 else if( solar_input_east - solar_input_east > 20)           // If the sunlight intensity is higher on the east side of the panel
  {  
    myservo.writeMicroseconds(1000);                          // Full speed backwards (1000) signal pulling the solar panel to the right(east)
    delay(500); //0.5 seconds  
    reset_counter = 0;
  }  </p><p>  else                                                        // If ther sunlight intensity is similar from both side of the panel
  {
    myservo.writeMicroseconds(1520);                          // Stationary (1520) signal stop the solar panel from moving
    reset_counter++;
  } 
  
 delay(solar_panel_adjustment_interval);                      // Delay before another adjustment will be made</p><p>/*
            OVERNIGHT POSITION RESET</p><p>   If the solar panel will be used overnight, the controller will detect the panel remained stationary for more than 10 hours,
   It will then reset the solar panel to its default position facing east.
*/
 
 if( reset_counter > 60)                                     // After the solar panel remained stationary for more than 10 hours, it will move to its default position
  {
    myservo.writeMicroseconds(1000);                         // Full speed backwards (1000) signal pulling the solar panel to the right(east)
    delay(12000); //12 seconds
    myservo.writeMicroseconds(1520);                         // Stationary (1520) signal stop the solar panel from moving
    delay(500);  //0.5 seconds   
    myservo.writeMicroseconds(2000);                         // Full speed forwards (2000) signal pushing the solar panel to the left(west)
    delay(1000); //1 seconds  
    reset_counter = 0;
  }
}</p>

 

 

Tracker jednoosiowy – podzespoły

Istnieje wiele sposobów na stworzenie trackera jednoosiowego. Najprościej zbudować ramę z rur PVC i kątowych złączek PVC. Kluczowa jest funkcja śledzenia, którą można zrealizować prostym mini siłownikiem liniowym PA-14 i uchwytem BRK-14.

W naszej konstrukcji wybraliśmy ramę na statywie i użyliśmy elementów drukowanych 3D do wykonania przegubów i mocowań. Dzięki temu powstała bardzo przenośna rama trackera o optymalnym zakresie pochylenia i możliwości śledzenia. Aby zobaczyć cały proces, zajrzyj na nasz kanał YouTube.

Komponenty

  1. Rura miedziana 3/4".
  2. 1x zaślepka końcowa do rury miedzianej 3/4". 
  3. 3x obejma zaciskowa 3/4". 
  4. Rura PVC 3/4".
  5. 1x obejma zaciskowa 1".
  6. 5x śruba M6, nakrętka i podkładka.
  7. Różne uchwyty drukowane w 3D.
  8. 2x sworzeń montażowy siłownika (w zestawie BRK-14).
  9. 1x mini siłownik liniowy PA-14.

    Zdjęcie mini siłownika liniowego i komponentów do budowy przenośnego trackera solarnego

    Optymalne nachylenie

    Poza dodaniem funkcji śledzenia, wydajność panelu można zwiększyć, ustawiając stały kąt nachylenia odpowiedni dla lokalizacji. Optymalne nachylenie zależy od szerokości geograficznej. Więcej informacji znajdziesz tutaj: Nachylenie panelu słonecznego.

    Poniżej znajduje się rysunek wymiarowy z widoku bocznego, pokazujący, jak obliczyliśmy kąt trackera. Długość B obliczysz z następującego równania:

    Rysunek panelu słonecznego z widoku bocznego

     

    Wykonanie i montaż

    Dla wizualnego przeglądu procesu budowy udostępniliśmy film na YouTube.

    Kroki

    1. Oblicz potrzebne długości, aby uzyskać optymalne nachylenie.
    2. Zgromadź wszystkie niezbędne komponenty.
    3. Przymocuj uchwyty do panelu, wiercąc otwory i mocując je odpowiednimi śrubami. 
    4. Przytnij rury miedziane i PVC na długość.
    5. Wykończ (pomaluj i przeszlifuj) rury miedziane i PVC.
    6. Przymocuj uchwyty do rur i zabezpiecz je obejmami zaciskowymi. 
    7. Zamontuj mini siłownik liniowy PA-14 i zabezpiecz sworzniami montażowymi siłownika BRK-14.

    Nowy i ulepszony mini siłownik PA-01 (ulepszona wersja PA-14) to aktualnie oferowany przez nas model z szeregiem dodatkowych zalet. Porównanie znajdziesz w tabelach poniżej – modernizuj bez obaw!

     

    PA-01

    PA-14

    Opcje obciążenia dynamicznego

    16, 28, 56, 112, 169, 225 lbs

    35, 50, 75, 110, 150 lbs

    Największe obciążenie

    225 lbs

    150 lbs

    Najszybsza prędkość

    3.54 "/sec

    2.00"/sec

    Klasa szczelności IP

    IP65

    IP54

    Opcje skoku

    1" do 40"

    1" do 40"

    Sprzężenie zwrotne Halla

    Opcjonalnie

    Nie

    Podsumowanie

    Prawdą jest, że energia słoneczna w niedalekiej przyszłości zastąpi paliwa kopalne. Ludzie już opracowują nowe sposoby zwiększania skuteczności paneli, więc pozostaje zobaczyć, co przyniesie przyszłość dla branży energetycznej. Mamy nadzieję, że spodobał Ci się nasz artykuł i film o tworzeniu przenośnego trackera solarnego.