You are on page 1of 43

MISKOLCI EGYETEM

GÉPÉSZMÉRNÖKI ÉS INFORMATIKAI KAR

TUDOMÁNYOS DIÁKKÖRI DOLGOZAT

NAPKÖ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
a 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
is
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.
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

Napfény az atmoszféra külső részén

5523 kelvines fekete test sugárzása


(a napfelszín hőmérséklete ~5778 K)

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.

U  RI (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


18650 LI-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.
18650 LI-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

You might also like