Turinys:

ARDUINO PWM SOLAR CHARGE CONTROLLER (V 2.02): 25 žingsniai (su paveikslėliais)
ARDUINO PWM SOLAR CHARGE CONTROLLER (V 2.02): 25 žingsniai (su paveikslėliais)

Video: ARDUINO PWM SOLAR CHARGE CONTROLLER (V 2.02): 25 žingsniai (su paveikslėliais)

Video: ARDUINO PWM SOLAR CHARGE CONTROLLER (V 2.02): 25 žingsniai (su paveikslėliais)
Video: PWM85 Improvements - Arduino PWM Solar Charge Controller 2024, Liepa
Anonim
Image
Image
ARDUINO PWM SOLAR CHARGE CONTROLLER (V 2.02)
ARDUINO PWM SOLAR CHARGE CONTROLLER (V 2.02)
ARDUINO PWM SOLAR CHARGE CONTROLLER (V 2.02)
ARDUINO PWM SOLAR CHARGE CONTROLLER (V 2.02)

Jei planuojate įdiegti saulės energijos sistemą be tinklo, su baterijų banku, jums reikės saulės įkrovimo valdiklio. Tai prietaisas, esantis tarp saulės kolektoriaus ir akumuliatoriaus banko, kad būtų galima valdyti saulės energijos gaminamų į baterijas elektros energijos kiekį. Pagrindinė funkcija yra užtikrinti, kad akumuliatorius būtų tinkamai įkrautas ir apsaugotas nuo perkrovimo. Didėjant įėjimo įtampai iš saulės kolektoriaus, įkrovimo valdiklis reguliuoja akumuliatorių įkrovą, neleisdamas perkrauti, ir atjungia apkrovą, kai baterija išsikrauna.

Mano saulės projektus galite peržiūrėti mano svetainėje: www.opengreenenergy.com ir „YouTube“kanale: „Open Green Energy“

Saulės įkrovimo valdiklių tipai

Šiuo metu PV maitinimo sistemose dažniausiai naudojami dviejų tipų įkrovimo valdikliai:

1. Impulsų pločio moduliavimo (PWM) valdiklis

2. Maksimalios galios taško sekimo (MPPT) valdiklis

Šioje instrukcijoje paaiškinsiu jums apie PWM saulės įkrovimo valdiklį. Anksčiau taip pat paskelbiau keletą straipsnių apie PWM įkrovimo valdiklius. Ankstesnė mano saulės įkrovimo valdiklių versija yra gana populiari internete ir naudinga žmonėms visame pasaulyje.

Atsižvelgdamas į ankstesnių versijų komentarus ir klausimus, pakeičiau esamą V2.0 PWM įkrovimo valdiklį, kad galėčiau sukurti naują 2.02 versiją.

Toliau pateikiami V2.02 w.r.t V2.0 pakeitimai:

1. Žemo efektyvumo linijinės įtampos reguliatorius pakeičiamas 5V maitinimo šaltinio konverteriu MP2307.

2. Vienas papildomas srovės jutiklis, skirtas stebėti saulės kolektoriaus srovę.

3. MOSFET-IRF9540 pakeičiamas IRF4905, kad būtų užtikrintas geresnis našumas.

4. Borto LM35 temperatūros jutiklis pakeičiamas DS18B20 zondu, kad būtų galima tiksliai stebėti baterijos temperatūrą.

5. USB prievadas išmaniesiems įrenginiams įkrauti.

6. Vieno saugiklio naudojimas vietoj dviejų

7. Vienas papildomas šviesos diodas, rodantis saulės energijos būseną.

8. 3 pakopų įkrovimo algoritmo įgyvendinimas.

9. PID valdiklio diegimas įkrovimo algoritme

10. Projektui pagamino individualų PCB

Specifikacija

1. Įkrovimo valdiklis ir energijos skaitiklis

2. Automatinis akumuliatoriaus įtampos pasirinkimas (6V/12V)

3. PWM įkrovimo algoritmas su automatiniu įkrovimo nustatymu pagal akumuliatoriaus įtampą

4. LED indikacija įkrovimo būsenai ir apkrovai

5. 20x4 simbolių skystųjų kristalų ekranas, rodantis įtampą, srovę, galią, energiją ir temperatūrą.

6. Apsauga nuo žaibo

7. Atbulinės srovės srauto apsauga

8. Trumpa grandinė ir apsauga nuo perkrovos

9. Įkrovimo temperatūros kompensavimas

10. USB prievadas įkrovimo programėlėms

Prekės

PCB V2.02 galite užsisakyti iš PCBWay

1. „Arduino Nano“(„Amazon“/ „Banggood“)

2. P -MOSFET - IRF4905 („Amazon“/ „Banggood“)

3. Maitinimo diodas -MBR2045 („Amazon“/ „Aliexpress“)

4. „Buck Converter-MP2307“(„Amazon“/ „Banggood“)

