Jak dodać panel słoneczny w projektach z Arduino
09/06/2021Jednym z możliwych rozważanych przeze mnie rozszerzeń dla Bike Pixel jest dodanie modułu umożliwiającego ładowanie poprzez panel słoneczny. W teorii możemy zasilać nasze projekty Arduino poprzez bezpośrednie podłączenie panelu słonecznego. Jeżeli mamy jakieś układy stabilizujące prąd i dużo słońca świecącego na panel, to nie powinno być z tym problemu. Jednak w momencie, gdy energia dostarczana przez panel będzie niewystarczająca, nasze urządzenie przestanie działać.
Dlatego w naszych projektach Arduino, oprócz panelu słonecznego, normą jest użycie baterii, która jest ładowana tak długo, jak długo panel otrzymuje wystarczającą ilość energii ze słońca. Dzięki temu nasz projekt będzie działał, gdy natężenie światła zostanie zmniejszone. Konfiguracja układu będzie bardzo podobna do tej używanej do zasilania Arduino za pomocą baterii LiPo. W tym przypadku dołożymy jeszcze kilka innych elementów, ze szczególnym uwzględnieniem części związanych z zasilaniem, czyli akumulatora i panelu słonecznego.
Dostarczanie energii
Aby właściwie dobrać panel słoneczny i baterię do naszego projektu musimy najpierw zastanowić się nad potrzebami energetycznymi. Dotyczy to zarówno płytki Arduino, jak i wszystkich innych komponentów, które chcemy użyć w naszym projekcje.
W zależności od modelu Arduino, z którym pracujemy, jego zużycie będzie inne. W sąsiedniej tabeli można zobaczyć przybliżony pobór mocy różnych płyt. Oprócz poboru mocy przez płytkę Arduino, musimy dodać pobór mocy przez wszystkie urządzenia peryferyjne zawarte w naszym projekcie (aktuatory, czujniki, itp.). W przypadku prostego projektu bez problemów możemy osiągnąć 100 mAh. Na przykład:
- w przypadku czujnika temperatury wystarczy nam 0,2 mA,
- ultradźwiękowy czujnik odległości nieco ponad 2 mA,
- dla modułu z akcelerometrem 4 mA,
- dioda LED w zakresie od 10 do 20 mA,
- bardziej złożone rzeczy, takie jak moduł bluetooth będą potrzebowały 50 mA,
- a w przypadku serwomechanizmów mogą one pobierać nawet ponad 200 mA podczas ruchu.
Model | Zużycie energii |
Arduino Pro Mini 3.3V | 5 mAh |
Arduino Nano | 15 mAh |
Arduino Uno | 46 mAh |
Arduino Due | 75 mAh |
Arduino Mega | 93 mAh |
Tabela z przybliżonymi wartościami zużycia energii przez różne oryginalne modele Arduino. Dane otrzymane dzięki tej analizie zużycia energii Arduino oraz temu opracowaniu zminimalizowania zużycia prądu.
Wybór baterii
Kiedy już oszacujemy zapotrzebowanie na energię naszego projektu, możemy przejść do wyboru baterii. Oczywiście, im większa tym lepsza. Ale niestety zazwyczaj ogranicza nas budżet, przestrzeń lub waga. Będziemy więc musieli wybrać tę, która jest dla nas najbardziej odpowiednia.
Jeśli na przykład chcemy, aby nasz projekt działał przez co najmniej 24 godziny bez światła słonecznego, będziemy musieli upewnić się, że bateria ma wystarczającą pojemność, aby utrzymać nasze urządzenie w tym czasie. Dla przykładu, załóżmy (dla uproszczenia), że nasz projekt zbudowany jest z Arduino Nano, które w sumie wraz z pozostałymi komponentami potrzebuje około 100 mAh. W tym przypadku, aby mieć wystarczającą ilość energii na cały dzień, będziemy potrzebowali baterii o pojemności co najmniej 2400 mAh.
Należy również wziąć pod uwagę, że baterie ulegają degradacji wraz z upływem czasu, liczbą przeprowadzonych cykli ładowania oraz to, że występują straty w transformacji napięcia baterii. Dlatego zawsze wskazane jest posiadanie bufora, aby zapewnić sobie dodatkową energię. Kontynuując nasz przykład, możemy wybrać baterię o pojemności 2500 mAh. Jest to (przypadkowo 😉 ta sama, która będzie wykorzystana w przyszłym Bike Pixels Rear.
Wybór panelu słonecznego
W naszych projektach Arduino zazwyczaj użyjemy paneli słonecznych o napięciu 5 lub 6V. Zwykle moc wyjściowa panelu jest wyrażana w watach (W) i jest to maksymalna ilość energii, jaką może on wytworzyć w idealnych warunkach temperatury i nasłonecznienia (tj. przy napromieniowaniu słonecznym 1000 W/m², w standardowej atmosferze w temperaturze 25°C).
Idealnie byłoby mieć panel słoneczny, który jest w stanie naładować nasz akumulator w jedną dobę. Oczywiście, w zależności od pogody, pory roku i szerokości geograficznej, w której się znajdujemy (chyba, że mieszkamy w tropikach) promieniowanie słoneczne jest różne. W ten sam sposób zmienia się ilość energii, którą może wyprodukować nasz panel. Dlatego na początek musimy oszacować ilość energii słonecznej, jaką możemy uzyskać w naszej lokalizacji.
Obliczenie nasłonecznienia
Istnieje wiele serwisów, które pozwalają nam poznać szacunkową ilość promieniowania w danym punkcie planety. Jednym z nich jest Projekt POWER realizowany przez NASA. Tutaj możemy uzyskać historyczne wartości napromieniowania poziomego w dowolnym punkcie na Ziemi. Na przykład, na poniższych wykresach przedstawiono dzienne poziome napromieniowanie dla miasta Bielsko-Biała (woj. śląskie) w roku 2020.
Widzimy, że w najlepsze dni (dosłownie 2) mamy nieco ponad 8 kW/m² na dzień, a w najgorsze (ponad 60) nawet mniej niż 1 kW/m²/dzień. Na tej podstawie oraz wiedząc, że natężenie jest wyznaczane za pomocą poniższego wzoru, będziemy w stanie oszacować całkowitą energię dostarczaną przez panel słoneczny:
I(A) = P(W) / V(V)
Jeśli mamy panel 5V, który może wygenerować do 1W mocy, to w przypadku najgorszego dnia przez całą dobę wygeneruje tylko 200 mA (1W/5A = 0,2A = 200 mA). Czyli nie za dużo.
Należy zwrócić uwagę, że powyższe wykresy przedstawiają wartość na płaszczyźnie poziomej, czyli bezpośrednio na płaskim podłożu. Jeżeli ustawimy nasz panel prostopadle do kierunku promieniowania słonecznego, możemy uzyskać dodatkową energię. Kontynuując z przypadkiem Bielska-Białej (szerokość geograficzna ~50°) możemy prawie potroić ilość energii w zimie, jeśli nachylimy nasz panel pod kątem 66°, jak pokazano na poniższym wykresie uzyskanym dzięki temu narzędziu online do obliczania promieniowania słonecznego na powierzchni pochyłej.
Tak więc w najgorsze dni dla panelu 1W, możemy oszacować, że będziemy mogli uzyskać nawet trochę więcej niż 400 mA przez cały dzień. Zatem do naładowania akumulatora 2400 mA będziemy potrzebowali panelu o mocy co najmniej 6W (2400/400).
Wymagane elementy
Aby zademonstrować, jak założyć projekt z panelem słonecznym, przygotowałem przykład. Idea jest taka, że dioda LED świeci w nocy i wyłącza się w ciągu dnia, a wszystko jest zasilane przez panel słoneczny, który ładuje baterię. Dla uproszczenia będziemy udawać, że zużycie prądu przez ten układ wynosi 100 mAh (choć w rzeczywistości byłoby to znacznie mniej). W ten sposób możemy pracować z już zaproponowanym akumulatorem i panelem. Do takiego projektu, oprócz tych komponentów i płytki Arduino, potrzebujemy:
- fotorezystor, diodę LED oraz rezystory 330Ω i 10kΩ, które są podstawowymi elementami do przykładowego projektu;
- moduł ładowania TP4056, który będzie zarządzał ładowaniem i ochroną akumulatora;
- moduł step-up, który przetwarza napięcie baterii LiPo do 5V wymagane przez Arduino do działania;
- dioda SR240, która zabezpieczy przed przepływem prądu z baterii do panelu słonecznego.
SR240 jest diodą Schottky’ego. Została ona wybrana ze względu na mniejszy spadek napięcia niż konwencjonalne diody krzemowe. W SR240 spadek napięcia jest również wyjątkowo mały, około 0,55V. Dzięki temu możemy chronić panel słoneczny, a jednocześnie nie zmniejszać zbytnio jego wydajności. Dodatkowo może pracować z natężeniem do 2A. Zapewnia to bezproblemową pracę nawet przy maksymalnym obciążeniu panelu. W najlepsze dni panel o mocy 6W może wytworzyć do 1,2A.
Lista komponentów, których będziemy potrzebować oraz ich ceny są podsumowane w poniższej tabeli:
Część | Cena w AliExpress | Amazon PL |
---|---|---|
Arduino Nano | 22,53 zł (klon) | 91,99 zł (oryginalny) |
Panel słoneczny 6W | 48,57 zł | 73,49 zł |
Moduł TP4056 | 2,45 zł | 13,99 zł (5 szt.) |
Bateria LiPo 2500 mAh | 41,36 zł | 157,25 zł (2 szt.) |
Moduł step-up 5V | 1,64 zł | 45,15 zł (10 szt.) |
Dioda Schottky SR240 | 9,45 zł (100 szt.) | 20,63 zł (100 szt.) |
Fotorezystor | 3,24 zł (20 szt.) | 48,61 zł (100 szt.) |
LED | 4,20zł (100 szt.) | |
Rezystor 10kΩ | 2,72zł (100 szt.) | |
Rezystor 330Ω | 2,72zł (100 szt.) | |
Kable AWG26 | 73,56zł (6x10m) |
Konfiguracja układu i kod
Po wybraniu głównych komponentów, możemy rozpocząć pracę nad obwodem. Konfiguracja będzie dość prosta. Najpierw musimy podłączyć komponenty, które będą zasilać płytkę Arduino. Panel słoneczny należy podłączyć do pinów wejściowych TP4056, akumulator do B+ i B-, a piny OUT do modułu step-up. Będzie on odpowiedzialny za przekształcanie prądu na 5V pochodzącego z akumulatora lub bezpośrednio z panelu słonecznego, jeśli ten działa. W ten sposób wyjście modułu step-up może być podłączone bezpośrednio do pinów 5V i GND Arduino.
Na koniec pozostaje nam już tylko podłączyć diodę LED do jednego z pinów cyfrowych (np. pin 2), a fotorezystor do jednego z pinów analogowych (w tym przypadku A0) oraz do zasilania. W ten sposób nasz obwód powinien wyglądać jak konfiguracja podana na poniższym schemacie.
Gdy mamy już wszystko gotowe, możemy wgrać do naszej płytki poniższy kod, który będzie odpowiedzialny za odczytywanie wartości fotorezystora i włączanie lub wyłączanie diody LED w zależności od jej wartości. W miarę wzrostu natężenia światła padającego na fotorezystor, jego rezystancja będzie się zmniejszać, więc odczytana wartość będzie wyższa, tzn. im więcej światła tym wyższa wartość odczytana przez Arduino i odwrotnie.
// Stałe konfiguracji pinów
const int PIN_POTHO = A0;
const int PIN_LED=2;
// Zmienna przechowująca wartość odczytaną z fotorezystora (0 do 1023)
int value;
void setup(){
pinMode(PIN_LED, OUTPUT);
pinMode(PIN_PHOTO, INPUT);
}
// Wykonuje odczyt fotorezystora i wyłącza LED w przypadku obecności światła
void loop(){
value = analogRead(PIN_PHOTO);
if (value > 50){
digitalWrite(PIN_LED, LOW); // Apagar LED
} else{
digitalWrite(PIN_LED, HIGH); // Encender LED
}
// Odczekać jedną sekundę na następny odczyt
delay(1000);
}
Podsumowanie i dodatkowe informacje
Dobór Jak w każdym projekcie inżynierskim, kluczowy jest właściwy dobór elementów składających się na projekt. W tym przypadku trzeba dobrać odpowiednie baterie i panel słoneczny do potrzeb energetycznych projektu do warunków pogodowych, w jakich będziemy pracować. Powinniśmy zawsze badać najgorszy przypadek i opierać nasz projekt na tej analizie. Oczywiście możemy zamontować większy akumulator i panel, ale to również zwiększy koszt, rozmiar i wagę naszego projektu.
Jeśli chcesz zagłębić się w temat zużycia energii i wykorzystania energii słonecznej w swoich projektach, oto kilka dodatkowych linków:
- Więcej o energii słonecznej znajdziecie na tej wiki na temat fotowoltaiki od podstaw.
- Na Arduino Project Hub znalazłem dużo bardziej złożony przykład z wykorzystaniem panelu słonecznego do zasilania projektu IoT.
- Na tej samej stronie można również znaleźć ponad 30 projektów związanych z energią słoneczną dla Arduino.