Mündəricat:

Arduino - PV MPPT Günəş Şarj Cihazı: 6 Addım (Şəkillərlə birlikdə)
Arduino - PV MPPT Günəş Şarj Cihazı: 6 Addım (Şəkillərlə birlikdə)

Video: Arduino - PV MPPT Günəş Şarj Cihazı: 6 Addım (Şəkillərlə birlikdə)

Video: Arduino - PV MPPT Günəş Şarj Cihazı: 6 Addım (Şəkillərlə birlikdə)
Video: Güneş Enerjisi İle Lityum Pil Şarjı (18650 pil şarjı, Lithium Battery Charging with Solar Energy) 2024, Noyabr
Anonim
Image
Image
Buck çeviricisi
Buck çeviricisi

Bazarda bir çox şarj nəzarətçisi var. adi ucuz şarj nəzarətçiləri günəş panellərindən maksimum güc istifadə etmək üçün səmərəli deyillər. Səmərəli olanlar çox baha başa gəlir.

Buna görə də, öz ehtiyacım olan batareyanın ehtiyaclarını və günəş işığını başa düşəcək qədər səmərəli və ağıllı bir idarəetmə qurğusu yaratmağa qərar verdim. Günəşdən əldə edilən maksimum gücü almaq və batareyanın içinə çox səmərəli şəkildə qoymaq üçün müvafiq tədbirlər görülməlidir.

ÇAXIŞIMI BƏYƏNİRSƏN, BU TALİMATLARA SƏS VERİN.

Addım 1: MPPT nədir və niyə bizə lazımdır?

Günəş panellərimiz laldır və batareyanın vəziyyətini başa düşmək üçün ağıllı deyil. 12v/100 vatt gücündə bir günəş panelimiz olduğunu və istehsaldan asılı olaraq 18V-21V arasında bir nəticə verəcəyini düşünün, ancaq batareyalar 12v nominal gərginliyə görə qiymətləndirilir, tam şarj şəraitində 13.6v və tam 11.0v olacaq. boşalma. İndi batareyalarımızın 13v şarjda olduğunu, panellərin 18v, 5.5A -nın 100% iş səmərəliliyində olduğunu düşünək (100% -ə sahib olmaq mümkün deyil, ancaq fərz edək). Adi idarəedicilərdə gərginliyi 13,6 -ya endirən bir PWM gərginlik tənzimləyicisi var, lakin cərəyan yoxdur. yalnız gecələr panellərin həddindən artıq yüklənməsinə və sızmasına qarşı qorunma təmin edir.

Beləliklə, 13.6v*5.5A = 74.8 vat gücünə sahibik.

Təxminən 25 vat itiririk.

Bu problemlə qarşılaşmaq üçün smps buck çeviricisini istifadə etdim. bu cür çeviricilərin 90% -dən yuxarı səmərəliliyi var.

İkinci problemimiz günəş panellərinin qeyri-xətti çıxışıdır. Mövcud maksimum gücü əldə etmək üçün müəyyən bir gərginlikdə işləməlidirlər. Onların çıxışı gün ərzində dəyişir.

Bu problemi həll etmək üçün MPPT alqoritmlərindən istifadə olunur. MPPT (Maksimum Power Point İzləmə), adından da göründüyü kimi, bu alqoritm panellərdən mövcud olan maksimum gücü izləyir və vəziyyəti saxlamaq üçün çıxış parametrlərini dəyişir.

MPPT -dən istifadə edərək panellərimiz maksimum mövcud enerji istehsal edəcək və dollar çeviricisi bu şarjı səmərəli şəkildə batareyalara qoyacaq.

Addım 2: MPPT NECƏ İŞLƏYİR?

Mən bunu ətraflı müzakirə etməyəcəyəm. başa düşmək istəyirsinizsə bu linkə baxın -MPPT nədir?

Bu layihədə V-I giriş xüsusiyyətlərini və V-I çıxışını da izlədim. V-I girişini və V-I çıxışını vuraraq, vat gücünə sahib ola bilərik.

Günün istənilən vaxtında 17 V, 5 A yəni 17x5 = 85 vat olduğumuzu söyləyək. eyni zamanda çıxışımız 13 V, 6A yəni 13x6 = 78 Vattdır.

İndi MPPT əvvəlki giriş/çıxış gücü ilə müqayisədə çıxış gərginliyini artıracaq və ya azaldacaq.

əvvəlki giriş gücü yüksək olsaydı və çıxış gərginliyi indikindən aşağı olarsa, yenidən yüksək gücə qayıtmaq üçün çıxış gərginliyi yenidən aşağı enəcək və çıxış gərginliyi yüksək olarsa, indiki gərginlik əvvəlki səviyyəyə qaldırılacaq. beləliklə maksimum güc nöqtəsi ətrafında salınmağa davam edir. bu salınımlar səmərəli MPPT alqoritmləri ilə minimuma endirilir.

Addım 3: Arduino -da MPPT tətbiq edin

Bu şarj cihazının beynidir. Aşağıda, çıxışı tənzimləmək və MPPT -ni tək bir kod blokunda tətbiq etmək üçün Arduino kodu verilmişdir.

// Iout = çıxış cərəyanı

// Vout = çıxış gərginliyi

// Vin = giriş gərginliyi

// Pin = giriş gücü, Pin_previous = son giriş gücü