5. Temperatūros jutiklis - DS18B20 („Amazon“/ „Banggood“)

6. Srovės jutiklis - ACS712 („Amazon“/ „Banggood“)

7. TVS diodas- P6KE36CA („Amazon“/ „Aliexpress“)

8. Tranzistoriai - 2N3904 („Amazon“/ „Banggood“)

9. Rezistoriai (100k x 2, 20k x 2, 10k x 2, 1k x 2, 330ohm x 7) („Amazon“/ „Banggood“)

10. Keraminiai kondensatoriai (0,1uF x 2) („Amazon“/ „Banggood“)

11. 20x4 I2C LCD („Amazon“/ „Banggood“)

12. RGB LED („Amazon“/ „Banggood“)

13. Dviejų spalvų LED („Amazon“)

15. Džemperio laidai / laidai („Amazon“/ „Banggood“)

16. „Header Pins“(„Amazon“/ „Banggood“)

17. Šilumos kriauklės („Amazon“/ „Aliexpress“)

18. Saugiklių laikiklis ir saugikliai („Amazon“)

19. Paspaudimo mygtukas („Amazon“/ „Banggood“)

22. Prisukite gnybtus 1x6 kaiščių („Aliexpress“)

23. PCB sustabdymai („Banggood“)

24. USB lizdas („Amazon“/ „Banggood“)

Įrankiai:

1. Lituoklis („Amazon“)

2. Lydymosi siurblys („Amazon“)

2. Laidų pjaustytuvas ir nuėmiklis („Amazon“)

3. Sraigtinė tvarkyklė („Amazon“)

1 žingsnis: PWM įkrovimo valdiklio veikimo principas

PWM įkrovimo valdiklio veikimo principas
PWM įkrovimo valdiklio veikimo principas

PWM reiškia impulso pločio moduliaciją, kuri reiškia metodą, kurį jis naudoja įkrovimui reguliuoti. Jos funkcija yra sumažinti saulės baterijos įtampą iki akumuliatoriaus įtampos, kad būtų užtikrintas tinkamas akumuliatoriaus įkrovimas. Kitaip tariant, jie fiksuoja saulės kolektoriaus įtampą prie akumuliatoriaus įtampos, vilkdami saulės kolektoriaus Vmp žemyn iki akumuliatoriaus sistemos įtampos, nekeičiant srovės.

Jis naudoja elektroninį jungiklį (MOSFET), kad prijungtų ir atjungtų saulės kolektorių su akumuliatoriumi. Perjungiant MOSFET aukštu dažniu su įvairiais impulsų pločiais, galima išlaikyti pastovią įtampą. PWM valdiklis pats prisitaiko, keisdamas į akumuliatorių siunčiamų impulsų plotį (ilgį) ir dažnį.

Kai plotis yra 100%, MOSFET yra visiškai įjungtas, todėl saulės kolektorius gali įkrauti akumuliatorių. Kai plotis yra 0%, tranzistorius yra išjungtas ir atviroje grandinėje saulės kolektoriuje neleidžia srovei tekėti į akumuliatorių, kai baterija visiškai įkrauta.

2 žingsnis: Kaip veikia grandinė?

Kaip veikia grandinė?
Kaip veikia grandinė?
Kaip veikia grandinė?
Kaip veikia grandinė?

Įkrovimo valdiklio širdis yra „Arduino Nano“plokštė. „Arduino“nustato saulės baterijų ir baterijų įtampą, naudodamas dvi įtampos skirstytuvo grandines. Pagal šiuos įtampos lygius jis nusprendžia, kaip įkrauti akumuliatorių ir valdyti apkrovą.

Pastaba: aukščiau esančiame paveikslėlyje yra spausdinimo klaida maitinimo ir valdymo signale. Raudona linija skirta galiai, o geltona - valdymo signalui.

Visa schema suskirstyta į šias grandines:

1. Maitinimo paskirstymo grandinė:

Akumuliatoriaus (B+ ir B-) energiją X1 (MP2307) konverteris sumažina iki 5 V. Buck keitiklio išvestis paskirstoma

1. „Arduino“lenta

2. LED indikatoriai

3. LCD ekranas

4. USB prievadas įtaisams įkrauti.

2. Įvesties jutikliai:

Saulės skydelio ir akumuliatoriaus įtampa nustatoma naudojant dvi įtampos skirstytuvo grandines, susidedančias iš rezistorių R1-R2 ir R3-R4. C1 ir C2 yra filtro kondensatoriai, skirti filtruoti nepageidaujamus triukšmo signalus. Išėjimas iš įtampos skirstytuvų yra prijungtas prie „Arduino“analoginių kaiščių A0 ir A1.

Saulės skydelis ir apkrovos srovės aptinkamos naudojant du ACS712 modulius. Srovės jutiklių išėjimas yra prijungtas prie „Arduino“analoginio kaiščio A3 ir A2.

