- Wymagane komponenty dla Arduino Solar Tracker:
- Jak działa jednoosiowy lokalizator słoneczny?
- Jak zbudować obrotowy panel słoneczny za pomocą Arduino:
- Schemat obwodu i wyjaśnienie:
- Jednoosiowy lokalizator słoneczny wykorzystujący kod Arduino:
W tym artykule zamierzamy wykonać panel słoneczny śledzący słońce za pomocą Arduino, w którym użyjemy dwóch LDR (rezystorów zależnych od światła) do wykrywania światła i serwomotoru do automatycznego obracania panelu słonecznego w kierunku światła słonecznego. Zaletą tego projektu jest to, że panele słoneczne zawsze będą podążać za światłem słonecznym, zawsze będą skierowane w stronę słońca, aby ładować się przez cały czas i mogą zapewnić maksymalną moc. Prototyp jest bardzo łatwy w budowie. Poniżej znajdziesz pełny opis tego, jak to działa i jak powstaje prototyp.
Wymagane komponenty dla Arduino Solar Tracker:
Poniżej znajdują się komponenty wymagane do zbudowania systemu śledzenia słońca przy użyciu Arduino, większość komponentów powinna być dostępna w lokalnym sklepie.
- Silnik serwo (SG90)
- Panel słoneczny
- Arduino Uno
- LDR's X 2 (rezystor zależny od światła)
- Rezystory 10 K X 2
- Akumulator (6 do 12 V)
Jak działa jednoosiowy lokalizator słoneczny?
W tym projekcie LDR działają jako detektory światła. Zanim przejdziemy do szczegółów, będziemy musieli zrozumieć, jak działa LDR. LDR (Light Dependent Resistor), znany również jako fotorezystor, jest urządzeniem światłoczułym. Jego opór zmniejsza się, gdy pada na niego światło, dlatego jest często używany w obwodzie detektora ciemności lub światła. Sprawdź tutaj różne obwody oparte na LDR.
Dwa LDR są umieszczone po dwóch stronach panelu słonecznego, a serwomotor służy do obracania panelu słonecznego. Serwo przesunie panel słoneczny w kierunku LDR, którego rezystancja będzie niska, czyli w stronę LDR, na którą pada światło, w ten sposób będzie podążać za światłem. A jeśli na oba LDR pada jakaś ilość światła, to serwo nie będzie się obracać. Serwo spróbuje przesunąć panel słoneczny do pozycji, w której oba LDR będą miały ten sam opór, co oznacza, że ta sama ilość światła padnie na oba rezystory i jeśli rezystancja jednego z LDR zmieni się, obróci się w kierunku niższego oporu LDR. Sprawdź film demonstracyjny na końcu tego artykułu.
Jak zbudować obrotowy panel słoneczny za pomocą Arduino:
Aby wykonać prototyp, będziesz musiał wykonać poniższe kroki:
Krok 1:
Najpierw weź mały kawałek kartonu i zrób dziurę na jednym końcu. Wkręcimy w niego śrubę, aby później naprawić ją za pomocą serwa.
Krok 2:
Teraz połącz ze sobą dwa małe kawałki kartonu w kształcie litery V za pomocą kleju lub pistoletu na gorąco i umieść na nim panel słoneczny.
Krok 3:
Następnie przymocuj dolną stronę kształtu V do drugiego końca małego kawałka kartonu, w którym zrobiłeś otwór w pierwszym kroku.
Krok 4:
Teraz włóż śrubę do otworu wykonanego na płycie karty i włóż ją przez otwór do serwomechanizmu. Śruba jest dostarczana z serwomotorem, gdy ją kupujesz.
Krok 5:
Teraz umieść serwo na innym kawałku kartonu. Rozmiar kartonu powinien być na tyle większy, aby można było na nim umieścić Arduino Uno, płytkę stykową i baterię.
Krok 6:
Przymocuj LDR po obu stronach panelu słonecznego za pomocą kleju. Upewnij się, że przylutowałeś przewody do nóżek LDR. Będziesz musiał później połączyć je z rezystorami.
Krok 7:
Teraz umieść Arduino, baterię i płytkę stykową na tekturze i wykonaj połączenie zgodnie z opisem w schemacie obwodu i sekcji Objaśnienia poniżej. Ostateczny prototyp pokazano poniżej.
Schemat obwodu i wyjaśnienie:
Pełny schemat obwodu dla projektu arduino śledzenia słonecznego pokazano poniżej. Jak widać obwód jest bardzo prosty i można go łatwo zbudować za pomocą małej płytki stykowej.
W tym Arduino Solar Panel Tracker, Arduino jest zasilane baterią 9 V, a wszystkie inne części są zasilane przez Arduino. Zalecane napięcie wejściowe Arduino wynosi od 7 do 12 woltów, ale można je zasilać w zakresie od 6 do 20 woltów, który jest limitem. Spróbuj zasilać go w ramach zalecanego napięcia wejściowego. Więc podłącz dodatni przewód akumulatora do Vin Arduino, a ujemny przewód akumulatora do masy Arduino.
Następnie podłącz serwo do Arduino. Podłącz dodatni przewód serwa do 5 V Arduino i przewód uziemiający do masy Arduino, a następnie podłącz przewód sygnałowy Serwa do cyfrowego pinu 9 Arduino. Serwo pomoże w przesunięciu panelu słonecznego.
Teraz podłącz LDR do Arduino. Podłącz jeden koniec LDR do jednego końca rezystora 10k, a także podłącz ten koniec do A0 Arduino i podłącz drugi koniec tego rezystora do masy i podłącz drugi koniec LDR do 5V. Podobnie, podłącz jeden koniec drugiego LDR do jednego końca drugiego rezystora 10k, a także podłącz ten koniec do A1 Arduino i podłącz drugi koniec tego rezystora do masy i podłącz drugi koniec LDR do 5 V Arduino.
Jednoosiowy lokalizator słoneczny wykorzystujący kod Arduino:
Kod tego opartego na Arduino modułu śledzenia paneli słonecznych jest łatwy i dobrze wyjaśniony komentarzami. Przede wszystkim włączymy bibliotekę dla silnika serwo. Następnie zainicjujemy zmienną dla początkowej pozycji serwomotoru. Następnie zainicjujemy zmienne do odczytu z czujników LDR i serwomechanizmu.
#zawierać
Polecenie sg90.atach (servopin) odczyta Servo z pinu 9 Arduino. Następnie ustawiamy piny LDR jako piny wejściowe, abyśmy mogli odczytać wartości z czujników i zgodnie z tym przesuwać panel słoneczny. Następnie ustawiamy serwomotor na 90 stopni, co jest początkową pozycją dla serwomechanizmu.
void setup () {sg90.attach (servopin); // dołącza serwo do pinu 9 pinMode (LDR1, INPUT); // Wprowadzanie pinu LDR jako wejścia pinMode (LDR2, INPUT); sg90.write (pozycja_początkowa); // Przesuń serwo z opóźnieniem 90 stopni (2000); // dając opóźnienie 2 sekundy}
Następnie odczytamy wartości z LDR i zapiszemy w R1 i R2. Następnie zrobimy różnicę między dwoma LDR, aby odpowiednio poruszyć serwo. Jeśli różnica między nimi będzie wynosić zero, oznacza to, że ta sama ilość światła pada na oba LDR, więc panel słoneczny nie będzie się poruszał. Użyliśmy zmiennej o nazwie error, której wartość wynosi 5, użycie tej zmiennej polega na tym, że jeśli różnica między dwoma LDR będzie mniejsza niż 5, to serwo nie będzie się poruszać. Jeśli tego nie zrobimy, serwo będzie się dalej obracać. A jeśli różnica jest większa niż wartość błędu (5), to siłownik przesunie panel słoneczny w kierunku LDR, na który pada światło. Sprawdź pełny kod i wideo demonstracyjne poniżej.
int R1 = analogRead (LDR1); // odczyt wartości z LDR 1 int R2 = analogRead (LDR2); // odczyt wartości z LDR 2 int diff1 = abs (R1 - R2); // Obliczanie różnicy między wartością LDR int diff2 = abs (R2 - R1); if ((diff1 <= error) - (diff2 <= error)) {// jeśli różnica jest poniżej błędu, nie rób nic} else {if (R1> R2) {initial_position = --initial_position; // Przesuń serwo w kierunku 0 stopni} if (R1 <R2) {pozycja_początkowa = ++ pozycja_początkowa; // Przesuń serwo w kierunku 180 stopni}}
W ten sposób możesz zbudować prosty moduł śledzący panel słoneczny, który automatycznie przesunie się w kierunku światła jak słonecznik. Tutaj zastosowaliśmy panel słoneczny o małej mocy, aby zmniejszyć wagę, jeśli planujesz użyć panelu słonecznego o dużej mocy lub ciężkiego, musisz odpowiednio wybrać silnik Servo.