- Požadované komponenty pro Arduino Solar Tracker:
- Jak funguje jednoosý solární sledovač?
- Jak postavit rotující solární panel pomocí Arduina:
- Schéma zapojení a vysvětlení:
- Jednoosý solární tracker využívající Arduino kód:
V tomto článku se chystáme vyrobit solární panel sledující slunce pomocí Arduina, ve kterém použijeme dva LDR (rezistor závislý na světle) pro snímání světla a servomotor pro automatické otáčení solárního panelu ve směru slunečního světla. Výhodou tohoto projektu je, že solární panely budou vždy sledovat, že sluneční světlo bude vždy čelit slunci, aby se neustále nabíjelo, a může dodávat maximální výkon. Prototyp se staví velmi snadno. Níže naleznete kompletní popis toho, jak to funguje a jak je prototyp vyroben.
Požadované komponenty pro Arduino Solar Tracker:
Níže jsou uvedeny komponenty, které jsou vyžadovány k vybudování solárního sledovacího systému pomocí Arduina, většina komponent by měla být k dispozici ve vašem místním obchodě.
- Servomotor (sg90)
- Solární panel
- Arduino Uno
- LDR's X 2 (Light Dependent Resistor)
- 10K rezistory X 2
- Baterie (6 až 12V)
Jak funguje jednoosý solární sledovač?
V tomto projektu pracují LDR jako detektory světla. Než půjdeme do podrobností, budeme muset pochopit, jak funguje LDR. LDR (Light Dependent Resistor) známý také jako fotoodpor je zařízení citlivé na světlo. Jeho odpor klesá, když na něj dopadá světlo, a proto se často používá v obvodech Dark nebo Light Detector Circuit. Zde zkontrolujte různé obvody založené na LDR.
Dvě LDR jsou umístěny na obou stranách solárního panelu a servomotor se používá k otáčení solárního panelu. Servo bude pohybovat solárním panelem směrem k LDR, jehož odpor bude nízký, tj. Směrem k LDR, na kterou dopadá světlo, tak bude dál sledovat světlo. A pokud na LDR dopadá určité množství světla, servo se nebude otáčet. Servo se pokusí přesunout solární panel do polohy, kde obě LDR budou mít stejný odpor, což znamená, že na oba odpory dopadne stejné množství světla a pokud se změní odpor jednoho z LDR, bude se otáčet směrem k nižšímu odporu LDR. Podívejte se na ukázkové video na konci tohoto článku.
Jak postavit rotující solární panel pomocí Arduina:
Chcete-li vyrobit prototyp, budete muset postupovat podle následujících kroků:
Krok 1:
Nejprve vezměte malý kousek lepenky a na jednom konci udělejte díru. Vložíme do něj šroub, abychom jej později upevnili pomocí serva.
Krok 2:
Nyní pomocí lepidla nebo horké pistole navzájem zafixujte dva malé kousky lepenky ve tvaru písmene V a položte na ně solární panel.
Krok 3:
Poté připojte spodní stranu tvaru V k druhému konci malého kousku lepenky, ve kterém jste v prvním kroku udělali díru.
Krok 4:
Nyní zasuňte šroub do otvoru, který jste vytvořili na kartonu, a zasuňte jej otvorem do serva. Při zakoupení je šroub dodáván se servomotorem.
Krok 5:
Nyní položte servo na jiný kousek lepenky. Velikost lepenky by měla být dostatečně velká, aby na ni bylo možné umístit Arduino Uno, prkénko na prkénko a baterii.
Krok 6:
Připevněte LDR na dvě strany solárního panelu pomocí lepidla. Ujistěte se, že jste vodiče spojili nožičkami LDR. Později je budete muset propojit s rezistory.
Krok 7:
Nyní vložte Arduino, baterii a prkénko na prkénko a proveďte připojení, jak je popsáno v části Schéma zapojení a vysvětlení níže. Konečný prototyp je uveden níže.
Schéma zapojení a vysvětlení:
Kompletní schéma zapojení pro projekt solárního sledování Arduino je uvedeno níže. Jak vidíte, obvod je velmi jednoduchý a lze ho snadno postavit pomocí malého nepájivého pole.
V tomto sledovači solárních panelů Arduino je Arduino napájeno 9V baterií a všechny ostatní části jsou napájeny Arduinem. Doporučené vstupní napětí Arduino je od 7 do 12 voltů, ale můžete jej napájet v rozsahu 6 až 20 voltů, což je limit. Zkuste jej napájet v rámci doporučeného vstupního napětí. Připojte tedy kladný vodič baterie k vin Arduina a záporný vodič baterie k zemi Arduina.
Poté připojte servo k Arduinu. Připojte kladný vodič serva k 5 V Arduina a zemnící vodič k zemi Arduina a poté připojte signální vodič Serva k digitálnímu kolíku 9 Arduina. Servo pomůže při pohybu solárního panelu.
Nyní připojte LDR k Arduinu. Připojte jeden konec LDR k jednomu konci 10k rezistoru a také tento konec připojte k A0 Arduina a druhý konec tohoto rezistoru připojte k zemi a druhý konec LDR k 5V. Podobně připojte jeden konec druhého LDR k jednomu konci druhého 10k rezistoru a také tento konec připojte k A1 Arduina a druhý konec tohoto rezistoru připojte k zemi a druhý konec LDR připojte k 5V Arduino.
Jednoosý solární tracker využívající Arduino kód:
Kód pro tento sledovač solárních panelů založený na Arduinu je snadný a dobře vysvětlený komentáři. Nejprve zahrneme knihovnu pro servomotor. Poté inicializujeme proměnnou pro počáteční polohu servomotoru. Poté inicializujeme proměnné, které se mají číst ze senzorů LDR a Servo.
#zahrnout
Příkaz sg90.atach (servopin) načte Servo z pinu 9 Arduina. Dále nastavíme piny LDR jako vstupní piny, abychom mohli číst hodnoty ze senzorů a podle toho přesouvat solární panel. Poté nastavíme servomotor na 90 stupňů, což je výchozí poloha pro servo.
void setup () {sg90.attach (servopin); // připojí servo na pin 9 pinMode (LDR1, INPUT); // Vytvoření LDR pinu jako vstupního pinMode (LDR2, INPUT); sg90.write (initial_position); // Posuňte servo se zpožděním 90 stupňů (2000); // s prodlevou 2 sekundy}
Potom načteme hodnoty z LDR a uložíme je do R1 a R2. Pak uděláme rozdíl mezi dvěma LDR, abychom odpovídajícím způsobem pohnuli servem. Pokud bude rozdíl mezi nimi nulový, znamená to, že na obě LDR dopadá stejné množství světla, takže solární panel se nebude hýbat. Použili jsme proměnnou s názvem chyba a její hodnota je 5, použití této proměnné spočívá v tom, že pokud bude rozdíl mezi dvěma LDR pod 5, pak se servo nebude pohybovat. Pokud to neuděláme, bude se servo otáčet. A pokud je rozdíl větší než chybová hodnota (5), bude servo pohybovat solárním panelem ve směru LDR, na který dopadá světlo. Zkontrolujte celý kód a ukázkové video níže.
int R1 = analogRead (LDR1); // načítání hodnoty z LDR 1 int R2 = analogRead (LDR2); // načítání hodnoty z LDR 2 int diff1 = abs (R1 - R2); // Výpočet rozdílu mezi LDR int diff2 = abs (R2 - R1); if ((diff1 <= error) - (diff2 <= error)) {// pokud je rozdíl pod chybou, nedělej nic} else {if (R1> R2) {initial_position = --initial_position; // Posuňte servo směrem k 0 stupňům} if (R1 <R2) {initial_position = ++ initial_position; // Posuňte servo směrem k 180 stupňům}}
Takto můžete postavit jednoduchý sledovač solárních panelů, který se bude automaticky pohybovat směrem ke světlu jako slunečnice. Zde jsme použili nízkoenergetický solární panel ke snížení hmotnosti, pokud plánujete použití vysoce výkonného nebo těžkého solárního panelu, musíte podle toho zvolit servomotor.