Baterijos temperatūra matuojama naudojant DS18B20 temperatūros jutiklį. R16 (4,7K) yra traukiamasis rezistorius. Temperatūros jutiklio išėjimas yra prijungtas prie „Arduino Digital“kaiščio D12.

3. Valdymo grandinės:

Valdymo grandines iš esmės sudaro du p-MOSFET Q1 ir Q2. MOSFET Q1 naudojamas įkrovimo impulsui siųsti į akumuliatorių, o MOSFET Q2 - apkrovai valdyti. Dvi MOSFET tvarkyklės grandines sudaro du tranzistoriai T1 ir T2 su traukiamaisiais rezistoriais R6 ir R8. Pagrindinę tranzistorių srovę valdo rezistoriai R5 ir R7.

4. Apsaugos grandinės:

Įėjimo viršįtampis iš saulės kolektoriaus pusės yra apsaugotas naudojant TVS diodą D1. Atbulinė srovė iš akumuliatoriaus į saulės bateriją yra apsaugota Schottky diodu D2. Viršsrovė apsaugota saugikliu F1.

5. LED indikacija:

LED1, LED2 ir LED3 naudojami atitinkamai saulės, akumuliatoriaus ir apkrovos būsenai parodyti. Rezistoriai R9 - R15 yra srovę ribojantys rezistoriai.

7. LCD ekranas:

I2C LCD ekranas naudojamas įvairiems parametrams rodyti.

8. USB įkrovimas:

USB lizdas prijungtas prie 5 V išvesties iš „Buck Converter“.

9. Sistemos atstatymas:

SW1 yra mygtukas, skirtas iš naujo nustatyti „Arduino“.

Žemiau pateiktą schemą galite atsisiųsti PDF formatu.

3 žingsnis: pagrindinės saulės įkrovos valdiklio funkcijos

Įkrovimo valdiklis sukurtas atsižvelgiant į šiuos dalykus.

1. Užkirsti kelią akumuliatoriaus perkrovimui: apriboti saulės baterijų baterijai tiekiamą energiją, kai baterija visiškai įkrauta. Tai įgyvendinama mano kodo „charge_cycle“().

2. Užkirsti kelią akumuliatoriaus išsikrovimui: atjunkite akumuliatorių nuo elektros apkrovų, kai akumuliatorius pasiekia žemą įkrovimo lygį. Tai įgyvendinama mano kodo load_control ().

3. Pateikite apkrovos valdymo funkcijas: Norėdami automatiškai prijungti ir atjungti elektros apkrovą nurodytu laiku. Apkrova bus įjungta, kai saulėlydis, ir išjungta, kai saulėtekis. Tai įgyvendinama mano kodo load_control (). 4. Galios ir energijos stebėjimas: stebėti apkrovos galią ir energiją bei ją parodyti.

5. Apsaugokite nuo nenormalios būklės: Apsaugokite grandinę nuo įvairių nenormalių situacijų, tokių kaip žaibas, viršįtampis, viršįtampis ir trumpasis jungimas ir kt.

6. Nurodymas ir rodymas: norint nurodyti ir rodyti įvairius parametrus

7. Serinis ryšys: spausdinti įvairius parametrus nuosekliajame monitoriuje

8. USB įkrovimas: norint įkrauti išmaniuosius įrenginius

4 žingsnis: įtampos matavimas

Įtampos matavimas
Įtampos matavimas

Įtampos jutikliai naudojami saulės baterijų ir baterijų įtampai nustatyti. Jis įgyvendinamas naudojant dvi įtampos skirstytuvo grandines. Jį sudaro du rezistoriai R1 = 100k ir R2 = 20k, skirti saulės kolektoriaus įtampai matuoti, ir panašiai R3 = 100k ir R4 = 20k akumuliatoriaus įtampai. Išėjimas iš R1 ir R2 yra prijungtas prie Arduino analoginio kaiščio A0, o išvestis iš R3 ir R4 yra prijungtas prie analoginio Arduino kaiščio A1.

Įtampos matavimas: „Arduino“analoginiai įėjimai gali būti naudojami nuolatinei įtampai matuoti nuo 0 iki 5 V (naudojant standartinę 5 V analoginę etaloninę įtampą), o šį diapazoną galima padidinti naudojant įtampos daliklio tinklą. Įtampos daliklis sumažina matuojamą įtampą „Arduino“analoginių įėjimų diapazone.

Įtampos daliklio grandinei Vout = R2/(R1+R2) x Vin

Vin = (R1+R2)/R2 x Vout

Funkcija analogRead () nuskaito įtampą ir konvertuoja ją į skaičių nuo 0 iki 1023

Kalibravimas: Mes perskaitysime išvesties vertę naudodami vieną iš „Arduino“analoginių įėjimų ir jo analogRead () funkciją. Ši funkcija išleidžia vertę nuo 0 iki 1023, kuri yra 0,00488V kiekvienam žingsniui (kaip 5/1024 = 0,00488V)

