- Būtini „Arduino Solar Tracker“ komponentai:
- Kaip veikia vienos ašies saulės seklys?
- Kaip pastatyti besisukantį saulės kolektorių naudojant „Arduino“:
- Grandinės schema ir paaiškinimas:
- Vienos ašies saulės seklys naudojant „Arduino“ kodą:
Šiame straipsnyje mes padarysime saulės stebėjimo saulės skydelį naudodami „Arduino“, kuriame naudosime du LDR (nuo šviesos priklausantį rezistorių) šviesai pajusti, o servovariklį - automatiškai pasukti saulės kolektorių saulės šviesos kryptimi.. Šio projekto pranašumas yra tas, kad Saulės baterijos visada stebės saulės spindulius, visada bus nukreiptos į saulę, kad visą laiką galėtų įkrauti, ir gali tiekti maksimalią galią. Prototipą labai lengva sukurti. Žemiau rasite išsamų jo veikimo ir prototipo gamybos aprašymą.
Būtini „Arduino Solar Tracker“ komponentai:
Toliau pateikiami komponentai, reikalingi norint sukurti saulės stebėjimo sistemą naudojant „Arduino“. Daugumą komponentų turėtų būti galima įsigyti vietinėje parduotuvėje.
- Servo variklis (sg90)
- Saulės baterija
- Arduino Uno
- LDR X 2 (nuo šviesos priklausomas rezistorius)
- 10K rezistoriai X 2
- Baterija (nuo 6 iki 12 V)
Kaip veikia vienos ašies saulės seklys?
Šiame projekte LDR dirba kaip šviesos detektoriai. Prieš pradėdami detaliau, turėsime suprasti, kaip veikia LDR. LDR (nuo šviesos priklausantis rezistorius), dar vadinamas foto rezistoriumi, yra šviesai jautrus įrenginys. Jo pasipriešinimas sumažėja, kai ant jo patenka šviesa, todėl jis dažnai naudojamas tamsioje ar šviesos detektoriaus grandinėje. Čia patikrinkite įvairias grandines, pagrįstas LDR.
Du LDR yra dedami į dvi saulės kolektoriaus puses, o „ Servo“ variklis naudojamas pasukti saulės bateriją. Servo valdiklis judins saulės kolektorių link LDR, kurio atsparumas bus mažas, ty link LDR, ant kurio krinta šviesa, tokiu būdu jis toliau seks šviesą. Ir jei ant abiejų LDR kris šiek tiek šviesos, tada servo nesisuks. Servo bandys perkelti saulės kolektorių tokioje padėtyje, kur abiejų LDR turi tą patį pasipriešinimo būdą, kur vienodas šviesos kiekis pateks į abu rezistorius ir jei pasikeis vienos iš LDR varža, ji pasisuks mažesnio pasipriešinimo link LDR. Patikrinkite demonstracinį vaizdo įrašą šio straipsnio pabaigoje.
Kaip pastatyti besisukantį saulės kolektorių naudojant „Arduino“:
Norėdami pagaminti prototipą, turėsite atlikti šiuos veiksmus:
1 žingsnis:
Visų pirma paimkite mažą kartono gabalėlį ir padarykite skylę viename gale. Vėliau įkišime varžtą, kad jį sutvirtintume su servo.
2 žingsnis:
Dabar klijais ar karštu pistoletu pritvirtinkite du mažus kartono gabalėlius V formos pavidalu ir uždėkite ant jo saulės kolektorių.
3 žingsnis:
Tada pritvirtinkite apatinę V formos pusę prie kito mažo kartono gabalo galo, kuriame pirmiausia padarėte skylę.
4 žingsnis:
Dabar įsukite varžtą į skylę, kurią padarėte ant kartono plokštės, ir įkiškite per skylę į servo servetėlę. Sraigtas ateina su servovarikliu, kai jį perkate.
5 žingsnis:
Dabar padėkite servo ant kito kartono gabalo. Kartono dydis turėtų būti pakankamai didelis, kad galėtumėte įdėti „Arduino Uno“, duonos lentą ir akumuliatorių.
6 žingsnis:
Klijai padėkite LDR ant dviejų saulės kolektoriaus pusių. Įsitikinkite, kad laidai buvo sulituoti LDR kojelėmis. Vėliau turėsite juos prijungti prie rezistorių.
7 žingsnis:
Dabar padėkite „Arduino“, akumuliatorių ir duonos plokštę ant kartono ir prijunkite, kaip aprašyta toliau esančioje grandinės schemoje ir paaiškinime. Galutinis prototipas parodytas žemiau.
Grandinės schema ir paaiškinimas:
Visa saulės sekimo „Arduino“ projekto schema parodyta žemiau. Kaip matote, grandinė yra labai paprasta ir lengvai pastatoma mažos duonos lentos pagalba.
Šiame „ Arduino“ saulės kolektorių sekimo įrenginyje „Arduino“ maitina 9 V baterija, o visas kitas dalis - „Arduino“. „Arduino“ rekomenduojama įėjimo įtampa yra nuo 7 iki 12 voltų, tačiau ją galite maitinti 6–20 voltų diapazone, kuris yra riba. Pabandykite maitinti per rekomenduojamą įėjimo įtampą. Taigi prijunkite teigiamą akumuliatoriaus laidą prie „Arduino“ „Vin“ ir neigiamą akumuliatoriaus laidą prie „Arduino“ žemės.
Tada prijunkite servo prie „Arduino“. Prijunkite teigiamą servo laidą prie „Arduino“ 5 V, o įžeminimo laidą - prie „Arduino“ žemės, tada „Servo“ signalo laidą prijunkite prie „Arduino“ skaitmeninio kaiščio 9. Servo serveris padės pajudinti saulės kolektorių.
Dabar prijunkite LDR prie „Arduino“. Prijunkite vieną LDR galą prie vieno 10k rezistoriaus galo, taip pat prijunkite šį galą prie „Arduino“ A0, o kitą to rezistoriaus galą prijunkite prie žemės ir kitą LDR galą prijunkite prie 5V. Panašiai prijunkite vieną antrojo LDR galą prie kito 10k rezistoriaus galo, taip pat prijunkite tą galą prie „Arduino“ A1, o kitą šio rezistoriaus galą prijunkite prie žemės ir kitą LDR galą prijunkite prie 5V Arduino.
Vienos ašies saulės seklys naudojant „Arduino“ kodą:
Šio „ Arduino“ pagrindu sukurto „Solar Panel Tracker“ kodą lengva ir gerai paaiškinti komentarais. Pirmiausia įtrauksime servo variklio biblioteką. Tada pradėsime kintamąjį pradinei servo variklio padėčiai. Po to mes inicijuosime kintamuosius skaityti iš LDR jutiklių ir „Servo“.
# įtraukti
Komanda sg90.atach (servopin) nuskaitys „Servo“ iš „Arduino“ 9 kaiščio. Tada nustatome LDR kaiščius kaip įvesties kaiščius, kad galėtume nuskaityti jutiklių vertes ir pagal tai pajudinti saulės kolektorių. Tada nustatome servo variklį 90 laipsnių kampu, kuris yra pradinė servo padėtis.
negaliojanti sąranka () {sg90.attach (servopin); // pritvirtina servo ant kaiščio 9 pinMode (LDR1, INPUT); // LDR kaiščio padarymas kaip įvesties pinMode (LDR2, INPUT); sg90.write (pradinis_pozicija); // Servo judėjimas 90 laipsnių vėlavimu (2000); // delsiant 2 sekundes}
Tada mes perskaitysime vertes iš LDR ir išsaugosime R1 ir R2. Tada mes padarysime skirtumą tarp dviejų LDR, kad atitinkamai pajudėtų servo. Jei skirtumas tarp jų bus lygus nuliui, tai reiškia, kad tiek LDR krenta vienodas šviesos kiekis, kad saulės kolektorius nejudės. Mes naudojome kintamąjį, pavadintą klaida, o jo vertė yra 5, naudojant šį kintamąjį, jei skirtumas tarp dviejų LDR bus mažesnis nei 5, tada servo nejudės. Jei to nepadarysime, servo sukasi toliau. Ir jei skirtumas yra didesnis už klaidos vertę (5), servo serveris pasislinks saulės kolektorių LDR kryptimi, ant kurios krinta šviesa. Žemiau patikrinkite visą kodą ir demonstracinį vaizdo įrašą.
int R1 = analoginis skaitymas (LDR1); // reikšmės nuskaitymas iš LDR 1 int R2 = analogRead (LDR2); // rodmens reikšmė iš LDR 2 int diff1 = abs (R1 - R2); // Skaičiuojant skirtumą tarp LDR int diff2 = abs (R2 - R1); jei ((diff1 <= klaida) - (diff2 <= klaida)) {// jei skirtumas yra paklaidoje, nedarykite nieko} daugiau {if (R1> R2) {pradinė_pozicija = - pradinė_pozicija; // Perkelkite servo link 0 laipsnio}, jei (R1 <R2) {pradinė_pozicija = ++ pradinė_pozicija; // Paslenkite servo padalį 180 laipsnių kampu}}
Taigi taip galite sukurti paprastą „Saulės skydelio“ sekiklį, kuris automatiškai judės link šviesos kaip saulėgrąžos. Čia mes naudojome mažos galios saulės baterijas, kad sumažintume svorį. Jei planuojate naudoti didelės galios arba sunkią saulės bateriją, turite atitinkamai pasirinkti „Servo“ variklį.