MISKOLCI EGYETEM
GÉPÉSZMÉRNÖKI ÉS INFORMATIKAI KAR
TUDOMÁNYOS DIÁKKÖRI DOLGOZAT
N APKÖVETŐ NAPELEM , INTENZITÁSMÉRŐ ADATRÖGZÍTÉSSEL
KÉSZÍTETTE: Boros Rafael Ruben
VILLAMOSMÉRNÖK HALLGATÓ
KONZULENS:
Dr. Bodnár István PhD
egyetemi adjunktus Elektrotechnikai és Elektronikai Intézet
Miskolc, 2017
TARTALOMJEGYZÉK 2
Tartalomjegyzék
TARTALOMJEGYZÉK ... 2
1. BEVEZETÉS ... 3
2. A NAP, NAPELEM, ALKALMAZÁSAI ... 5
2.1. NAP, MINT ENERGIAFORRÁS……….……... 5
2.2. A NAPELEM MŰKÖDÉSE……….……… 6
2.3. OTTHONI NAPELEMES RENDSZEREK, NAPKÖVETŐ NAPELEM ELŐNYEI……….……… 8
3. HARDVERES KIVITELEZÉSEK ... 12
3.1. A LÉPTETŐMOTOR VEZÉRLÉSE………...….…… 12
3.2. MIKROVEZÉRLŐ, ARDUINO……….…...… 16
3.3. ULN2003A TRANZISZTORMEZŐ……….…… 18
3.4. ÁRAMMÉRÉS INA219 INTEGRÁLT ÁRAMKÖRREL……….….…… 19
3.5. FÉNYÉRZÉKELÉS FOTOELLENÁLLÁSSAL……….…… 21
3.6. 18650 LI-ION AKKUMULÁTOR, DC/DC BOOST KONVERTER……..…...….24
4. FÉNYINTENZITÁSMÉRÉS, ADATKIÉRTÉKELÉS ... 25
4.1. FÉNYINTENZITÁSMÉRÉS……….… 25
4.2. ADATRÖGZÍTÉS MEMÓRIAKÁRTYÁRA, ADATOK KIÉRTÉKELÉSE….. 26
BEFEJEZÉS ... 28
IRODALOMJEGYZÉK ... 30
MELLÉKLETEK………31
BEVEZETÉS 3
1. Bevezetés
Napjainkban nélkülözhetetlen a villamos energia, melyből egyre többet fogyasztunk világszerte. A megnövekedett fogyasztásnak köszönhetően nő a légkörben a károsanyag kibocsájtás. A villamos energia nagymértékű előállítása erőművekben történik, ahol általában az energiahordozó fosszilis anyag, vagy az atomerőművekben uránium. Az ilyen erőművek telepítésével továbbra fog nőni a szén-dioxid mennyisége a levegőben, és további környezetkárosító hatása lesz. Ekkor érdemes előtérbe hozni a megújuló energiaforrásokat.
A villamos energia előállítása megújuló energiával azért célszerűbb, mert nem jár károsanyag kibocsájtással. Választhatunk többféle lehetőség közül: szélenergia, geotermikus energia, napenergia, biomassza, vízenergia, stb. Ezek közül a napenergia (napelem) a legcélravezetőbb, mivel háztartásunk villamos energiafogyasztását el tudjuk látni, vagy kisegíteni. Az előállított energia mennyisége erősen függvénye a napsugárzás intenzitásának, illetve a napsugárzás beesési szögének.
Célom, hogy olyan kisebb méretű berendezést készítsek, amely biztosítja a napelem optimális dőlésszögét, így a napfény optimális beesési szögét, melyet egy forgatómechanizmussal meg lehet valósítani. További cél még, hogy a napfény intenzitását kijelzőn megjelenítsem, majd memóriakártyára rögzítse a mért adatokat időhöz rendelve.
Ezt a témát azért tartom időszerűnek, mert egyre több napelemet telepítenek, és sok napelem fix dőlésszöggel van elhelyezve forgatómechanizmus nélkül, ami azt eredményezi, hogy nincs optimalizálva a rendszer a maximális termelhető teljesítményre, így bemutatom a lehetséges hatásfoknöveléseket. Természetesen a
BEVEZETÉS 4
rendszer legsarkalatosabb kérdése az, hogy gazdaságilag hogyan éri meg forgatómechanizmust hozzárendelni a napelemhez.
A téma belenyúlik kicsit az automatizálásba, elektronikába, programozásba is, mivel napjainkban egyre jobban szükség van az automatizált rendszerekre, valamint a forgatómechanizmus ezek nélkül gyakorlatilag nem valósítható meg.
A forgatómechanizmussal nagyobb termelési hatásfokot érhetünk el, az intenzitásmérővel pedig kimérhető, hogy mekkora a pillanatnyi napsugárzás mértéke.
NAP, MINT ENERGIAFORRÁS 5
2. A Nap, napelem, alkalmazásai
2.1. Nap, mint energiaforrás
A Nap, mely elengedhetetlen energiaforrás elektromágneses sugárzást bocsájt ki. Az elektromágneses sugárzást jellemezhetjük az intenzitásával és hullámhosszával. Az 1.1. ábra [1] szemlélteti a napfény intenzitását a hullámhossz függvényében. A látható tartományban a legnagyobb a fény intenzitása, de azon túlmenően elég széles spektrumban van jelen sugárzás. Ami a melegedést okozza, az a távoli infravörös tartományba eső fény elnyelődése által történik. A Föld légköre a beérkező sugárzás egy részét visszaveri, mintegy 49-51%-át, de még így is jelentős energia marad
A napállandó hivatalos értéke: 1.366,1 W·m-2 ±0,37%, azaz minden egyes négyzetméterről, megfelelő eszközzel, ideális esetben 1.366 W teljesítményt lehetne kinyerni a földi légkör felett [2]. A földfelszínen a maximális sugárzás: ~1.000 W·m-
2. Napsütéses órák száma: ~2.100 óra/év. Déli tájolású és 45°-os felületre érkező éves napsugárzás: ~1.370 kWh·m-2. Legnagyobb delelési napmagasság július 21-én: 66°.
Legkisebb delelési napmagasság december 21-én: 19°[3].
A NAPELEM MŰKÖDÉSE 6
1.1. ábra: A Nap spektruma
2.2. A napelem működése
A napelem olyan eszköz, ami fényenergiából állít elő villamos energiát károsanyag kibocsájtása nélkül.
A napelem félvezető eszköz (fényérzékeny dióda), többnyire szilíciumból készül.
Fény hatására a töltéshordozók szétválnak. A dióda alapvetően egy PN (PiN) rétegszerkezetű félvezető eszköz.
A fény (fotonok) hatására szétvált elektron-lyuk párt excitonnak nevezzük. A 100 foton energia hatására szétvált exciton párok száma adja tulajdonképpen a napelem primer hatásfokát.
A NAPELEM MŰKÖDÉSE 7
Az 1.2. ábra szemlélteti a napelemek vázlatos keresztmetszetét és a működés elvét mutatja. A fény (foton) hatására az elektronlyuk-párok szétválnak. A P és N rétegek között elhelyezkedő I (insulation) szigetelőréteg tértöltése megakadályozza, hogy a töltések belül a napelemben azonnal egyesüljenek. Így a felületeken elhelyezett fémrétegen keresztül megindul egy külső áram, amely a fényből származik.
1.2. ábra: A napelem működésének vázlata
A háztartásokban, távvezetékeken váltakozófeszültségű rendszereket használnak, ezért a napelem közvetlenül nem csatlakoztatható rá a hálózatra.
Egyrészt a napelem alacsony feszültségű, másrészt egyenfeszültséget termel. A napelemmel általában akkumulátorokat töltünk, így ha éppen nem süt nap, a tápellátás szünetmentesen jelen van. Az egyenfeszültség átalakítható váltakozó feszültséggé inverter segítségével. Így egy 12 V-os akkumulátorról meg tudjuk táplálni a háztartásban lévő fogyasztókat, melyek 230 V feszültséget igényelnek.
Az 1.3. ábra szemlélteti a napelem helyettesítő kapcsolását, sajnos a napelem nem ideális generátor, van belső ellenállása, ami tovább csökkenti a napelem termelőképességét.
A NAPELEM MŰKÖDÉSE 8
1.3. ábra: A napelem helyettesítő kapcsolása
2.3. Otthoni napelemes rendszerek, napkövető napelem előnyei
Az otthonunk villanyszámlája nagymértékben csökkenthető napelemes rendszer alkalmazásával, extrém esetben többet termelhetünk, mint amennyit fogyasztunk.
A napelemes rendszer főbb részei:
Napelem
Akkumulátortöltő
Akkumulátor
DC/AC inverter
Oda-vissza fogyasztásmérő
A napelemet általában a ház tetején helyezik el, vagy ritkábban az épület mellett állványon. Ha épület mellett állványon helyezzük el, akkor érdemes napkövető rendszerrel ellátni, melyet az 1.4. ábra [4] szemléltet.
OTTHONI NAPELEMES RENDSZEREK, NAPKÖVETŐ NAPELEM ELŐNYEI 9
1.4. ábra: A napkövető napelem forgatómechanizmussal
Az épület tetején ezt a konstrukciót elhelyezni nagyon körülményes lenne, mert magas, nagyobb szelek, viharok esetén nagy a sérülés veszélye. Ha magasabban lenne, mint a háztető, akkor a villámcsapás esélye is megnőne. Valamint a plusz súlyt sem biztos, hogy elbírja a háztető.
A napelemet kétfajta módon lehet forgatni: egy tengely, két tengely mentén.
Az egytengelyes forgatást az 1.5. ábra szemlélteti, míg a kéttengelyes forgatást az 1.6. ábra.
1.5. ábra: Egytengelyes forgatás
Az egytengelyes forgatásnál csak a dőlésszöget tudjuk módosítani, a tájolás fix, a kéttengelyes forgatásnál viszont a tájolást is tudjuk változtatni.
Az egytengelyes forgatással a fixen elhelyezett napelemhez képest a többlettermelés: 25-30%. Kéttengelyes forgatással pedig: 35-45%.
OTTHONI NAPELEMES RENDSZEREK, NAPKÖVETŐ NAPELEM ELŐNYEI 10
1.6. ábra: Kéttengelyes forgatás
A napelem nem feltétlenül a Nap felé forog, mert a napsugárzás visszaverődik a talajról, a levegőről, felhőkről, tárgyakról, épületekről, stb. Így a napelem a legintenzívebb fény felé fog elfordulni.
A legintenzívebb fényt kétféle módon követhetjük: asztronómikus és fényszenzoros követéssel. Az asztronómikus követéssel a Nap pályáját előre kiszámított nyomvonalon követi, óramű pontossággal, fokozatosan követve a Nap pályáját az égen. A fényszenzoros követéssel a cél a legfényesebb pont megtalálása az égen, és arra merőleges irányba fordítani a napelemes felületet. A fényszenzoros követés az asztronómikushoz képest akár 20%-al jobb hatásfokú.
A napelemekre az akkumulátortöltőt csatlakoztatva tölthetjük az akkumulátorokat, amikor a fogyasztók felvett teljesítménye kisebb, mint a termelt teljesítmény. A többlet energiát akkumulátorokban eltárolva később lehetőségünk van a napsugárzás hiányakor is energiát szolgáltatni a fogyasztóknak.
Az egyenáramú hálózatot, mely a napelem és az akkumulátor oldalán van át kell alakítani váltakozó árammá. Biztosítani kell az 50 Hz frekvenciájú 230V feszültségű szinuszos energiát.
A váltakozó áramú hálózatra oda-vissza fogyasztásmérőt kell telepíteni.
Általában egyirányú fogyasztásmérőket alkalmaznak, mivel nem szoktunk otthon többlet energiát termelni a hálózatra. Napelemek alkalmazásakor pedig előfordulhat, hogy több energiát termelünk, mint fogyasztunk, ekkor mi táplálunk a hálózatra
OTTHONI NAPELEMES RENDSZEREK, NAPKÖVETŐ NAPELEM ELŐNYEI 11
energiát. Egy akkumulátor nélküli egyszerűsített hálózatot szemléltet az 1.7. ábra [5].
1.7. ábra: Egyszerűsített napelemes hálózat
A LÉPTETŐMOTOR VEZÉRLÉSE 12
3. Hardveres kivitelezések
3.1. A léptetőmotor és vezérlése
A napelem forgatómechanizmusához célszerű léptetőmotorokat használni, mivel kis léptékekben forgatható a tengelye.
A léptetőmotor digitális jellel vezérelhető kommutátor, kefe nélküli egyenáramú motor. Ennek köszönhetően csak a csapágy minősége határozza meg az élettartamot.
Kétfajta típusú léptetőmotor van: unipoláris, bipoláris, melyet az 1.8. ábra szemléltet [6].
Az unipoláris léptetőmotor 5 vagy 6, a bipoláris 4 kivezetéssel rendelkezik.
Az 5 és 6 kivezetéses motorok között az a különbség, hogy a tápfeszültséget, melyet a K pólusra kötnek, összekötik közös potenciálra.
A léptetőmotorok leglényegesebb paraméterei a forgatónyomaték és lépésszám. A motor lépésszáma azt jelenti, hogy egy körülforduláshoz (360°) hány lépést kell megtennie a motor tengelyének.
1.8. ábra: Léptetőmotor típusai
A LÉPTETŐMOTOR VEZÉRLÉSE 13
Ha 360°-ot elosztjuk a lépésszámmal, akkor megkapjuk, hogy egy lépés alatt hány fokot fordul el a motor tengelye, amit fogaskerék áttétellel még tovább csökkenthetünk.
A léptetőmotor vezérlésének három lehetséges módja van:
Teljes léptetés (egy tekercs bekapcsolásával)
Fél léptetés (egy-kettő tekercs bekapcsolásával)
Teljes léptetés (két tekercs bekapcsolásával)
A forgatómechanizmus két tengely irányban képes forgatni, ehhez kettő darab 28BYJ-48 típusú léptetőmotort alkalmazok, mely unipoláris és 5 kivezetése van, melynek a kapcsolási rajzát az 1.9. ábra szemlélteti. Az ábrán a körben elhelyezett nyíl a motor tengelyét jelöli, körülötte helyezkednek el a tekercsek, melyek középmegcsapolására a tápfeszültség csatlakozik.
Az öt kivezetés:
+5V (piros)
1 (kék)
2 (rózsaszín)
3 (sárga)
4 (narancssárga)
A LÉPTETŐMOTOR VEZÉRLÉSE 14
1.9. ábra: 28BYJ-48 típusú léptetőmotor kapcsolási rajza
A 28BYJ-48 típusú léptetőmotor tengelyének körbeforgásához (360°
elforduláshoz) 2048 lépéshez van szükség. E nagy szám az 1/64-es fogaskerék áttételnek köszönhető. Áttétel nélkül 32 lépésben (11,25°/lépés) körbefordulna, így eléggé durva lépésekben lehetne szabályozni, ami finom szabályozáshoz nem engedhető meg.
A motornak meglehetősen kicsi a nyomatéka, ezért célszerű egyszerre két tekercs bekapcsolásával, teljes léptetés módban vezérelni. Így a legnagyobb a tengely nyomaték leadási képessége. Ez a vezérlés sokkal jobban melegíti a tekercseket, de a napelemeket nem kell folyamatosan forgatni, így szakaszos üzemként tekinthető.
A motor tengelyének elfordulását úgy kell kivitelezni, hogy a tekercseket megfelelő sorrendben kapcsolgatjuk. A teljes léptetés metódusait fogom bemutatni.
Az 1.10. ábra a teljes léptetést (egytekercses módban) ábrázolja.
A LÉPTETŐMOTOR VEZÉRLÉSE 15
1.10. ábra: Teljes léptetés egy tekercs bekapcsolásával
Az 1.11. ábra szemlélteti a teljes léptetést (kéttekercses módban). Ezzel a léptetéssel érhető el a legnagyobb forgatónyomaték, de ahogy említettem, ez nagyobb tekercsmelegedést fog előidézni, csak szakaszos üzemre lehet használni.
1.11. ábra: Teljes léptetés két tekercs bekapcsolásával
A világoskék vonalak a digitális jelszinteket jelentik az időfüggvényében. A világoskék szaggatott vonalak a digitális jelszint magas (HIGH) értékét jelentik.
A forgatómechanizmusnak, intenzitásmérőnek automatikusan, mikrovezérlővel kell működnie. Napjainkban a mikrovezérlők nagyon elterjedtek, mivel sokféle programozási nyelven lehet őket programozni, olcsó, kisméretű, kvázi nagysebességű.
A mikrovezérlőnek az alábbi feladatokat kell ellátnia:
Napelem által termelt áramerősség mérése, terhelő ellenálláson keresztül
A LÉPTETŐMOTOR VEZÉRLÉSE 16
A mért áramerősségből igazságfüggvényen keresztül kijelzőn megjelenítve a fényintenzitást [W/m2] mértékegységben kijelezve
A külső hőmérsékletet, relatív páratartalmat jelezze ki
Pontos idő mérése
Memóriakártyára kimenteni a pillanatnyi fényintenzitást időponthoz kötve, így később számítógépen excelbe importálva grafikonokat készíthetünk a mért adatokból
A léptetőmotorok vezérlése
Fotoellenállás segítségével megállapítani, hogy merre kell forgatni a napelemeket, azaz merre van a Nap az égen
A napelem által termelt egyenfeszültségre terhelő ellenállást csatlakoztatva a körben áram indul meg. Ezt az áramot méri majd a mikrovezérlő segédelektronikán keresztül, mivel a mikrovezérlő közvetlenül nem képes áram mérésére.
A napelemre nem lenne muszáj terhelő ellenállást kötni, rövidzárüzemben is mérhető lenne áram, de ez az üzemmód a napelem hatásfokcsökkenését felgyorsítaná, így nem célszerű rövidzárüzemben használni.
3.2. Mikrovezérlő, Arduino
A mikrovezérlő, vagy mikrokontroller egy integrált áramkör, mely elektronikus úton programozható. Legfőbb részei a: Központi Vezérlő Egység (CPU), memóriák, Aritmetikai Logikai Egység (ALU), EEPROM (háttértárként memória), flash memória (itt tárolódik a végrehajtandó program), perifériák (I2C, Soros port kommunikáció, időzítők, A/D átalakítók, stb).
MIKROVEZÉRLŐ, ARDUINO 17
A mirkovezérlő legkedvezőbb tulajdonsága, hogy a flash memóriát akár tízezerszer is újra programozhatjuk, így elég sokszor módosíthatjuk a programunkat, és kipróbálhatjuk.
A megvalósítandó célokra az Atmel ATmega 2560 mikrovezérlő alkalmazkodik gazdaságosan. Az összetett rendszer megkívánja a hosszabb programírást, nagyobb memória méretű áramköröket, mivel sok globális változót kell deklarálni a programírásakor. Ez a dinamikus memóriát nagymértékben fogyasztja.
Az ATmega 2560-as áramkörnek 8192 bájt méretű a dinamikus memóriája, ami alkalmas a kitűzött célokhoz.
Ez a mikrovezérlő önmagában külső elemek nélkül nem működőképes.
Kvarcokat, kondenzátorokat, Soros port – USB illesztőt, feszültség stabilizátort, csatlakozókat, stb igényel. Ezért célszerű, és gazdaságosabb az Arduino cég által készített kártyákat használni, amin minden fontos elem megtalálható, készen áll a használatra.
Az Arduino cég saját nyitott forráskódú fejlesztőkörnyezetet is készített, ahol C, C++ nyelven írhatjuk a programunkat a mikrovezérlőre és gombnyomással fel is tölthetjük rá.
Az általam használt Arduino Mega 2560 az 1.12. ábrán látható.
1.12. ábra: Arduino Mega 2560 panel
A panel középén látható maga a mikrovezérlő. A mikrovezérlő kivezetései csatlakozókra vannak kötve. Található a panelen még tápfeszültség csatlakozó,
ULN2003A TRANZISZTORMEZŐ 18
USB csatlakozó, állapotjelző LED-ek, kvracok, feszültségstabilizátor, RESET gomb, stb.
3.3. ULN2003A tranzisztormező
A léptetőmotort közvetlenül nem kapcsolhatjuk rá a mikrovezérlő kimeneteire, mivel nagy áramot vesznek fel a tekercsei, a mikrovezérlő tönkre menne. A mikrovezérlő kimenete 20 mA áramot képes tartósan elviselni. Így célszerű tranzisztort alkalmazni, mely biztosítja, hogy a mikrovezérlő kimenetén mA nagyságrendű áram, a léptetőmotor tekercsén 100 mA nagyságrendű áram legyen.
Amikor a léptetőmotor tekercsét kikapcsoljuk, akkor a tekercs önindukciós együtthatója miatt a tápfeszültségtől sokkal nagyobb feszültség indukálódik. Ennek kiküszöbölésére szabadonfutó diódákat kell beépíteni. Ezek a diódák az ULN2003A integrált áramkör belsejében megtalálhatók, melyek a COM bemenetre csatlakoznak, erre kell a tápfeszültséget kötni, tulajdonképpen túlfeszültség levezető diódaként működik.
Az 1.13. ábra [7] az ULN2003A Darlington tranzisztormező blokksémáját mutatja. Darlington kapcsolás azért szükséges, hogy pici bázisáram révén nagy kollektor áramot tudjunk vezérelni, azaz nagy erősítést (β) lehet létrehozni.
1.13. ábra: ULN2003A integrált áramkör blokksémája
ULN2003A TRANZISZTORMEZŐ 19
A blokkséma bal oldalán található a bemenet (Input B), mely a mikrovezérlő kimenetére csatlakozik. Jobb oldalon a kimenetre (Output C) a léptetőmotor tekercsét kell csatlakoztatni. Mivel egy léptetőmotornak négy tekercse van, ezért négy bemenet, négy kimenet szükséges az ULN2003A integrált áramkörből. A kettő léptetőmotor nyolc digitális kimenetet felemészt a mikrovezérlő lábszámából, nyolc ki-bemenetet az ULN2003A integrált áramkörből, melynek sajnos csak hét kimenete, bemenete van. Így kettő darab integrált áramkör szükséges. Az 1.14. ábra az integrált áramkör egyszerűsített blokksémát vázolja.
1.14. ábra: ULN2003A integrált áramkör egyszerűsített blokksémája
3.4. Árammérés INA219 integrált áramkörrel
Az ATmega2560-as mikrovezérlőben 10 bites A/D átalakító található. Az A/D átalakító (Analog to Digital) az analóg bemeneti jelet digitális jellé alakítja, melyekhez értékeket rendel. 210=1.024, azaz 1024 részre bontja a mérendő jelet. A tápfeszültség 5 V, ami azt jelenti, hogy 5V/1.024=4,88 mV a pontosság. Az intenzitás
ÁRAMMÉRÉS INA219 INTEGRÁLT ÁRAMKÖRREL 20
értéke, ha eléri a maximális 1.000 W/m2 értéket, és ezt 1.024-el elosztjuk, akkor 0,94 W/m2 lenne a pontosság. Ezt a pontosságot javítani lehet az INA219 integrált áramkörrel.
Árammérési célokra az INA219 integrált áramkör jól alkalmazható. A mérendő árammal sorba kell kötni egy kis értékű ellenállást, mely sönt ellenállásként funkcionál.
Ha áram folyik az ellenálláson, akkor feszültségesés következik be, ezt a feszültséget lehet mérni. Ohm törvény alkalmazásával (2.1. képlet) az árammérést vissza vezethetjük egy ellenálláson keresztül feszültség mérésre.
I R
U (2.1.)
Fix ellenállás értéke ismert, a feszültséget megmérve kiszámítható az áram.
Az INA219 integrált áramkörben 12 bites A/D átalakító található, ami 4.096 egységere bontja a mérendő feszültséget, így sokkal pontosabb, mint a mikrovezérlő 10 bites A/D átalakítója. 1.000 W/m2 maximális fényintenzitást 4.096 részre osztva 0,24 W/m2 lesz a billegés.
Készen vásárolva az INA219 modul 0,1 Ω sönt ellenállással van szerelve, és a legpontosabb mérésre beállítva 400 mA a méréshatár. 1 Ω sönt ellenállással a méréshatár 40 mA-ra csökken, 2 Ω sönt ellenállással 20 mA-ra csökken. Így már a napelem által leadott áramot lehet mérni, mert az általam használt napelem csak milliamper nagyságrendben képes áramot leadni. Gyári adatai a napelemnek:
P = 0,55 W, U = 9 V.
FÉNYÉRZÉKELÉS FOTOELLENÁLLÁSSAL 21
3.5. Fényérzékelés fotoellenállással
A fotoellenállás egy kadmium szulfid (CdS) ellenálláscsík, amelynek az ellenállása a ráeső fény intenzitásától függően változik. Sötétben az ellenállása nagy, világosban pedig alacsony [8]. Az 1.15. ábra a fotoellenállást szemlélteti.
1.15. ábra: Fotoellenállás
Az 1.16. ábra szerinti elrendezésben lehetőségünk van meghatározni a legintenzívebb fény irányát. Négy darab fotoellenállás szükséges hozzá, ezek közé egy kereszt alakú testet kell elhelyezni. A nyíl a beeső fénysugarat szimbolizálja. A jobb felső fotoellenállás nagyobb fényintenzitást kap, a bal alsó fotoellenállás pedig a legkevesebbet, ott árnyék lesz.
FÉNYÉRZÉKELÉS FOTOELLENÁLLÁSSAL 22
1.16. ábra: Fényirány meghatározása fotoellenállásokkal
A mikrovezérlőre mind a négy fotoellenállást rá kell kötni, differenciálmérést kell alkalmazni. A mikrovezérlő analóg bemeneteire (A8, A9, A10, A11) csatlakoznak a fotoellenállások az 1.17. ábra szerint. A kapcsolási rajz az EasyEDA fejlesztőkörnyezetben készült. Külön-külön megmérjük a feszültségeket mind a négy ellenálláson.
1.17. ábra: Kapcsolási rajz
18650LI-ION AKKUMULÁTOR,DC/DC BOOST KONVERTER 23
Négy értéket képzünk:
Felső átlagos érték (aef)
Alsó átlagos érték (aea)
Bal oldali átlagos érték (aeb)
Jobb oldali átlagos érték (aej)
A megírt programban a zárójelben lévő neveken van elnevezve, melyet az 1.18. ábra mutat.
1.18. ábra: Programrész, a négy képzett érték
Átlagokat számolunk, majd ezekből az átlagokból képezünk kettő új értéket: a felső-alsó különbséget és a bal-jobb különbséget. Ezeket az értékeket vizsgálva egy referencia értékhez képest (tolerancia) el tudjuk dönteni, hogy szükség van-e a napelem forgatására. Amint ezek az értékek kisebbek, mint a tolerancia érték, azaz kicsi a különbség, akkor nincs szükség forgatni a napelemet. Attól függően, hogy ezek a különbség értékek pozitívak, vagy negatívak, eldönthető, hogy jobbra, vagy balra kell a motor tengelyét forgatni.
18650LI-ION AKKUMULÁTOR,DC/DC BOOST KONVERTER 24
3.6. 18650 Li-ion akkumulátor, DC/DC boost konverter
A tápellátást egy darab lítium-ion cella szolgáltatja (megközelítőleg 1.500 mAh kapacitású), mely DC/DC boost konverterre van rákötve. A lítium-ion akkumulátor feszültsége feltöltött állapotban 4,15 V, lemerült állapotban 2,9 V (eddig szabad meríteni a károsodás elkerülése érdekében). A mikrovezérlős rendszer stabil +5 V tápellátást igényel.
A DC/DC boost konverter lényege, hogy a rákapcsolt egyenfeszültséget, ami jelen esetben 2,9-4,15 V, a beállított 5 V értékre növelje, természetesen némi vesztességgel (90% hatásfokkal működik). A lítium-ion cella méretét a 18650 szám jelöli, 18 mm átmérőjű, 65,0 mm hosszú.
Az általam használt DC/DC boost konverter típusa: MT3608, melyet az 1.22.
ábra jelenít meg. A potenciométerrel állítható be a kívánt kimeneti feszültség. A kimeneti feszültség nem lehet kisebb, mint a bemeneti feszültség, csak egyenlő, vagy nagyobb azzal.
1.22 ábra: MT3608 DC/DC boost konverter
FÉNYINTENZITÁSMÉRÉS 25
4.Fényintenzitásmérés, adatkiértékelés
4.1. Fényintenzitásmérés
A fényintenzitásmérés meghatározásához módosítást kell elvégezni a gyári árammérő áramkörön, valamint a napelemmel olyan értékű ellenállást kell sorba kötni, hogy maximális 1.000 W/m2 fényintenzitásnál adja le azt az áramot, ami az árammérő modul (INA219) méréshatár legfelső értékéhez tartozik. A korábban leírt 2.7. pontban ismertettem a söntellenállás megválasztását. A napelemmel pedig három darab 470 Ω-os
ellenállást kötöttem sorba, ehhez alkalmazkodtam program íráskor, konstansokkal szoroztam a mért áramot, melyet az 1.19. ábra mutat.
1.19. ábra: Az intenzitásmérés részlete a programból
A 11.7 konstans érték úgy jött létre, hogy valós fényintenzitásmérőhöz kalibráltam be az általam épített készüléket. Valamint debugolás érdekében kiszámoltam egy százalékos értéket. A programban a current_mA változó 0-400-ig kap értéket, mert az INA219 áramkör 0-400 mA-ig mér a gyári sönt ellenállással (0,1 Ω). A 400 mA-t el kell osztani 20-al, így 0-20 mA-ig fog mérni, persze ha a söntellenállást is kicseréljük, én estemben 2 Ω. 0,25-el megszorozva az áramot
ADATRÖGZÍTÉS MEMÓRIAKÁRTYÁRA 26
megkapom az áram százalékos értékét, majd ezt szoroztam 11.7-el, ami a kalibrálásból jött ki.
4.2. Adatrögzítés memóriakártyára, adatok kiértékelése
A mikrovezérlőre kötött SD memóriakártyamodul segítségével adatot menthetünk le az SD kártyára. Szöveges (.txt) fájlformátumot hozunk létre, ebben megtalálható a pillanatnyi időpont és a pillanatnyi fényintenzitás értéke. Ezeket később kiolvashatjuk, akár Excel programban grafikonokat készíthetünk belőle. Az 1.20. ábrán látható adatokból készíthető olyan grafikon, melyet az 1.21. ábra szemléltet. A grafikon vízszintes tengelyén az idő, a függőleges tengelyén a fényintenzitás látható. Ezek az adatok csak demo jellegűek, nem mutatnak valós fényintenzitás mérést.
ADATRÖGZÍTÉS MEMÓRIAKÁRTYÁRA 27
1.20. ábra: Rögzített adatok
1.21 ábra: Rögzített adatok diagram
BEFEJEZÉS 28
Befejezés
Összességében elmondható, hogy a napkövető napelem kisebb méreteknél nem gazdaságos, nagyobb méretekben viszont 20%-al nagyobb termelhető teljesítményt tudunk elérni. A fényintenzitásmérő viszonylag pontos értékeket mutat, nagymértékben látszik a kijelzőn, hogy a Nap felé beforgatott napelem sokkal nagyobb áramot ad le.
Ezt a feladatot sikerült kivitelezni sikeresen, viszont a berendezésen a jövőben alakítani kell, mert a fényérzékelés nem a legoptimálisabb, a 100 kΩ értékű ellenállások a fotoellenállásokra kötve nem ideális értékűek, így nem mindig forog a legerősebb fény felé, főleg erősebb napsütéskor, a megírt programon változtatni kell, hogy optimálisabb legyen a fényérzékelés.
A mintegy 380 soros program megfelelően vezérli az áramköröket, léptetőmotorokat. A mikrovezérlő tehát alkalmas ezen feladat elvégzésére, kicsi áramfogyasztása is jól alkalmazkodik ehhez a napelemes rendszerhez.
További jövőben megvalósítandó dolog, hogy a napelem a Li-ion cellát töltse, ehhez DC/DC buck konvertert ajánlott majd használni, vagy L7805 feszültségstabilizátor integrált áramkör, majd erre kötni a Li-ion cella töltő integrált áramkört. Ezek az áramkörök viszont nagy veszteségekkel működnek, nem jó hatásfokú.
Sajnos ez a rendszer, dolgozat tavasszal készült el, amikor nem volt erős napsütés, borús idő volt, ezért nem lehetett erős napsugárzást, fényintenzitást mérni.
A rendszert sajnos csak lámpafénynél tudtam kalibrálni, hagyományos wolfram
BEFEJEZÉS 29
izzószálas villanykörténél, ott is csak 60-70 W/m2 fényintenzitást mértem.
Napközben, ettől nem volt több a kinti fényintenzitás borús időben. Ezek a mérések viszont nagy tapasztalatot adtak számomra, mert a LED-es világítás mellett nem kaptam szinte semmilyen fényintenzitást, valószínűleg a keskeny fényspektruma miatt, kicsi teljesítménye miatt, valamint a napelem nem a Nap felé fordult sokszor, hanem tárgyak felé, égbolt felé, ahonnan erősebb volt a fényvisszaverődés valószínűleg, nagy volt az albedo sugárzása.
A mellékletekben megtalálhatóak: a mikrovezérlőre megírt program, kapcsolási rajz, fényképek a napkövető rendszerről
IRODALOMJEGYZÉK 30
Irodalomjegyzék
[1] http://nagysandor.eu/AsimovTeka/blackbody_physlet/solar_spectrum_hu.png (letöltés éve: 2017)
[2] http://www.naplopo.hu/tudastar/szakcikkeink-hasznos-irasaink/28-
magyarorszagra-vonatkozo-fontosabb-napsugarzasi-adatok (letöltés éve: 2017) [3] VÉGHELY TAMÁS:Napelemek és napelemrendszerek szerelése.BUDAPEST,2013 [4] https://debrecenbar.com/2012/11/30/napkoveto-napelemes-rendszer-pro-es-kontra
(letöltés éve: 2017)
[5] http://www.solarside.hu/wp-content/uploads/2010/09/rajz.jpg (letöltés éve: 2017) [6] http://qtp.hu/elektro/leptetomotor_mukodese.php (letöltés éve: 2017)
[7] www.ti.com/jp/lit/pdf/slrs027 (letöltés éve: 2017)
[8] http://www.hobbielektronika.hu/cikkek/willi_v20_robotika_es_avr_
kezdoknek.html?pg=4 (letöltés éve: 2017)
1.MELLÉKLET 31
Mellékletek
1. melléklet
#include <SPI.h>
#include <Wire.h>
#include <SD.h>
#include <SPI.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <Adafruit_INA219.h>
#include "RTClib.h"
File myFile; //objektum létrehozás RTC_DS3231 rtc;
Adafruit_INA219 ina219;
#define OLED_RESET 0
Adafruit_SSD1306 display(OLED_RESET);
#define tajolas_1 9
#define tajolas_2 10
#define tajolas_3 11
#define tajolas_4 12
#define doles_1 5
#define doles_2 6
#define doles_3 7
#define doles_4 8
#define BF A11
#define BA A10
#define JF A9
#define JA A8
1.MELLÉKLET 32
#define pinCS 53
int BF_ertek, BA_ertek, JF_ertek, JA_ertek;
float current_mA = 0;
float current_ertek = 0;
float current_szazalek = 0;
int intenzitas = 0;
unsigned short int poz_tajolas = 1;
unsigned short int poz_doles = 1;
int aef, aea, aej, aeb;
int diff_fuggoleges, diff_vizszintes;
int tolerancia = 6;
int kalibralo;
int program = 0;
void setup() {
Serial.begin(115200);
Serial.setTimeout(10);
pinMode(tajolas_1, OUTPUT);
pinMode(tajolas_2, OUTPUT);
pinMode(tajolas_3, OUTPUT);
pinMode(tajolas_4, OUTPUT);
pinMode(doles_1, OUTPUT);
pinMode(doles_2, OUTPUT);
pinMode(doles_3, OUTPUT);
pinMode(doles_4, OUTPUT);
pinMode(pinCS, OUTPUT);
ina219.begin();
ina219.setCalibration_16V_400mA();
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
display.clearDisplay();
if (SD.begin()) {
display.clearDisplay();
display.setTextSize(3);
display.setTextColor(WHITE);
1.MELLÉKLET 33
display.setCursor(20, 20);
display.println("SD OK");
display.display();
Serial.println("SD kartya keszen all");
delay(2000);
} else {
display.clearDisplay();
display.setTextSize(2);
display.setTextColor(WHITE);
display.setCursor(0, 20);
display.println("SD ERROR");
display.display();
Serial.println("SD kartya inicialasi hiba");
delay(2000);
return;
} //SD end } // Setup end
void loop() { program++;
DateTime now = rtc.now();
JF_ertek = analogRead(JF);
JA_ertek = analogRead(JA);
BF_ertek = analogRead(BF);
BA_ertek = analogRead(BA);
aef = (JF_ertek + BF_ertek) / 2;
aea = (JA_ertek + BA_ertek) / 2;
aeb = (BF_ertek + BA_ertek) / 2;
aej = (JF_ertek + JA_ertek) / 2;
diff_fuggoleges = aef - aea;
diff_vizszintes = aeb - aej;
if (diff_fuggoleges < tolerancia) { coiloff_doles();
}
1.MELLÉKLET 34
if (diff_vizszintes < tolerancia) { coiloff_tajolas();
}
if (-1 * tolerancia > diff_fuggoleges || diff_fuggoleges > tolerancia) // ha a kulonbseg nem a toleranciaban van, akkor a dolesszoget valtoztatjuk
{
if (aef > aea) { jobbra_doles(1, 10);
}
else if (aef < aea) { balra_doles(1, 10);
} }
if (-1 * tolerancia > diff_vizszintes || diff_vizszintes > tolerancia) { if (aeb > aej) {
jobbra_tajolas(1, 10);
}
else if (aeb < aej) { balra_tajolas(1, 10);
} }
if (program % 100 == 0) {
current_mA = ina219.getCurrent_mA() / 20.0; //20mA méréshatár beállítása, 2ohm ellenállással, 0,005mA pontosság
current_ertek = ina219.getCurrent_mA(); //400mA értékig ad vissza current_szazalek = 0.25 * current_ertek; //400mA*0,25
intenzitas = current_szazalek * 11.7;
if (current_mA < 0) { current_mA = 0;
}
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(0, 10);
display.println(current_mA); display.setCursor(35, 10); display.println("mA");
1.MELLÉKLET 35
display.setCursor(0, 20);
display.println(current_szazalek); display.setCursor(40, 20); display.println("%");
display.setCursor(0, 30);
display.println(intenzitas);
display.setCursor(45, 30);
display.println("W/m");
display.setCursor(64, 27);
display.println("2");
display.display();
Serial.println("---");
Serial.println(JF_ertek);
Serial.println("****");
Serial.println(JA_ertek);
Serial.println("****");
Serial.println(BF_ertek);
Serial.println("****");
Serial.println(BA_ertek);
Serial.println("---");
Serial.println("");
program = 0;
}
if (now.second() % 60 == 0) {
myFile = SD.open("adat.txt", FILE_WRITE);
if (myFile) {
myFile.print(now.hour());
myFile.print(":");
myFile.print(now.minute());
myFile.print(":");
myFile.print(now.second());
myFile.print(",");
myFile.println(intenzitas);
myFile.close();
// Serial.println("Adat kiirva");
display.setCursor(60, 0);
display.println("Data Saved");
1.MELLÉKLET 36
display.display();
delay(999);
} else {
Serial.println("Hiba a fajl irasakor");
display.setCursor(60, 0);
display.println("ERROR");
display.display();
delay(2500);
} }
} // loop vege
void jobbra_tajolas(int lepesszam, int kesleltetes) { for ( unsigned int i = 0; i < lepesszam; i++) { switch (poz_tajolas) {
case 1:
digitalWrite(tajolas_1, HIGH);
digitalWrite(tajolas_2, HIGH);
digitalWrite(tajolas_3, LOW);
digitalWrite(tajolas_4, LOW);
poz_tajolas = 2;
break;
case 2:
digitalWrite(tajolas_1, LOW);
digitalWrite(tajolas_2, HIGH);
digitalWrite(tajolas_3, HIGH);
digitalWrite(tajolas_4, LOW);
poz_tajolas = 3;
break;
case 3:
digitalWrite(tajolas_1, LOW);
digitalWrite(tajolas_2, LOW);
digitalWrite(tajolas_3, HIGH);
digitalWrite(tajolas_4, HIGH);
poz_tajolas = 4;
break;
1.MELLÉKLET 37
case 4:
digitalWrite(tajolas_1, HIGH);
digitalWrite(tajolas_2, LOW);
digitalWrite(tajolas_3, LOW);
digitalWrite(tajolas_4, HIGH);
poz_tajolas = 1;
break;
} //switch vége delay(kesleltetes);
}//for vege } // jobbra vége
void coiloff_tajolas() {
digitalWrite(tajolas_1, LOW);
digitalWrite(tajolas_2, LOW);
digitalWrite(tajolas_3, LOW);
digitalWrite(tajolas_4, LOW);
} // tekercs kikapcsolás vége
void balra_tajolas(int lepesszam, int kesleltetes) { for (int i = 0; i < lepesszam; i++) {
switch (poz_tajolas) { case 1:
digitalWrite(tajolas_1, HIGH);
digitalWrite(tajolas_2, LOW);
digitalWrite(tajolas_3, LOW);
digitalWrite(tajolas_4, HIGH);
poz_tajolas = 2;
break;
case 2:
digitalWrite(tajolas_1, LOW);
digitalWrite(tajolas_2, LOW);
digitalWrite(tajolas_3, HIGH);
digitalWrite(tajolas_4, HIGH);
1.MELLÉKLET 38
poz_tajolas = 3;
break;
case 3:
digitalWrite(tajolas_1, LOW);
digitalWrite(tajolas_2, HIGH);
digitalWrite(tajolas_3, HIGH);
digitalWrite(tajolas_4, LOW);
poz_tajolas = 4;
break;
case 4:
digitalWrite(tajolas_1, HIGH);
digitalWrite(tajolas_2, HIGH);
digitalWrite(tajolas_3, LOW);
digitalWrite(tajolas_4, LOW);
poz_tajolas = 1;
break;
}
delay(kesleltetes);
}
} // ******************************
void jobbra_doles(int lepesszam, int kesleltetes) { for (int i = 0; i < lepesszam; i++) {
switch (poz_doles) { case 1:
digitalWrite(doles_1, HIGH);
digitalWrite(doles_2, HIGH);
digitalWrite(doles_3, LOW);
digitalWrite(doles_4, LOW);
poz_doles = 2;
break;
case 2:
digitalWrite(doles_1, LOW);
digitalWrite(doles_2, HIGH);
digitalWrite(doles_3, HIGH);
1.MELLÉKLET 39
digitalWrite(doles_4, LOW);
poz_doles = 3;
break;
case 3:
digitalWrite(doles_1, LOW);
digitalWrite(doles_2, LOW);
digitalWrite(doles_3, HIGH);
digitalWrite(doles_4, HIGH);
poz_doles = 4;
break;
case 4:
digitalWrite(doles_1, HIGH);
digitalWrite(doles_2, LOW);
digitalWrite(doles_3, LOW);
digitalWrite(doles_4, HIGH);
poz_doles = 1;
break;
} //switch vége delay(kesleltetes);
}
} // jobbra vége
void coiloff_doles() {
digitalWrite(doles_1, LOW);
digitalWrite(doles_2, LOW);
digitalWrite(doles_3, LOW);
digitalWrite(doles_4, LOW);
} // tekercs kikapcsolás vége
void balra_doles(int lepesszam, int kesleltetes) { for (int i = 0; i < lepesszam; i++) {
switch (poz_doles) { case 1:
digitalWrite(doles_1, HIGH);
1.MELLÉKLET 40
digitalWrite(doles_2, LOW);
digitalWrite(doles_3, LOW);
digitalWrite(doles_4, HIGH);
poz_doles = 2;
break;
case 2:
digitalWrite(doles_1, LOW);
digitalWrite(doles_2, LOW);
digitalWrite(doles_3, HIGH);
digitalWrite(doles_4, HIGH);
poz_doles = 3;
break;
case 3:
digitalWrite(doles_1, LOW);
digitalWrite(doles_2, HIGH);
digitalWrite(doles_3, HIGH);
digitalWrite(doles_4, LOW);
poz_doles = 4;
break;
case 4:
digitalWrite(doles_1, HIGH);
digitalWrite(doles_2, HIGH);
digitalWrite(doles_3, LOW);
digitalWrite(doles_4, LOW);
poz_doles = 1;
break;
}
delay(kesleltetes);
} }
2.MELLÉKLET 41
2. melléklet
3.MELLÉKLET 42
3. melléklet
3.MELLÉKLET 43