Vin = Vout*(R1+R2)/R2; R1 = 100k ir R2 = 20k

Vin = ADC skaičius*0,00488*(120/20) Voltas // Pažymėta dalis yra Mastelio koeficientas

Pastaba: tai leidžia manyti, kad 1023 rodmuo atitinka tiksliai 5,0 voltų įėjimo įtampą. Praktiškai ne visada galite gauti 5V iš „Arduino“kaiščio 5V. Taigi kalibravimo metu pirmiausia išmatuokite įtampą tarp „Arduino“5v ir GND kaiščių, naudodami multimetrą, ir naudokite skalės koeficientą pagal šią formulę:

Mastelio koeficientas = išmatuota įtampa/1024

5 žingsnis: srovės matavimas

Dabartinis matavimas
Dabartinis matavimas
Dabartinis matavimas
Dabartinis matavimas
Dabartinis matavimas
Dabartinis matavimas

Srovės matavimui naudojau „Hall Effect“srovės jutiklį ACS 712 -5A. Yra trys ACS712 jutiklio variantai, atsižvelgiant į dabartinio jutimo diapazoną. ACS712 jutiklis nuskaito dabartinę vertę ir paverčia ją atitinkama įtampos verte. Reikšmė, jungianti du matavimus, yra jautrumas. Visų variantų išėjimo jautrumas yra toks:

ACS712 modelis -> Dabartinis diapazonas-> Jautrumas

ACS712 ELC -05 -> +/- 5A -> 185 mV/A

ACS712 ELC -20 -> +/- 20A -> 100 mV/A

ACS712 ELC -30 -> +/- 30A -> 66 mV/A

Šiame projekte aš naudojau 5A variantą, kurio jautrumas yra 185 mV/A, o vidutinė jutimo įtampa yra 2,5 V, kai nėra srovės.

Kalibravimas:

analoginė skaitymo vertė = analogRead (Pin);

Vertė = (5/1024)*analoginė skaitymo vertė // Jei negaunate 5 V iš „Arduino 5V“kaiščio, Srovė stiprintuve = (Reikšmė - poslinkio įtampa) / jautrumas

Tačiau pagal duomenų lapus poslinkio įtampa yra 2,5 V, o jautrumas - 185 mV/A

Srovė stiprintuvuose = (vertė-2.5) /0.185

6 žingsnis: temperatūros matavimas

Temperatūros matavimas
Temperatūros matavimas
Temperatūros matavimas
Temperatūros matavimas

Kodėl reikia stebėti temperatūrą?

Baterijos cheminės reakcijos keičiasi priklausomai nuo temperatūros. Kai akumuliatorius sušyla, padidėja dujų susidarymas. Kai akumuliatorius tampa šaltesnis, jis tampa atsparesnis įkrovimui. Atsižvelgiant į tai, kiek skiriasi akumuliatoriaus temperatūra, svarbu pakoreguoti įkrovimą temperatūros pokyčiams. Taigi svarbu koreguoti įkrovimą, atsižvelgiant į temperatūros poveikį. Temperatūros jutiklis matuoja akumuliatoriaus temperatūrą, o saulės energijos įkrovimo valdiklis naudoja šią įvestį, kad prireikus sureguliuotų įkrovos nustatymo tašką. Švino rūgšties tipo akumuliatorių kompensavimo vertė yra - 5 mv /degC /elementas. (–30 mV/ºC 12 V ir 15 mV/ºC 6 V baterijai). Neigiamas temperatūros kompensavimo ženklas rodo, kad pakilus temperatūrai reikia sumažinti įkrovos nustatytą vertę. Norėdami gauti daugiau informacijos, galite sekti šį straipsnį.

Temperatūros matavimas naudojant DS18B20

Baterijos temperatūrai matuoti naudojau išorinį DS18B20 zondą. Jis naudoja vieno laido protokolą, kad galėtų bendrauti su mikrovaldikliu. Jį galima prijungti prie plokštės J4 prievado.

Norėdami sąsaja su DS18B20 temperatūros jutikliu, turite įdiegti „One Wire“biblioteką ir „Dallas“temperatūros biblioteką.

Daugiau informacijos apie DS18B20 jutiklį galite perskaityti šiame straipsnyje.

7 žingsnis: USB įkrovimo grandinė

USB įkrovimo grandinė
USB įkrovimo grandinė
USB įkrovimo grandinė
USB įkrovimo grandinė

Energijos tiekimui naudojamas konverteris MP2307 gali tiekti srovę iki 3A. Taigi jame yra pakankamai atsargų USB įtaisams įkrauti. USB lizdas VCC prijungtas prie 5 V, o GND prijungtas prie GND. Galite remtis aukščiau pateikta schema.

Pastaba: USB išėjimo įtampa nėra palaikoma iki 5 V, kai apkrovos srovė viršija 1A. Taigi aš rekomenduočiau apriboti USB apkrovą žemiau 1A.

8 žingsnis: įkrovimo algoritmas