// Vout_last = son çıxış gərginliyi, Vout_sense = indiki çıxış gərginliyi

void tənzimləmə (float Iout, float Vin, float Vout) {if ((Vout> Vout_max) || (Iout> Iout_max) || ((Pin> Pin_previous && Vout_sense <Vout_last) || (PinVout_last)))

{

əgər (vəzifə dövrü> 0)

{

vəzifə dövrü -= 1;

}

analogWrite (buck_pin, duty_cycle);

}

başqa halda ((VoutVout_last) || (Pi

{

əgər (vəzifə dövrü <240)

{duty_cycle+= 1;

}

analogWrite (buck_pin, duty_cycle);

}

Pin_previous = Pin;

Vin_last = Vin;

Vout_last = Vout;

}

Addım 4: Buck Converter

Dollar çeviricisi etmək üçün N kanallı mosfetdən istifadə etdim. Adətən insanlar yüksək tərəfli keçid üçün P-kanallı mosfet seçirlər və eyni məqsəd üçün N-kanallı mosfeti seçsələr sürücüdən IC tələb olunacaq və ya yükləmə kəməri ckt.

ancaq N-kanal mosfetindən istifadə edərək aşağı tərəfə keçid etmək üçün ckt buck çeviricisini dəyişdirdim. Mən, N-kanalını istifadə edirəm, çünki bunlar aşağı qiymət, yüksək güc reytinqi və daha aşağı enerji sərfidir. bu layihə IRFz44n məntiq səviyyəli mosfetdən istifadə edir, buna görə də birbaşa arduino PWM pimi ilə idarə oluna bilər.

daha yüksək yük cərəyanı üçün, mozfeti doyma halına gətirmək və güc itkisini minimuma endirmək üçün qapıda 10V tətbiq etmək üçün bir tranzistor istifadə etməliyəm, eyni şeyi etdim.

yuxarıdakı ckt -də gördüyünüz kimi, mozfeti -ve gərginliyinə yerləşdirmişəm, beləliklə paneldən +12v -ni torpaq kimi istifadə etmişəm. Bu konfiqurasiya minimum komponentləri olan dollar çeviricisi üçün N kanallı bir mosfet istifadə etməyə imkan verir.

həm də bəzi çatışmazlıqları var. hər iki tərəfinizdə gərginlik ayrıldığından artıq ortaq istinad yeriniz yoxdur. Buna görə gərginliyin ölçülməsi çox çətindir.

Arduino'yu Solar giriş terminallarına bağladım və arduino üçün onun -ve xəttini istifadə etdim. Bu anda ehtiyacımıza uyğun olaraq bir gərginlik bölücü ckt istifadə edərək giriş volategini asanlıqla ölçə bilərik. amma ortaq zəmin olmadığından çıxış gərginliyini o qədər asanlıqla ölçə bilmirik.

İndi bunu etmək üçün bir hiylə var. Çıxış kondansatörü üzərindəki gərginliyi ölçmək əvəzinə iki -xətti arasındakı gərginliyi ölçdüm. arduino üçün əsas olaraq günəş -ve və çıxış -ve siqnal/gərginlik olaraq ölçülür. Bu ölçmə ilə əldə etdiyiniz dəyər ölçülmüş giriş gərginliyindən çıxarılmalı və çıxış kondansatörü üzərindəki əsl çıxış gərginliyini alacaqsınız.

Vout_sense_temp = Vout_sense_temp*0.92+float (raw_vout)*volt_factor*0.08; // giriş gnd və gnd çıxışı arasında dəyişkənliyi ölçün.

Vout_sense = Vin_sense-Vout_sense_temp-diode_volt; // iki əsas arasındakı gərginlik fərqini çıxış gərginliyinə dəyişdirin.

Cari ölçmələr üçün ACS-712 cərəyan algılama modullarından istifadə etdim. Arduino ilə təchiz edilmiş və gnd girişinə qoşulmuşlar.

daxili sayğaclar, D6 pinində 62,5 Khz PWM qazanmaq üçün dəyişdirilir. mosfet sürmək üçün istifadə olunan. tərs sızma və əks polaritenin qorunmasını təmin etmək üçün bu məqsəd üçün istənilən cari reytinqdəki schottky dioddan istifadə etmək üçün çıxış bloklayan bir diod tələb olunacaq. İndüktörün dəyəri tezlikdən və çıxış cərəyanından asılıdır. onlayn mövcud dollar çevirici hesablayıcılarından və ya 100uH 5A-10A yükündən istifadə edə bilərsiniz. indüktörün maksimum çıxış cərəyanını heç vaxt 80%-90%-dən artıq etməyin.

Addım 5: Son Toxunuş -

Image
Image

şarj cihazınıza əlavə funksiyalar da əlavə edə bilərsiniz. mənim kimi LCD də parametrləri və istifadəçidən giriş almaq üçün 2 açarı göstərir.

Çox tezliklə son kodu yeniləyəcəyəm və ckt diaqramını tamamlayacağam.

Addım 6: YENİLƏNİB:- Həqiqi Dövrə Diaqramı, BOM və Kod

İşıq yarışması 2017
İşıq yarışması 2017

YENİLƏNİB:-

Kodu, bom və dövrə yüklədim. mənimkindən bir az fərqlidir, çünki bunu etmək daha asandır.

Tövsiyə: