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:
- Panel słoneczny Sungold SGM-90W-18V. Absorbuje fotony światła i zamienia je w energię elektryczną, wyjściowo jako zmienne napięcie DC.
- Sterownik ładowania Genasun GV-10 reguluje napięcie DC z panelu, aby ładować akumulator.
- 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.
Komponenty
- 1x mini siłownik liniowy PA-14 – 6 cali – siła 150 lbs.
- 1x panel słoneczny Sungold SGM-90W-18 90 W.
- 1x sterownik ładowania paneli słonecznych Genasun GV-10 12VDC.
- 1x Arduino Micro PLC.
- 1x Wasp Motor Controller.
- 2x fotorezystor 10 kΩ i 2x rezystor 7 kΩ.
- 1x akumulator litowy ładowalny 12VDC.
- 1x złącze zapalniczki do akcesoriów 12 V (opcjonalnie).

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.

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.

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

Wykonanie i montaż
Dla wizualnego przeglądu procesu budowy udostępniliśmy film na YouTube.
Kroki
- Oblicz potrzebne długości, aby uzyskać optymalne nachylenie.
- Zgromadź wszystkie niezbędne komponenty.
- Przymocuj uchwyty do panelu, wiercąc otwory i mocując je odpowiednimi śrubami.
- Przytnij rury miedziane i PVC na długość.
- Wykończ (pomaluj i przeszlifuj) rury miedziane i PVC.
- Przymocuj uchwyty do rur i zabezpiecz je obejmami zaciskowymi.
- 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.