Įkrovimo algoritmas
Įkrovimo algoritmas

Kai valdiklis prijungtas prie akumuliatoriaus, programa pradės veikti. Iš pradžių ji patikrina, ar skydelio įtampa pakanka akumuliatoriui įkrauti. Jei taip, tada jis pradės įkrovimo ciklą. Įkrovimo ciklą sudaro 3 etapai.

1 etapas Masinis mokestis:

„Arduino“tiesiogiai prijungs saulės kolektorių prie akumuliatoriaus (99 % veikimo ciklas). Baterijos įtampa palaipsniui didės. Kai akumuliatoriaus įtampa pasieks 14,4 V, prasidės 2 etapas.

Šiame etape srovė yra beveik pastovi.

2 etapas Absorbcijos mokestis:

Šiame etape „Arduino“reguliuos įkrovimo srovę, vieną valandą palaikydamas 14,4 įtampos lygį. Įtampa palaikoma pastovi koreguojant darbo ciklą.

3 pakopos plūdės mokestis:

Valdiklis generuoja srovelinį krūvį, kad įtampos lygis būtų 13,5 V. Šiame etape akumuliatorius bus visiškai įkrautas. Jei akumuliatoriaus įtampa yra mažesnė nei 13,2 V 10 min.

Įkrovimo ciklas bus kartojamas.

9 žingsnis: apkrovos valdymas

Norint automatiškai prijungti ir atjungti krovinį, stebint prieblandą/aušrą ir akumuliatoriaus įtampą, naudojamas apkrovos valdymas.

Pagrindinis apkrovos valdymo tikslas yra atjungti krovinį nuo akumuliatoriaus, kad būtų apsaugotas nuo gilaus išsikrovimo. Gilus iškrovimas gali sugadinti akumuliatorių.

Nuolatinės srovės apkrovos gnybtas skirtas mažos galios nuolatinei apkrovai, pavyzdžiui, gatvės apšvietimui.

Pats PV skydas naudojamas kaip šviesos jutiklis.

Darant prielaidą, kad saulės kolektoriaus įtampa> 5V, reiškia aušrą ir kai <5V prieblanda.

ĮJUNGTA Sąlyga: vakare, kai PV įtampos lygis nukrenta žemiau 5 V, o akumuliatoriaus įtampa yra didesnė už nustatytą LVD, valdiklis įjungia apkrovą ir šviečia žalia apkrovos lemputė.

Išjungta būsena: apkrova bus nutraukta šiomis dviem sąlygomis.

1. Ryte, kai PV įtampa yra didesnė nei 5v, 2. Kai akumuliatoriaus įtampa yra žemesnė už nustatytą LVD apkrova raudona lemputė ĮJUNGTA rodo, kad apkrova nutraukta.

LVD vadinamas žemos įtampos atjungimu

10 žingsnis: galia ir energija

Galia ir energija
Galia ir energija

Galia: galia yra įtampos (voltų) ir srovės (amperų) sandauga

P = VxI Galios vienetas yra vatai arba KW

Energija: energija yra galios (vatų) ir laiko (valandos) produktas

E = Pxt energijos vienetas yra vatų valanda arba kilovatvalandė (kWh)

Norint stebėti galią ir energiją aukščiau, logika įdiegta programinėje įrangoje, o parametrai rodomi 20x4 simbolių LCD.

Vaizdo kreditas: imgoat

11 žingsnis: Apsauga

Apsaugos
Apsaugos

1. Saulės skydelio atvirkštinis poliškumas ir apsauga nuo atvirkštinės srovės

Siekiant pakeisti poliškumą ir apsaugoti nuo atvirkštinio srovės srauto, naudojamas Schottky diodas (MBR2045).

2. Perkrovos ir gilaus iškrovimo apsauga

Programinė įranga įgyvendina apsaugą nuo perkaitimo ir gilios iškrovos.

3. Apsauga nuo trumpojo jungimo ir perkrovos

Apsauga nuo trumpojo jungimo ir perkrovos realizuojama saugikliu F1.

4. Apsauga nuo viršįtampių saulės įvestyje

Dėl įvairių priežasčių elektros sistemose atsiranda laikinų viršįtampių, tačiau žaibas sukelia didžiausius viršįtampius. Tai ypač pasakytina apie PV sistemas dėl atvirų vietų ir sistemos jungiamųjų kabelių. Šiame naujame dizaine aš naudoju 600 vatų dvikryptį TVS diodą (P6KE36CA), kad slopinčiau žaibą ir viršįtampį PV gnybtuose.

vaizdo kreditas: nemokami vaizdai

12 žingsnis: LED indikacijos

LED indikacijos
LED indikacijos

1. Saulės šviesos diodas: LED1 Dviejų spalvų (raudona/žalia) lemputė naudojama saulės energijos būsenai, ty sutemai ar aušrai, nurodyti.

Saulės šviesos diodas ------------------- Saulės būsena

