- Zahtevane komponente za Arduino Solar Tracker:
- Kako deluje enoosni solarni sledilnik?
- Kako zgraditi vrtljivo sončno ploščo z uporabo Arduina:
- Shema vezja in razlaga:
- Enoosni sončni sledilnik z uporabo kode Arduino:
V tem članku bomo izdelali sončno ploščo za sledenje soncu z uporabo Arduina, v kateri bomo uporabili dva LDR-ja (upor odvisen od svetlobe) za zaznavanje svetlobe in servo motor za samodejno zasukanje sončne plošče v smeri sončne svetlobe. Prednost tega projekta je v tem, da bodo sončne celice vedno sledile sončni svetlobi, vedno bodo obrnjene proti soncu, da se bodo ves čas polnile in bodo lahko oskrbovale z največjo močjo. Prototip je zelo enostaven za izdelavo. Spodaj najdete popoln opis, kako deluje in kako je izdelan prototip.
Zahtevane komponente za Arduino Solar Tracker:
V nadaljevanju so opisane komponente, ki so potrebne za izdelavo solarnega sistema za sledenje z uporabo Arduina, večina komponent pa mora biti na voljo v vaši lokalni trgovini.
- Servo motor (sg90)
- Sončna celica
- Arduino Uno
- LDR-jev X 2 (svetlobno odvisni upor)
- 10K upori X 2
- Baterija (6 do 12V)
Kako deluje enoosni solarni sledilnik?
V tem projektu LDR delujejo kot detektorji svetlobe. Preden se spustimo v podrobnosti, bomo morali razumeti, kako deluje LDR. LDR (svetlobno odvisni upor), znan tudi kot fotoodpor, je svetlobno občutljiva naprava. Njegova odpornost se zmanjša, ko nanjo pade svetloba, zato jo pogosto uporabljamo v temnem ali svetlobnem detektorju. Tukaj preverite različna vezja, ki temeljijo na LDR.
Dva LDR-ja sta nameščena na obeh straneh sončne celice, servo motor pa se uporablja za vrtenje sončne celice. Servo bo solarni panel premaknil proti LDR, katerega upor bo majhen, torej proti LDR, na katerega pada svetloba, tako bo še naprej sledil svetlobi. In če na oba LDR pade nekaj svetlobe, se servo servo ne bo vrtel. Servo bo poskušal sončno ploščo premakniti v položaj, kjer bosta oba LDR imela enak upor, kar pomeni, da bo na oba upora padla enaka količina svetlobe in če se bo upor enega od LDR spremenil, se bo vrtel proti nižji upornosti LDR. Oglejte si predstavitveni video na koncu tega članka.
Kako zgraditi vrtljivo sončno ploščo z uporabo Arduina:
Za izdelavo prototipa boste morali slediti spodnjim korakom:
Korak 1:
Najprej vzemite majhen košček kartona in na enem koncu naredite luknjo. Vanj bomo vstavili vijak, da ga bomo kasneje pritrdili s servo.
2. korak:
Zdaj pritrdite dva majhna kosa kartona med seboj v obliki črke V s pomočjo lepila ali vroče pištole in nanjo položite sončno ploščo.
3. korak:
Nato pritrdite spodnjo stran oblike V na drugi konec majhnega kosa kartona, v katerem ste v prvem koraku naredili luknjo.
4. korak:
Zdaj vstavite vijak v luknjo, ki ste jo naredili na kartonski plošči, in jo skozi luknjo vstavite v servo. Vijak je priložen servo motorju, ko ga kupite.
5. korak:
Zdaj servo položite na drug kos kartona. Velikost kartona mora biti dovolj večja, da lahko nanjo položite Arduino Uno, ploščo in baterijo.
6. korak:
LDR-je s pomočjo lepila pritrdite na obe strani sončne celice. Prepričajte se, da ste žice spajkali z nogami LDR-jev. Kasneje jih boste morali povezati z upori.
7. korak:
Zdaj položite Arduino, baterijo in ploščo na karton in vzpostavite povezavo, kot je opisano v spodnjem odseku vezja in razlage. Končni prototip je prikazan spodaj.
Shema vezja in razlaga:
Popoln diagram vezja za projekt solarnega sledenja arduino je prikazan spodaj. Kot lahko vidite, je vezje zelo preprosto in ga je mogoče enostavno zgraditi s pomočjo majhne plošče.
V tem Arduino Solar Panel Trackerju Arduino napaja 9V baterija, vse ostale dele pa Arduino. Vhodna napetost, ki jo priporoča Arduino, je od 7 do 12 voltov, vendar jo lahko napajate v območju od 6 do 20 voltov, kar je meja. Poskusite ga napajati znotraj priporočene vhodne napetosti. Pozitivno žico baterije torej priključite na Vin Arduino, negativno žico baterije pa na tla Arduina.
Nato servo priključite na Arduino. Pozitivno žico servo priključite na 5V Arduino in ozemljitveno žico na maso Arduino in nato signalno žico Servo priključite na digitalni pin 9 Arduino. Servo bo pomagal pri premikanju sončne celice.
Zdaj povežite LDR z Arduinom. En konec LDR priključite na en konec 10k upora in ta konec povežite tudi z A0 Arduina, drugi konec upora pa priključite na tla, drugi konec LDR pa na 5V. Podobno povežite en konec drugega LDR z enim koncem drugega 10k upora in ta konec povežite tudi z A1 Arduino, drugi konec tega upora pa s tlemi, drugi konec LDR pa s 5V Arduino.
Enoosni sončni sledilnik z uporabo kode Arduino:
Koda za ta Arduino Solar Panel Tracker je enostavna in dobro razložena s komentarji. Najprej bomo vključili knjižnico za servo motor. Nato bomo inicializirali spremenljivko za začetni položaj servo motorja. Po tem bomo spremenljivke inicializirali za branje s senzorjev LDR in servo.
#include
ukaz sg90.atach (servopin) bo bral Servo z zatiča 9 Arduina . Nato nastavimo LDR nožice kot vhodne nožice, tako da lahko beremo vrednosti s senzorjev in glede na to premikamo sončno ploščo. Nato nastavimo servo motor na 90 stopinj, kar je začetni položaj servo motorja.
void setup () {sg90.attach (servopin); // pritrdi servo na pin 9 pinMode (LDR1, INPUT); // Izdelava LDR pin-a kot vhodnega pinMode (LDR2, INPUT); sg90.write (začetna_pozicija); // Premakni servo pri 90-stopinjski zakasnitvi (2000); // podajanje zamika 2 sekundi}
Nato bomo prebrali vrednosti iz LDR-jev in shranili v R1 in R2. Nato bomo naredili razliko med obema LDR-jema, da bomo servo ustrezno premaknili. Če bo razlika med njima enaka nič, to pomeni, da na obe LDR pada enaka količina svetlobe, zato se sončna plošča ne bo premikala. Uporabili smo spremenljivko z imenom error in njena vrednost je 5, uporaba te spremenljivke je, da če bo razlika med obema LDR manjša od 5, se servo ne bo premaknil. Če tega ne bomo storili, se bo servo še naprej vrtel. In če je razlika večja od vrednosti napake (5), bo servo pomaknil sončno ploščo v smeri LDR, na katero pada svetloba. Spodaj si oglejte celotno kodo in predstavitveni video.
int R1 = analogRead (LDR1); // branje vrednosti iz LDR 1 int R2 = analogRead (LDR2); // branje vrednosti iz LDR 2 int diff1 = abs (R1 - R2); // Izračun razlike med LDR-jev int diff2 = abs (R2 - R1); if ((diff1 <= error) - (diff2 <= error)) {// če je razlika pod napako, potem ne naredite nič} drugega {if (R1> R2) {začetna_pozicija = - začetna_pozicija; // Servo premaknite proti 0 stopinj}, če (R1 <R2) {začetna_pozicija = ++ začetna_pozicija; // Servo premaknite proti 180 stopinj}}
Tako lahko zgradite preprost sledilnik solarnih plošč, ki se samodejno premakne proti svetlobi kot sončnica. Tu smo za zmanjšanje teže uporabili sončno ploščo z majhno močjo. Če nameravate uporabiti sončno ploščo z visoko močjo ali težko, morate ustrezno izbrati servo motor.