- Požadované komponenty pre Arduino Solar Tracker:
- Ako funguje jednoosý solárny sledovač?
- Ako postaviť rotujúci solárny panel pomocou Arduina:
- Schéma zapojenia a vysvetlenie:
- Jednoosý solárny sledovač využívajúci kód Arduino:
V tomto článku sa chystáme vyrobiť solárny panel sledujúci slnko pomocou Arduina, v ktorom použijeme dva LDR (rezistor závislý od svetla) na snímanie svetla a servomotor na automatické otáčanie solárneho panelu v smere slnečného žiarenia. Výhodou tohto projektu je, že solárne panely budú vždy nasledovať slnečné svetlo, ktoré bude vždy smerovať k slnku, aby sa neustále nabíjalo, a dokáže dodávať maximálny výkon. Prototyp sa vyrába veľmi ľahko. Ďalej nájdete úplný popis toho, ako to funguje a ako sa vyrába prototyp.
Požadované komponenty pre Arduino Solar Tracker:
Nasledujúce komponenty vyžadujú zostavenie solárneho sledovacieho systému pomocou Arduina. Väčšina komponentov by mala byť k dispozícii vo vašom miestnom obchode.
- Servomotor (sg90)
- Solárny panel
- Arduino Uno
- LDR X 2 (rezistor závislý od svetla)
- 10K rezistory X 2
- Batéria (6 až 12V)
Ako funguje jednoosý solárny sledovač?
V tomto projekte pracujú LDR ako detektory svetla. Predtým, ako pôjdeme do podrobností, budeme musieť pochopiť, ako funguje LDR. LDR (Light Dependent Resistor) známy tiež ako fotoodpor je svetlocitlivé zariadenie. Jeho odpor klesá, keď na neho dopadne svetlo, a preto sa často používa v obvodoch detektorov tmy alebo svetla. Skontrolujte tu rôzne obvody založené na LDR.
Dve LDR sú umiestnené na dvoch stranách solárneho panelu a servomotor sa používa na otáčanie solárneho panelu. Servo bude pohybovať solárnym panelom smerom k LDR, ktorého odpor bude nízky, teda smerom k LDR, na ktorú dopadá svetlo, a tak bude svetlo naďalej sledovať. A ak na obidve LDR dopadá určité množstvo svetla, servo sa nebude otáčať. Servo sa pokúsi presunúť solárny panel do polohy, kde obidve LDR budú mať rovnaký odpor, to znamená, že rovnaké množstvo svetla dopadne na oba odpory a ak sa zmení odpor jedného z LDR, bude sa točiť smerom k nižšiemu odporu LDR. Skontrolujte demonštračné video na konci tohto článku.
Ako postaviť rotujúci solárny panel pomocou Arduina:
Pri výrobe prototypu budete musieť postupovať podľa nasledujúcich krokov:
Krok 1:
Najskôr vezmite malý kúsok lepenky a na jednom konci urobte dieru. Do nej zasunieme skrutku, aby sme ju neskôr zafixovali pomocou serva.
Krok 2:
Teraz pomocou lepidla alebo horúcej pištole navzájom zafixujte dva malé kúsky lepenky navzájom do tvaru písmena V a položte na ne solárny panel.
Krok 3:
Potom pripevnite spodnú stranu tvaru V k druhému koncu malého kúska lepenky, v ktorom ste v prvom kroku vytvorili otvor.
Krok 4:
Teraz zaskrutkujte skrutku do otvoru, ktorý ste vytvorili na kartóne, a zasuňte ju cez otvor do serva. Skrutka sa dodáva so servomotorom, keď ho kupujete.
Krok 5:
Teraz položte servo na iný kúsok lepenky. Veľkosť lepenky by mala byť dostatočne veľká, aby ste na ňu mohli umiestniť Arduino Uno, nepájivú dosku a batériu.
Krok 6:
Pripojte LDR na dve strany solárneho panelu pomocou lepidla. Uistite sa, že ste drôty spájkovali nožičkami LDR. Neskôr ich budete musieť spojiť s rezistormi.
Krok 7:
Teraz vložte Arduino, batériu a nepájivú dosku na lepenku a vykonajte pripojenie podľa popisu v schéme zapojenia a vysvetlení nižšie. Konečný prototyp je uvedený nižšie.
Schéma zapojenia a vysvetlenie:
Kompletná schéma zapojenia pre projekt solárneho sledovania arduino je uvedená nižšie. Ako vidíte, okruh je veľmi jednoduchý a dá sa ľahko zostaviť pomocou malého nepájivého poľa.
V tomto sledovači solárnych panelov Arduino je Arduino napájané z 9V batérie a všetky ostatné časti sú napájané z Arduina. Arduino odporúča vstupné napätie od 7 do 12 voltov, ale môžete ho napájať v rozmedzí 6 až 20 voltov, čo je limit. Pokúste sa ho napájať v rámci odporúčaného vstupného napätia. Pripojte teda kladný vodič batérie k vin z Arduina a záporný vodič batérie k zemi Arduino.
Ďalej pripojte servo k Arduinu. Pripojte kladný vodič serva k 5 V Arduina a uzemňovací vodič k zemi Arduina a potom signálny vodič Serva pripojte k digitálnemu kolíku 9 Arduina. Servo pomôže pri posune solárneho panelu.
Teraz pripojte LDR k Arduinu. Pripojte jeden koniec LDR k jednému koncu 10k rezistora a tiež tento koniec pripojte k A0 Arduina a druhý koniec tohto rezistora pripojte k zemi a druhý koniec LDR pripojte k 5V. Podobne pripojte jeden koniec druhého LDR k jednému koncu druhého 10k rezistora a tiež tento koniec pripojte k A1 Arduina a druhý koniec tohto odporu pripojte k zemi a druhý koniec LDR pripojte k 5V Arduino.
Jednoosý solárny sledovač využívajúci kód Arduino:
Kód pre tento sledovač solárnych panelov založený na Arduine je jednoduchý a dobre vysvetlený komentármi. Najskôr zahrnieme knižnicu pre servomotor. Potom inicializujeme premennú pre počiatočnú polohu servomotora. Potom inicializujeme premenné, ktoré sa majú načítať zo senzorov LDR a servo.
#include
Príkaz sg90.atach (servopin) načíta Servo z kolíka 9 Arduina. Ďalej nastavíme piny LDR ako vstupné piny, aby sme mohli čítať hodnoty zo senzorov a podľa toho posúvať solárny panel. Potom nastavíme servomotor na 90 stupňov, čo je východzia poloha pre servo.
void setup () {sg90.attach (servopin); // pripojí servo na pin 9 pinMode (LDR1, INPUT); // Vytvorenie pinu LDR ako vstupného pinMode (LDR2, INPUT); sg90.write (initial_position); // Posuňte servo s 90 stupňovým oneskorením (2000); // s oneskorením 2 sekundy}
Potom načítame hodnoty z LDR a uložíme ich do R1 a R2. Potom urobíme rozdiel medzi dvoma LDR, aby sme podľa toho posúvali servo. Ak bude rozdiel medzi nimi nulový, znamená to, že na obe LDR dopadá rovnaké množstvo svetla, takže solárny panel sa nebude pohybovať. Použili sme premennú s názvom chyba a jej hodnota je 5, použitie tejto premennej spočíva v tom, že ak bude rozdiel medzi dvoma LDR pod 5, potom sa servo nebude pohybovať. Pokiaľ to neurobíme, bude sa servo otáčať. A ak je rozdiel väčší ako chybová hodnota (5), bude servo posúvať solárny panel v smere LDR, na ktorý dopadá svetlo. Celý kód a ukážkové video nájdete nižšie.
int R1 = analogRead (LDR1); // načítanie hodnoty z LDR 1 int R2 = analogRead (LDR2); // načítanie hodnoty z LDR 2 int diff1 = abs (R1 - R2); // Výpočet rozdielu medzi LDR's int diff2 = abs (R2 - R1); if ((diff1 <= chyba) - (diff2 <= chyba)) {// ak je rozdiel pod chybou, potom nerob nič} else {if (R1> R2) {initial_position = --initial_position; // Posuňte servo smerom k 0 stupňom} if (R1 <R2) {initial_position = ++ initial_position; // Posuňte servo smerom k 180 stupňom}}
Takto si teda môžete zostaviť jednoduchý sledovač solárnych panelov, ktorý sa bude automaticky posúvať k svetlu ako slnečnica. Tu sme použili nízkoenergetický solárny panel na zníženie hmotnosti. Ak plánujete použitie vysoko výkonného alebo ťažkého solárneho panelu, musíte podľa toho zvoliť servomotor.