Žalia diena

RAUDONA ------------------------- Naktis

2. Baterijos įkrovos (SOC) šviesos diodas: LED2

Vienas svarbus parametras, apibrėžiantis baterijos energijos kiekį, yra įkrovimo būsena (SOC). Šis parametras rodo, kiek akumuliatoriaus galima įkrauti. RGB šviesos diodas naudojamas akumuliatoriaus įkrovimo būsenai parodyti. Norėdami prijungti, žiūrėkite aukščiau pateiktą schemą.

Baterijos šviesos diodas ---------- Baterijos būsena

RAUDONA ------------------ Įtampa žema

ŽALIA ------------------ Įtampa sveika

MĖLYNA ------------------ Visiškai įkrauta

2. Įkrovos šviesos diodas: LED3

Dviejų spalvų (raudona/žalia) lemputė naudojama apkrovos būsenai rodyti. Norėdami prijungti, žiūrėkite aukščiau pateiktą schemą.

Įkrovos šviesos diodas ------------------- Įkrovos būsena

ŽALIA ----------------------- Prijungta (ĮJUNGTA)

RAUDONA ------------------------- atjungta (IŠJUNGTA)

13 žingsnis: LCD ekranas

LCD ekranas
LCD ekranas
LCD ekranas
LCD ekranas

Saulės skydelio, akumuliatoriaus ir apkrovos parametrams stebėti naudojamas 20X4 char LCD ekranas.

Kad būtų paprasčiau, šiam projektui pasirinktas I2C LCD ekranas. Sąsajai su „Arduino“reikia tik 4 laidų.

Ryšys yra žemiau:

LCD „Arduino“

VCC 5V, GNDGND, SDAA4, SCLA5

1 eilutė: saulės kolektoriaus įtampa, srovė ir galia

2 eilutė: akumuliatoriaus įtampa, temperatūra ir įkroviklio būsena (įkraunama / neįkraunama)

3 eilutė: apkrovos srovė, galia ir apkrovos būsena

4 eilutė: įvestos energijos iš saulės kolektoriaus ir energijos, suvartotos apkrovos metu.

Turite atsisiųsti biblioteką iš „LiquidCrystal_I2C“.

14 žingsnis: prototipų kūrimas ir bandymas

Prototipų kūrimas ir bandymai
Prototipų kūrimas ir bandymai
Prototipų kūrimas ir testavimas
Prototipų kūrimas ir testavimas

1. Duonos lenta:

Pirma, aš padariau grandinę ant duonos lentos. Pagrindinis be litavimo duonos lentos privalumas yra tas, kad jis yra be litavimo. Taigi galite lengvai pakeisti dizainą, tiesiog atjungdami komponentus ir laidus, kaip jums reikia.

2. Perforuota lenta:

Atlikęs bandymą su duona, aš padariau grandinę ant perforuotos plokštės. Norėdami tai padaryti, vykdykite toliau pateiktas instrukcijas

i) Pirmiausia įkiškite visas dalis į perforuotos plokštės angą.

ii) Lituokite visas sudedamąsias dalis ir nupjaukite papildomas kojas žnyplėmis.

iii) Prijunkite litavimo kilimėlius naudodami laidus pagal schemą.

iv) Naudokite atskirtį, kad izoliuotumėte grandinę nuo žemės.

Perforuota plokštės grandinė yra tikrai tvirta ir gali būti nuolat naudojama projekte. Išbandę prototipą, jei viskas veikia puikiai, galime pereiti prie galutinio PCB projektavimo.

15 žingsnis: PCB projektavimas

PCB dizainas
PCB dizainas
PCB dizainas
PCB dizainas

Aš nubraižiau schemą naudodamas „EasyEDA“internetinę programinę įrangą po to, kai perėjau prie PCB išdėstymo.

Visi komponentai, kuriuos pridėjote schemoje, turėtų būti ten, sudėti vienas ant kito, paruošti įdėti ir nukreipti. Vilkite komponentus, griebdami už jo trinkelių. Tada įdėkite jį į stačiakampę ribą.

Visus komponentus išdėstykite taip, kad plokštė užimtų mažiausiai vietos. Kuo mažesnis plokštės dydis, tuo pigesnė bus PCB gamybos kaina. Tai bus naudinga, jei ant šios plokštės yra keletas tvirtinimo angų, kad ją būtų galima pritvirtinti korpuse.

Dabar jūs turite maršrutą. Maršrutas yra pati smagiausia viso šio proceso dalis. Tai tarsi galvosūkio sprendimas! Naudodami stebėjimo įrankį turime sujungti visus komponentus. Galite naudoti tiek viršutinį, tiek apatinį sluoksnius, kad išvengtumėte dviejų skirtingų takelių persidengimo ir takelių sutrumpinimo.

Norėdami pridėti tekstą prie lentos, galite naudoti šilko sluoksnį. Be to, mes galime įterpti vaizdo failą, todėl pridedu savo svetainės logotipo vaizdą, kuris bus atspausdintas lentoje. Galų gale, naudojant vario srities įrankį, turime sukurti PCB pagrindo plotą.

Dabar PCB yra paruoštas gamybai.

16 veiksmas: atsisiųskite „Gerber“failus

Atsisiųskite „Gerber“failus
Atsisiųskite „Gerber“failus

Pagaminę PCB, turime sugeneruoti failus, kuriuos galima nusiųsti PCB gamybos įmonei, kuri laiku atsiųs mums tikrą PCB.

„EasyEDA“programoje galite išvesti gamybos failus („Gerber“failą) naudodami „Document“> „Generate Gerber“arba įrankių juostoje spustelėdami mygtuką „Generate Gerber“. Sukurtas „Gerber“failas yra suspaustas paketas. Po išspaudimo galite pamatyti šiuos 8 failus:

1. Apatinis varis:.gbl

2. Viršutinis varis:.gtl

3. Apatinės litavimo kaukės:.gbs

4. Viršutinės litavimo kaukės:.gts

5. Apatinė šilkografija:.gbo

6. Viršutinė šilkografija:.gto

7. Gręžtuvas:.drl

8. Kontūras:. Outline

Gerber failus galite atsisiųsti iš PCBWay

Kai pateiksite užsakymą iš „PCBWay“, aš gausiu 10% PCBWay auką už indėlį į mano darbą. Jūsų maža pagalba gali paskatinti mane ateityje atlikti daugiau nuostabių darbų. Ačiū už bendradarbiavimą.

17 žingsnis: PCB gamyba

PCB gamyba
PCB gamyba

Dabar atėjo laikas sužinoti PCB gamintoją, kuris gali paversti mūsų „Gerber“failus tikra PCB. Aš išsiunčiau savo „Gerber“failus į JLCPCB, kad jie gamintų mano PCB. Jų aptarnavimas yra labai geras. PCB gavau Indijoje per 10 dienų.

Žemiau pateikiamas projekto BOM.

18 žingsnis: komponentų litavimas

Komponentų litavimas
Komponentų litavimas
Komponentų litavimas
Komponentų litavimas
Komponentų litavimas
Komponentų litavimas

Gavę plokštę iš PCB fab house, turite lituoti komponentus.

Lituoti jums reikės padoraus lituoklio, lituoklio, žnyplės, litavimo dagčių ar siurblio ir multimetro.

Gera praktika lituoti komponentus pagal jų aukštį. Pirmiausia lituokite mažesnio aukščio komponentus.

Norėdami lituoti komponentus, galite atlikti šiuos veiksmus:

1. Išspauskite komponentų kojeles per skyles ir pasukite PCB ant nugaros.

2. Lituoklio galiuką laikykite prie trinkelės ir komponento kojos jungties.

3. Lydmetalį padėkite į jungtį taip, kad ji tekėtų aplink laidą ir uždengtų trinkelę. Kai jis tekės aplinkui, nuimkite antgalį.

4. Apipjaustykite papildomas kojas, naudodami žnyplę.

Laikykitės aukščiau pateiktų visų komponentų litavimo taisyklių.

19 žingsnis: ACS712 srovės jutiklio montavimas

ACS712 srovės jutiklio montavimas
ACS712 srovės jutiklio montavimas
ACS712 srovės jutiklio montavimas
ACS712 srovės jutiklio montavimas
ACS712 srovės jutiklio montavimas
ACS712 srovės jutiklio montavimas

ACS712 srovės jutiklis, kurį aš gavau, turi iš anksto lituotą varžtą, skirtą prijungti. Norėdami lituoti modulį tiesiai ant PCB plokštės, pirmiausia turite atsukti varžto gnybtą.

Sraigtinį gnybtą išlydžiau, naudodami išlydymo siurblį, kaip parodyta aukščiau.

Tada aš lituoju ACS712 modulį aukštyn kojom.

Norėdami prijungti Ip+ ir Ip-terminalą prie PCB, naudoju diodų gnybtų kojas.

20 veiksmas: pridėkite „Buck Converter“

„Buck Converter“pridėjimas
„Buck Converter“pridėjimas

Norėdami lituoti „Buck Converter“modulį, turite paruošti 4 tiesias antgalius, kaip parodyta aukščiau.

Lituokite 4 antraštės kaiščius X1, 2 yra skirti išėjimui, o kiti du - įėjimams.

21 veiksmas: pridėkite „Arduino Nano“

Pridėjus „Arduino Nano“
Pridėjus „Arduino Nano“
Pridėjus „Arduino Nano“
Pridėjus „Arduino Nano“
Pridėjus „Arduino Nano“
Pridėjus „Arduino Nano“
Pridėjus „Arduino Nano“
Pridėjus „Arduino Nano“

Kai perkate tiesias antraštes, jos bus per ilgos „Arduino Nano“. Turėsite juos supjaustyti iki reikiamo ilgio. Tai reiškia po 15 smeigtukų.

Geriausias būdas apipjaustyti moteriškus antraštės gabalus yra suskaičiuoti 15 kaiščių, traukti 16 -ą kaištį, tada žnyplėmis sumažinti plyšį tarp 15 ir 17 kaiščio.

Dabar mes turime įdiegti moterų antraštes ant PCB. Paimkite savo moterų antraštes ir padėkite jas ant vyrų antraščių „Arduino Nano“lentoje.

Tada lituokite antgalio kaiščius prie įkrovimo valdiklio PCB.

22 žingsnis: MOSFET paruošimas

MOSFET paruošimas
MOSFET paruošimas
MOSFET paruošimas
MOSFET paruošimas

Prieš lituojant MOSFET Q1 Q2 ir diodą D1 prie PCB, geriau prie jų pritvirtinti radiatorius. Šilumos kriauklės naudojamos šilumai šalinti iš prietaiso, kad būtų palaikoma žemesnė prietaiso temperatūra.

Ant MOSFET metalinės pagrindo plokštės užtepkite radiatoriaus mišinio sluoksnį. Tada įdėkite šilumą laidžią trinkelę tarp MOSFET ir radiatoriaus ir priveržkite varžtą. Galite perskaityti šį straipsnį apie tai, kodėl radiatorius yra būtinas.

Galiausiai lituokite juos prie įkrovimo valdiklio PCB.

23 žingsnis: atramų montavimas

Atstumų montavimas
Atstumų montavimas
Atstumų montavimas
Atstumų montavimas
Atstumų montavimas
Atstumų montavimas

Lituodami visas dalis, pritvirtinkite atramas 4 kampuose. Aš naudoju „M3 Brass Hex Standoffs“.

Naudojant atramas, lituoklių jungtys ir laidai bus pakankamai atstumti nuo žemės.

24 veiksmas: programinė įranga ir bibliotekos

Programinė įranga ir bibliotekos
Programinė įranga ir bibliotekos

Pirmiausia atsisiųskite pridėtą „Arduino“kodą. Tada atsisiųskite šias bibliotekas ir įdiekite jas.

1. Viena viela

2. Dalaso temperatūra

3. LiquidCrystal_I2C

4. PID biblioteka

Visas kodas yra suskirstytas į mažą funkcinį bloką, kad būtų lankstesnis. Tarkime, vartotojui nėra įdomu naudotis LCD ekranu ir jis patenkintas LED indikacija. Tada tiesiog išjunkite lcd_display () iš tuštumos ciklo (). Tai viskas. Panašiai, atsižvelgiant į vartotojo reikalavimus, jis gali įjungti ir išjungti įvairias funkcijas.

Įdiegę visas pirmiau minėtas bibliotekas, įkelkite „Arduino“kodą.

Pastaba: dabar dirbu prie programinės įrangos, skirtos geresniam įkrovimo algoritmui įgyvendinti. Jei norite gauti naujausią versiją, susisiekite.

Atnaujinta 2020-04-02

Įkėlė naują programinę įrangą su patobulintu įkrovimo algoritmu ir jame įdiegtu PID valdikliu.

25 žingsnis: galutinis bandymas

Galutinis bandymas
Galutinis bandymas
Galutinis bandymas
Galutinis bandymas
Galutinis bandymas
Galutinis bandymas

Prijunkite įkrovimo valdiklio akumuliatoriaus gnybtus (BAT) prie 12 V baterijos. Įsitikinkite, kad poliškumas yra teisingas. Po prijungimo šviesos diodas ir skystųjų kristalų ekranas pradės veikti nedelsiant. Baterijos įtampą ir temperatūrą taip pat pastebėsite antroje LCD ekrano eilutėje.

Tada prijunkite saulės kolektorių prie saulės terminalo (SOL), pirmoje LCD ekrano eilutėje matysite saulės įtampą, srovę ir galią. Saulės skydelio modeliavimui naudoju laboratorinį maitinimo šaltinį. Naudojau savo galios matuoklius, norėdamas palyginti įtampos, srovės ir galios vertes su LCD ekranu.

Bandymo procedūra parodyta šiame demonstraciniame vaizdo įraše

Ateityje šiam projektui sukursiu 3D spausdintą korpusą. Palaikykite ryšį.

Šis projektas yra įrašas PCB konkurse, balsuokite už mane. Jūsų balsai man yra tikras įkvėpimas daugiau dirbti, kad galėčiau parašyti daugiau tokių naudingų projektų.

Dėkojame, kad perskaitėte mano „Instructable“. Jei jums patinka mano projektas, nepamirškite juo pasidalyti.

Komentarai ir atsiliepimai visada laukiami.

PCB dizaino iššūkis
PCB dizaino iššūkis
PCB dizaino iššūkis
PCB dizaino iššūkis

Antroji vieta PCB dizaino iššūkyje

Rekomenduojamas: