DIY 3kW Arduino MPPT Solar Charge Controller ESP32
Diskuze na téma solárních, větrných a ostatních regulátorů, datové komunikace mezi regulátory a PC, instalace software, zapojení regulátorů, chování a zkušenosti s různými typy regulátorů.
-
- Příspěvky: 5451
- Registrován: pát úno 13, 2015 2:24 pm
- Lokalita: SO, SK
- Bydliště: SO, SK
Re: DIY 3kW Arduino MPPT Solar Charge Controller ESP32
Teploty pri 2050 W vykonu na vystupe:
.
.
DC-AC inverter REC Lion DC-AC ESP32 DIY inv. 15 GB za sekundu DIY MPPT Holder
Zjedz vsetko, co si kupil, v obchode a netreba ti tasku, auto ci chladnicku.
Zjedz vsetko, co si kupil, v obchode a netreba ti tasku, auto ci chladnicku.
-
- Příspěvky: 2503
- Registrován: sob pro 29, 2012 10:22 pm
- Lokalita: pod Brnem
- Systémové napětí: 24V
Re: DIY 3kW Arduino MPPT Solar Charge Controller ESP32
Co z toho je pasivní odvod tepla, co je aktivní a jaký.(otáčky, síla) Potom mi vrtá hlavou co chladit a co nechladit nebo chladit hlídanou regulací. Někde tu někdo zmínil na fóru že se kondy nechladí.(pochopil jsem neofukují) Proč ne?
3x2000VA-VMP-par, NiCd 24V, 22x210-320Wp, 2x85A-VMPPT
-
- Příspěvky: 2571
- Registrován: stř úno 02, 2022 10:30 am
- Lokalita: okolí Mělníka
- Systémové napětí: 48V
- Výkon panelů [Wp]: 13000
- Kapacita baterie [kWh]: 15
Re: DIY 3kW Arduino MPPT Solar Charge Controller ESP32
Cilene se to asi nedela ale layout desky a celkovy navrh se dela tak, aby pokud je tam aktivni nebo i pasivni chlazeni, vzduch prochazel vsim a kondy se nedavaj treba pod chladic kam nefouka, kde se zadne teplo jen akumuluje. Ono u spinanych zdroju vetsinou hreje hlavne indukcnost, spinaci a rekuperacni prvky. Pripadne snubber. Kondy se mi vetsinou nikde moc nehrali. Takze jde spis o to dostat obecne teplo pryc a neudelat z toho troubu.gupa píše:Co z toho je pasivní odvod tepla, co je aktivní a jaký.(otáčky, síla) Potom mi vrtá hlavou co chladit a co nechladit nebo chladit hlídanou regulací. Někde tu někdo zmínil na fóru že se kondy nechladí.(pochopil jsem neofukují) Proč ne?
Jak to ma kiwi takhle odklopene na stole al avrabci hnizdo tak se to asi i docela dobre chladi. Kdy zby to zavrel do nejake bedny, zacne to pak byt vetsi vyzva.
-
- Příspěvky: 2503
- Registrován: sob pro 29, 2012 10:22 pm
- Lokalita: pod Brnem
- Systémové napětí: 24V
Re: DIY 3kW Arduino MPPT Solar Charge Controller ESP32
Fenomén teorie tepla mne fascinuje. Šum v rozmezí určitých hodnot, je předpokladem k životu.
(je nutné chápat v relativních hodnotách to co vlastně v lidkém jazyce znamená teplo, šum, život)
(je nutné chápat v relativních hodnotách to co vlastně v lidkém jazyce znamená teplo, šum, život)
https://www.daycounter.com/Calculators/ ... ator.phtmlJakýkoli prvek obvodu, který je nad absolutní nulou, bude produkovat tepelný šum, nazývaný také Johnsonův šum. To znamená, že jednoduchý rezistor může produkovat bílý šum v jakémkoli obvodu zesilovače. Jediný způsob, jak snížit tento hluk, je snížit teplotu obvodu nebo minimalizovat odpor. Tento šum je nezávislý na materiálovém složení rezistoru.
Tato kalkulačka vypočítává RMS napětí šumu pro prvek obvodu pro danou šířku pásma, odpor a teplotu.
3x2000VA-VMP-par, NiCd 24V, 22x210-320Wp, 2x85A-VMPPT
-
- Příspěvky: 5451
- Registrován: pát úno 13, 2015 2:24 pm
- Lokalita: SO, SK
- Bydliště: SO, SK
Re: DIY 3kW Arduino MPPT Solar Charge Controller ESP32
Lepsie sa to chladi, ked to je uzavrete, takto cast vzduchu od fanov ide prec
a nerobi dostatocnu turbulenciu okolo suciastok, napr. ked to odkryjem
a meram teplotu termokamerou, tak stupne teplota aj o 7 - 9 *C.
Ked zvysim frekvenciu z 39 kHz na 76 kHz, tak sa prestanu hriat cievky
ale zacnu sa hriat snubbre aj FET-y. Treba testovanim a aspon 8-mimi Dallas
senzormi zistit optimalnu frekvenciu alebo optimalizovat suciastky,
napr. lepsie FET-y, hrubsie droty na 50 A ci lepsie merace prudu,
ktore maju odpor v radoch uA a nie mA ako ma ACS712.
Pri 27 A kazdou fazou sa len na zaklade RDson hreje FET na 27x27x0.023 ==> 17 W.
Ak by sa pouzil s nizkym Qg a Ciss a nizkym Rdson, napr. 27x27x0.005 ==> 3.6 W.
https://www.mouser.sk/datasheet/2/240/L ... 622606.pdf
https://www.mouser.sk/datasheet/2/240/L ... 302266.pdf
https://www.mouser.sk/datasheet/2/240/l ... 957750.pdf
https://www.mouser.sk/datasheet/2/240/i ... 272563.pdf
https://www.mouser.sk/ProductDetail/IXY ... F9RA%3D%3D
https://www.mouser.sk/datasheet/2/240/i ... 272991.pdf
Teploty pri 2260 W - pol hodinu na stabilizovanie
Uz sa mi hreje aj predlzovacka 3 x 2.5 mm2 Cu / 10 m, pri 15 A trvale.
.
a nerobi dostatocnu turbulenciu okolo suciastok, napr. ked to odkryjem
a meram teplotu termokamerou, tak stupne teplota aj o 7 - 9 *C.
Ked zvysim frekvenciu z 39 kHz na 76 kHz, tak sa prestanu hriat cievky
ale zacnu sa hriat snubbre aj FET-y. Treba testovanim a aspon 8-mimi Dallas
senzormi zistit optimalnu frekvenciu alebo optimalizovat suciastky,
napr. lepsie FET-y, hrubsie droty na 50 A ci lepsie merace prudu,
ktore maju odpor v radoch uA a nie mA ako ma ACS712.
Pri 27 A kazdou fazou sa len na zaklade RDson hreje FET na 27x27x0.023 ==> 17 W.
Ak by sa pouzil s nizkym Qg a Ciss a nizkym Rdson, napr. 27x27x0.005 ==> 3.6 W.
https://www.mouser.sk/datasheet/2/240/L ... 622606.pdf
https://www.mouser.sk/datasheet/2/240/L ... 302266.pdf
https://www.mouser.sk/datasheet/2/240/l ... 957750.pdf
https://www.mouser.sk/datasheet/2/240/i ... 272563.pdf
https://www.mouser.sk/ProductDetail/IXY ... F9RA%3D%3D
https://www.mouser.sk/datasheet/2/240/i ... 272991.pdf
Teploty pri 2260 W - pol hodinu na stabilizovanie
Uz sa mi hreje aj predlzovacka 3 x 2.5 mm2 Cu / 10 m, pri 15 A trvale.
.
DC-AC inverter REC Lion DC-AC ESP32 DIY inv. 15 GB za sekundu DIY MPPT Holder
Zjedz vsetko, co si kupil, v obchode a netreba ti tasku, auto ci chladnicku.
Zjedz vsetko, co si kupil, v obchode a netreba ti tasku, auto ci chladnicku.
-
- Příspěvky: 5451
- Registrován: pát úno 13, 2015 2:24 pm
- Lokalita: SO, SK
- Bydliště: SO, SK
Re: DIY 3kW Arduino MPPT Solar Charge Controller ESP32
Je tu niekto ochotny, kto ma ESP32 aj 4-kanalovy osciloskop, zmerat
fazovy posun medzi PWM na tych siestich pinoch ?
fazovy posun medzi PWM na tych siestich pinoch ?
Kód: Vybrat vše
#include <Arduino.h>
#include <driver/ledc.h>
#include <driver/gpio.h>
#include <driver/mcpwm.h>
#include <esp_intr_alloc.h>
#include <soc/soc.h>
#include <soc/soc_caps.h>
#include <soc/mcpwm_reg.h>
#include <soc/mcpwm_struct.h>
#include <esp_err.h>
#include <hal/mcpwm_types.h>
#define PWM_1 1000
#define PWM_10 15000
#define PWM_2 2000
#define PWM_20 20000
#define PWM_3 2500
#define PWM_30 25000
#define PWM_4 2600
#define PWM_40 26000
#define GPIO_PWM0A_OUT 19
#define GPIO_PWM0B_OUT 23
#define GPIO_PWM1A_OUT 17
#define GPIO_PWM1B_OUT 18
#define GPIO_PWM2A_OUT 16
#define GPIO_PWM2B_OUT 5
int duty_modulo = 325;
int duty_index = 1;
float duty_0 [325] = { 11.0,11.2,11.4,11.6,11.8, 12.0,12.2,12.4,12.6,12.8, 13.0,13.2,13.4,13.6,13.8, 14.0,14.2,14.4,14.6,14.8,
15.0,15.2,15.4,15.6,15.8, 16.0,16.2,16.4,16.6,16.8, 17.0,17.2,17.4,17.6,17.8, 18.0,18.2,18.4,18.6,18.8,
19.0,19.2,19.4,19.6,19.8, 20.0,20.2,20.4,20.6,20.8,
21.0,21.2,21.4,21.6,21.8, 22.0,22.2,22.4,22.6,22.8, 23.0,23.2,23.4,23.6,23.8, 24.0,24.2,24.4,24.6,24.8,
25.0,25.2,25.4,25.6,25.8, 26.0,26.2,26.4,26.6,26.8, 27.0,27.2,27.4,27.6,27.8, 28.0,28.2,28.4,28.6,28.8,
29.0,29.2,29.4,29.6,29.8, 30.0,30.2,30.4,30.6,30.8,
31.0,31.2,31.4,31.6,31.8, 32.0,32.2,32.4,32.6,32.8, 33.0,33.2,33.4,33.6,33.8, 34.0,34.2,34.4,34.6,34.8,
35.0,35.2,35.4,35.6,35.8, 36.0,36.2,36.4,36.6,36.8, 37.0,37.2,37.4,37.6,37.8, 38.0,38.2,38.4,38.6,38.8,
39.0,39.2,39.4,39.6,39.8, 40.0,40.2,40.4,40.6,40.8, 41.0,41.2,41.4,41.6,41.8, 42.0,42.2,42.4,42.6,42.8,
43.0,43.2,43.4,43.6,43.8, 44.0,44.2,44.4,44.6,44.8, 45.0,45.2,45.4,45.6,45.8, 46.0,46.2,46.4,46.6,46.8,
47.0,47.2,47.4,47.6,47.8, 48.0,48.2,48.4,48.6,48.8, 49.0,49.2,49.4,49.6,49.8, 50.0,50.1,50.2,50.3,50.4,
50.5,50.6,50.7,50.8,50.9, 51.0,51.1,51.2,51.3,51.4, 51.5,51.6,51.7,51.8,51.9, 52.0,52.1,52.2,52.3,52.4,
52.5,52.6,52.7,52.8,52.9, 53.0,53.1,53.2,53.3,53.4, 53.5,53.6,53.7,53.8,53.9, 54.0,54.2,54.4,54.6,54.8,
55.0,55.2,55.4,55.6,55.8, 56.0,56.2,56.4,56.6,56.8, 57.0,57.2,57.4,57.6,57.8, 58.0,58.2,58.4,58.6,58.8,
59.0,59.2,59.4,59.6,59.8 ,60.0,60.2,60.4,60.6,60.8, 61.0,61.2,61.4,61.6,61.8 ,62.0,62.2,62.4,62.6,62.8,
63.0,63.2,63.4,63.6,63.8, 64.0,64.2,64.4,64.6,64.8, 65.0,65.2,65.4,65.6,65.8, 66.0,66.2,66.4,66.6,66.8,
67.0,67.2,67.4,67.6,67.8, 68.0,68.2,68.4,68.6,68.8, 69.0,69.2,69.4,69.6,69.8, 70.0,70.2,70.4,70.6,70.8,
71.0,71.2,71.4,71.6,71.8 };
float duty_1 [325] = { 11.0,11.2,11.4,11.6,11.8, 12.0,12.2,12.4,12.6,12.8, 13.0,13.2,13.4,13.6,13.8, 14.0,14.2,14.4,14.6,14.8,
15.0,15.2,15.4,15.6,15.8, 16.0,16.2,16.4,16.6,16.8, 17.0,17.2,17.4,17.6,17.8, 18.0,18.2,18.4,18.6,18.8,
19.0,19.2,19.4,19.6,19.8, 20.0,20.2,20.4,20.6,20.8,
21.0,21.2,21.4,21.6,21.8, 22.0,22.2,22.4,22.6,22.8, 23.0,23.2,23.4,23.6,23.8, 24.0,24.2,24.4,24.6,24.8,
25.0,25.2,25.4,25.6,25.8, 26.0,26.2,26.4,26.6,26.8, 27.0,27.2,27.4,27.6,27.8, 28.0,28.2,28.4,28.6,28.8,
29.0,29.2,29.4,29.6,29.8, 30.0,30.2,30.4,30.6,30.8,
31.0,31.2,31.4,31.6,31.8, 32.0,32.2,32.4,32.6,32.8, 33.0,33.2,33.4,33.6,33.8, 34.0,34.2,34.4,34.6,34.8,
35.0,35.2,35.4,35.6,35.8, 36.0,36.2,36.4,36.6,36.8, 37.0,37.2,37.4,37.6,37.8, 38.0,38.2,38.4,38.6,38.8,
39.0,39.2,39.4,39.6,39.8, 40.0,40.2,40.4,40.6,40.8, 41.0,41.2,41.4,41.6,41.8, 42.0,42.2,42.4,42.6,42.8,
43.0,43.2,43.4,43.6,43.8, 44.0,44.2,44.4,44.6,44.8, 45.0,45.2,45.4,45.6,45.8, 46.0,46.2,46.4,46.6,46.8,
47.0,47.2,47.4,47.6,47.8, 48.0,48.2,48.4,48.6,48.8, 49.0,49.2,49.4,49.6,49.8, 50.0,50.1,50.2,50.3,50.4,
50.5,50.6,50.7,50.8,50.9, 51.0,51.1,51.2,51.3,51.4, 51.5,51.6,51.7,51.8,51.9, 52.0,52.1,52.2,52.3,52.4,
52.5,52.6,52.7,52.8,52.9, 53.0,53.1,53.2,53.3,53.4, 53.5,53.6,53.7,53.8,53.9, 54.0,54.2,54.4,54.6,54.8,
55.0,55.2,55.4,55.6,55.8, 56.0,56.2,56.4,56.6,56.8, 57.0,57.2,57.4,57.6,57.8, 58.0,58.2,58.4,58.6,58.8,
59.0,59.2,59.4,59.6,59.8 ,60.0,60.2,60.4,60.6,60.8, 61.0,61.2,61.4,61.6,61.8 ,62.0,62.2,62.4,62.6,62.8,
63.0,63.2,63.4,63.6,63.8, 64.0,64.2,64.4,64.6,64.8, 65.0,65.2,65.4,65.6,65.8, 66.0,66.2,66.4,66.6,66.8,
67.0,67.2,67.4,67.6,67.8, 68.0,68.2,68.4,68.6,68.8, 69.0,69.2,69.4,69.6,69.8, 70.0,70.2,70.4,70.6,70.8,
71.0,71.2,71.4,71.6,71.8 };
float duty_2 [325] = { 11.0,11.2,11.4,11.6,11.8, 12.0,12.2,12.4,12.6,12.8, 13.0,13.2,13.4,13.6,13.8, 14.0,14.2,14.4,14.6,14.8,
15.0,15.2,15.4,15.6,15.8, 16.0,16.2,16.4,16.6,16.8, 17.0,17.2,17.4,17.6,17.8, 18.0,18.2,18.4,18.6,18.8,
19.0,19.2,19.4,19.6,19.8, 20.0,20.2,20.4,20.6,20.8,
21.0,21.2,21.4,21.6,21.8, 22.0,22.2,22.4,22.6,22.8, 23.0,23.2,23.4,23.6,23.8, 24.0,24.2,24.4,24.6,24.8,
25.0,25.2,25.4,25.6,25.8, 26.0,26.2,26.4,26.6,26.8, 27.0,27.2,27.4,27.6,27.8, 28.0,28.2,28.4,28.6,28.8,
29.0,29.2,29.4,29.6,29.8, 30.0,30.2,30.4,30.6,30.8,
31.0,31.2,31.4,31.6,31.8, 32.0,32.2,32.4,32.6,32.8, 33.0,33.2,33.4,33.6,33.8, 34.0,34.2,34.4,34.6,34.8,
35.0,35.2,35.4,35.6,35.8, 36.0,36.2,36.4,36.6,36.8, 37.0,37.2,37.4,37.6,37.8, 38.0,38.2,38.4,38.6,38.8,
39.0,39.2,39.4,39.6,39.8, 40.0,40.2,40.4,40.6,40.8, 41.0,41.2,41.4,41.6,41.8, 42.0,42.2,42.4,42.6,42.8,
43.0,43.2,43.4,43.6,43.8, 44.0,44.2,44.4,44.6,44.8, 45.0,45.2,45.4,45.6,45.8, 46.0,46.2,46.4,46.6,46.8,
47.0,47.2,47.4,47.6,47.8, 48.0,48.2,48.4,48.6,48.8, 49.0,49.2,49.4,49.6,49.8, 50.0,50.1,50.2,50.3,50.4,
50.5,50.6,50.7,50.8,50.9, 51.0,51.1,51.2,51.3,51.4, 51.5,51.6,51.7,51.8,51.9, 52.0,52.1,52.2,52.3,52.4,
52.5,52.6,52.7,52.8,52.9, 53.0,53.1,53.2,53.3,53.4, 53.5,53.6,53.7,53.8,53.9, 54.0,54.2,54.4,54.6,54.8,
55.0,55.2,55.4,55.6,55.8, 56.0,56.2,56.4,56.6,56.8, 57.0,57.2,57.4,57.6,57.8, 58.0,58.2,58.4,58.6,58.8,
59.0,59.2,59.4,59.6,59.8 ,60.0,60.2,60.4,60.6,60.8, 61.0,61.2,61.4,61.6,61.8 ,62.0,62.2,62.4,62.6,62.8,
63.0,63.2,63.4,63.6,63.8, 64.0,64.2,64.4,64.6,64.8, 65.0,65.2,65.4,65.6,65.8, 66.0,66.2,66.4,66.6,66.8,
67.0,67.2,67.4,67.6,67.8, 68.0,68.2,68.4,68.6,68.8, 69.0,69.2,69.4,69.6,69.8, 70.0,70.2,70.4,70.6,70.8,
71.0,71.2,71.4,71.6,71.8 };
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
uint32_t PWM = PWM_1;
uint32_t PWM_0 = PWM_10;
mcpwm_config_t pwm_config_0; mcpwm_config_t pwm_config_0_1; mcpwm_config_t pwm_config_0_2;
mcpwm_config_t pwm_config_1; mcpwm_config_t pwm_config_1_1; mcpwm_config_t pwm_config_1_2;
mcpwm_gpio_init(MCPWM_UNIT_1, MCPWM0A, GPIO_PWM0A_OUT);
mcpwm_gpio_init(MCPWM_UNIT_0, MCPWM0B, GPIO_PWM0B_OUT);
mcpwm_gpio_init(MCPWM_UNIT_1, MCPWM1A, GPIO_PWM1A_OUT);
mcpwm_gpio_init(MCPWM_UNIT_0, MCPWM1B, GPIO_PWM1B_OUT);
mcpwm_gpio_init(MCPWM_UNIT_1, MCPWM2A, GPIO_PWM2A_OUT);
mcpwm_gpio_init(MCPWM_UNIT_0, MCPWM2B, GPIO_PWM2B_OUT);
mcpwm_sync_config_t sync_ttt_0 ;
sync_ttt_0.sync_sig = MCPWM_SELECT_TIMER0_SYNC;
sync_ttt_0.timer_val = 500;
sync_ttt_0.count_direction = MCPWM_TIMER_DIRECTION_UP;
mcpwm_sync_config_t sync_ttt_1 ;
sync_ttt_1.sync_sig = MCPWM_SELECT_TIMER1_SYNC;
sync_ttt_1.timer_val = 0;
sync_ttt_1.count_direction = MCPWM_TIMER_DIRECTION_UP;
pwm_config_0.frequency = PWM_0; //frequency
pwm_config_0.cmpr_a = 50.0; // Duty em porcentagem
pwm_config_0.cmpr_b = 50.0;
pwm_config_0.counter_mode = MCPWM_UP_DOWN_COUNTER;
pwm_config_0.duty_mode = MCPWM_DUTY_MODE_0;
pwm_config_0_1.frequency = PWM_0; //frequency
pwm_config_0_1.cmpr_a = 50.0; // Duty em porcentagem
pwm_config_0_1.cmpr_b = 50.0;
pwm_config_0_1.counter_mode = MCPWM_UP_DOWN_COUNTER;
pwm_config_0_1.duty_mode = MCPWM_DUTY_MODE_0;
pwm_config_0_2.frequency = PWM_0; //frequency
pwm_config_0_2.cmpr_a = 50.0; // Duty em porcentagem
pwm_config_0_2.cmpr_b = 50.0;
pwm_config_0_2.counter_mode = MCPWM_UP_DOWN_COUNTER;
pwm_config_0_2.duty_mode = MCPWM_DUTY_MODE_0;
pwm_config_1.frequency = PWM_0; //frequency
pwm_config_1.cmpr_a = 50.0; // Duty em porcentagem
pwm_config_1.cmpr_b = 50.0;
pwm_config_1.counter_mode = MCPWM_UP_DOWN_COUNTER;
pwm_config_1.duty_mode = MCPWM_DUTY_MODE_0;
pwm_config_1_1.frequency = PWM_0; //fr equency
pwm_config_1_1.cmpr_a = 50.0; // Duty em porcentagem
pwm_config_1_1.cmpr_b = 50.0;
pwm_config_1_1.counter_mode = MCPWM_UP_DOWN_COUNTER;
pwm_config_1_1.duty_mode = MCPWM_DUTY_MODE_0;
pwm_config_1_2.frequency = PWM_0; //fr equency
pwm_config_1_2.cmpr_a = 50.0; // Duty em porcentagem
pwm_config_1_2.cmpr_b = 50.0;
pwm_config_1_2.counter_mode = MCPWM_UP_DOWN_COUNTER;
pwm_config_1_2.duty_mode = MCPWM_DUTY_MODE_0;
mcpwm_init(MCPWM_UNIT_0, MCPWM_TIMER_0, &pwm_config_0); //Configure PWM0A & PWM0B with above settings
mcpwm_init(MCPWM_UNIT_0, MCPWM_TIMER_1, &pwm_config_0_1); //Configure PWM1A & PWM1B with above settings
mcpwm_init(MCPWM_UNIT_0, MCPWM_TIMER_2, &pwm_config_0_2); //Configure PWM2A & PWM2B with above settings
mcpwm_init(MCPWM_UNIT_1, MCPWM_TIMER_0, &pwm_config_1); //Configure PWM0A & PWM0B with above settings
mcpwm_init(MCPWM_UNIT_1, MCPWM_TIMER_1, &pwm_config_1_1); //Configure PWM1A & PWM1B with above settings
mcpwm_init(MCPWM_UNIT_1, MCPWM_TIMER_2, &pwm_config_1_2); //Configure PWM2A & PWM2B with above settings
mcpwm_group_set_resolution( MCPWM_UNIT_0, 80000000) ;
mcpwm_timer_set_resolution( MCPWM_UNIT_0, MCPWM_TIMER_0, 8000000);
mcpwm_timer_set_resolution( MCPWM_UNIT_0, MCPWM_TIMER_1, 8000000);
mcpwm_timer_set_resolution( MCPWM_UNIT_0, MCPWM_TIMER_2, 8000000);
mcpwm_group_set_resolution( MCPWM_UNIT_1, 80000000) ;
mcpwm_timer_set_resolution( MCPWM_UNIT_1, MCPWM_TIMER_0, 8000000);
mcpwm_timer_set_resolution( MCPWM_UNIT_1, MCPWM_TIMER_1, 8000000);
mcpwm_timer_set_resolution( MCPWM_UNIT_1, MCPWM_TIMER_2, 8000000);
mcpwm_sync_configure(MCPWM_UNIT_0, MCPWM_TIMER_1, &sync_ttt_0);
mcpwm_sync_configure(MCPWM_UNIT_0, MCPWM_TIMER_2, &sync_ttt_1);
mcpwm_sync_configure(MCPWM_UNIT_1, MCPWM_TIMER_1, &sync_ttt_0);
mcpwm_sync_configure(MCPWM_UNIT_1, MCPWM_TIMER_2, &sync_ttt_1);
duty_index = 20;
}
void loop() {
// put your main code here, to run repeatedly:
mcpwm_set_duty(MCPWM_UNIT_1, MCPWM_TIMER_0, MCPWM_OPR_A, duty_0 [ duty_index % duty_modulo] );
mcpwm_set_duty(MCPWM_UNIT_0, MCPWM_TIMER_0, MCPWM_OPR_B, duty_0 [ duty_index % duty_modulo] );
mcpwm_set_duty(MCPWM_UNIT_1, MCPWM_TIMER_1, MCPWM_OPR_A, duty_1 [ duty_index % duty_modulo] );
mcpwm_set_duty(MCPWM_UNIT_0, MCPWM_TIMER_1, MCPWM_OPR_B, duty_1 [ duty_index % duty_modulo] );
mcpwm_set_duty(MCPWM_UNIT_1, MCPWM_TIMER_2, MCPWM_OPR_A, duty_2 [ duty_index % duty_modulo] );
mcpwm_set_duty(MCPWM_UNIT_0, MCPWM_TIMER_2, MCPWM_OPR_B, duty_2 [ duty_index % duty_modulo] );
duty_index ++;
if ( duty_index >= 310 )
{
duty_index = 10;
}
Serial.print("PWM : ");
Serial.println( duty_index);
delay (99);
}
DC-AC inverter REC Lion DC-AC ESP32 DIY inv. 15 GB za sekundu DIY MPPT Holder
Zjedz vsetko, co si kupil, v obchode a netreba ti tasku, auto ci chladnicku.
Zjedz vsetko, co si kupil, v obchode a netreba ti tasku, auto ci chladnicku.
-
- Příspěvky: 5451
- Registrován: pát úno 13, 2015 2:24 pm
- Lokalita: SO, SK
- Bydliště: SO, SK
Re: DIY 3kW Arduino MPPT Solar Charge Controller ESP32
TEST:
OUT: 16.0 A / 168 V / 2690 W.
https://youtu.be/Db8B2sIAw6A
Hreje sa to takto:
. Teplota FET-u / T junction / v zavislosti na parametroch FET-u pri rovnakej
strate a rovnakej teplote chladica.
.
OUT: 16.0 A / 168 V / 2690 W.
https://youtu.be/Db8B2sIAw6A
Hreje sa to takto:
. Teplota FET-u / T junction / v zavislosti na parametroch FET-u pri rovnakej
strate a rovnakej teplote chladica.
.
DC-AC inverter REC Lion DC-AC ESP32 DIY inv. 15 GB za sekundu DIY MPPT Holder
Zjedz vsetko, co si kupil, v obchode a netreba ti tasku, auto ci chladnicku.
Zjedz vsetko, co si kupil, v obchode a netreba ti tasku, auto ci chladnicku.
-
- Příspěvky: 2571
- Registrován: stř úno 02, 2022 10:30 am
- Lokalita: okolí Mělníka
- Systémové napětí: 48V
- Výkon panelů [Wp]: 13000
- Kapacita baterie [kWh]: 15
Re: DIY 3kW Arduino MPPT Solar Charge Controller ESP32
Když bude čas zkusím to večer nebo zítra
rottenkiwi píše:Je tu niekto ochotny, kto ma ESP32 aj 4-kanalovy osciloskop, zmerat
fazovy posun medzi PWM na tych siestich pinoch ?
Kód: Vybrat vše
#include <Arduino.h> #include <driver/ledc.h> #include <driver/gpio.h> #include <driver/mcpwm.h> #include <esp_intr_alloc.h> #include <soc/soc.h> #include <soc/soc_caps.h> #include <soc/mcpwm_reg.h> #include <soc/mcpwm_struct.h> #include <esp_err.h> #include <hal/mcpwm_types.h> #define PWM_1 1000 #define PWM_10 15000 #define PWM_2 2000 #define PWM_20 20000 #define PWM_3 2500 #define PWM_30 25000 #define PWM_4 2600 #define PWM_40 26000 #define GPIO_PWM0A_OUT 19 #define GPIO_PWM0B_OUT 23 #define GPIO_PWM1A_OUT 17 #define GPIO_PWM1B_OUT 18 #define GPIO_PWM2A_OUT 16 #define GPIO_PWM2B_OUT 5 int duty_modulo = 325; int duty_index = 1; float duty_0 [325] = { 11.0,11.2,11.4,11.6,11.8, 12.0,12.2,12.4,12.6,12.8, 13.0,13.2,13.4,13.6,13.8, 14.0,14.2,14.4,14.6,14.8, 15.0,15.2,15.4,15.6,15.8, 16.0,16.2,16.4,16.6,16.8, 17.0,17.2,17.4,17.6,17.8, 18.0,18.2,18.4,18.6,18.8, 19.0,19.2,19.4,19.6,19.8, 20.0,20.2,20.4,20.6,20.8, 21.0,21.2,21.4,21.6,21.8, 22.0,22.2,22.4,22.6,22.8, 23.0,23.2,23.4,23.6,23.8, 24.0,24.2,24.4,24.6,24.8, 25.0,25.2,25.4,25.6,25.8, 26.0,26.2,26.4,26.6,26.8, 27.0,27.2,27.4,27.6,27.8, 28.0,28.2,28.4,28.6,28.8, 29.0,29.2,29.4,29.6,29.8, 30.0,30.2,30.4,30.6,30.8, 31.0,31.2,31.4,31.6,31.8, 32.0,32.2,32.4,32.6,32.8, 33.0,33.2,33.4,33.6,33.8, 34.0,34.2,34.4,34.6,34.8, 35.0,35.2,35.4,35.6,35.8, 36.0,36.2,36.4,36.6,36.8, 37.0,37.2,37.4,37.6,37.8, 38.0,38.2,38.4,38.6,38.8, 39.0,39.2,39.4,39.6,39.8, 40.0,40.2,40.4,40.6,40.8, 41.0,41.2,41.4,41.6,41.8, 42.0,42.2,42.4,42.6,42.8, 43.0,43.2,43.4,43.6,43.8, 44.0,44.2,44.4,44.6,44.8, 45.0,45.2,45.4,45.6,45.8, 46.0,46.2,46.4,46.6,46.8, 47.0,47.2,47.4,47.6,47.8, 48.0,48.2,48.4,48.6,48.8, 49.0,49.2,49.4,49.6,49.8, 50.0,50.1,50.2,50.3,50.4, 50.5,50.6,50.7,50.8,50.9, 51.0,51.1,51.2,51.3,51.4, 51.5,51.6,51.7,51.8,51.9, 52.0,52.1,52.2,52.3,52.4, 52.5,52.6,52.7,52.8,52.9, 53.0,53.1,53.2,53.3,53.4, 53.5,53.6,53.7,53.8,53.9, 54.0,54.2,54.4,54.6,54.8, 55.0,55.2,55.4,55.6,55.8, 56.0,56.2,56.4,56.6,56.8, 57.0,57.2,57.4,57.6,57.8, 58.0,58.2,58.4,58.6,58.8, 59.0,59.2,59.4,59.6,59.8 ,60.0,60.2,60.4,60.6,60.8, 61.0,61.2,61.4,61.6,61.8 ,62.0,62.2,62.4,62.6,62.8, 63.0,63.2,63.4,63.6,63.8, 64.0,64.2,64.4,64.6,64.8, 65.0,65.2,65.4,65.6,65.8, 66.0,66.2,66.4,66.6,66.8, 67.0,67.2,67.4,67.6,67.8, 68.0,68.2,68.4,68.6,68.8, 69.0,69.2,69.4,69.6,69.8, 70.0,70.2,70.4,70.6,70.8, 71.0,71.2,71.4,71.6,71.8 }; float duty_1 [325] = { 11.0,11.2,11.4,11.6,11.8, 12.0,12.2,12.4,12.6,12.8, 13.0,13.2,13.4,13.6,13.8, 14.0,14.2,14.4,14.6,14.8, 15.0,15.2,15.4,15.6,15.8, 16.0,16.2,16.4,16.6,16.8, 17.0,17.2,17.4,17.6,17.8, 18.0,18.2,18.4,18.6,18.8, 19.0,19.2,19.4,19.6,19.8, 20.0,20.2,20.4,20.6,20.8, 21.0,21.2,21.4,21.6,21.8, 22.0,22.2,22.4,22.6,22.8, 23.0,23.2,23.4,23.6,23.8, 24.0,24.2,24.4,24.6,24.8, 25.0,25.2,25.4,25.6,25.8, 26.0,26.2,26.4,26.6,26.8, 27.0,27.2,27.4,27.6,27.8, 28.0,28.2,28.4,28.6,28.8, 29.0,29.2,29.4,29.6,29.8, 30.0,30.2,30.4,30.6,30.8, 31.0,31.2,31.4,31.6,31.8, 32.0,32.2,32.4,32.6,32.8, 33.0,33.2,33.4,33.6,33.8, 34.0,34.2,34.4,34.6,34.8, 35.0,35.2,35.4,35.6,35.8, 36.0,36.2,36.4,36.6,36.8, 37.0,37.2,37.4,37.6,37.8, 38.0,38.2,38.4,38.6,38.8, 39.0,39.2,39.4,39.6,39.8, 40.0,40.2,40.4,40.6,40.8, 41.0,41.2,41.4,41.6,41.8, 42.0,42.2,42.4,42.6,42.8, 43.0,43.2,43.4,43.6,43.8, 44.0,44.2,44.4,44.6,44.8, 45.0,45.2,45.4,45.6,45.8, 46.0,46.2,46.4,46.6,46.8, 47.0,47.2,47.4,47.6,47.8, 48.0,48.2,48.4,48.6,48.8, 49.0,49.2,49.4,49.6,49.8, 50.0,50.1,50.2,50.3,50.4, 50.5,50.6,50.7,50.8,50.9, 51.0,51.1,51.2,51.3,51.4, 51.5,51.6,51.7,51.8,51.9, 52.0,52.1,52.2,52.3,52.4, 52.5,52.6,52.7,52.8,52.9, 53.0,53.1,53.2,53.3,53.4, 53.5,53.6,53.7,53.8,53.9, 54.0,54.2,54.4,54.6,54.8, 55.0,55.2,55.4,55.6,55.8, 56.0,56.2,56.4,56.6,56.8, 57.0,57.2,57.4,57.6,57.8, 58.0,58.2,58.4,58.6,58.8, 59.0,59.2,59.4,59.6,59.8 ,60.0,60.2,60.4,60.6,60.8, 61.0,61.2,61.4,61.6,61.8 ,62.0,62.2,62.4,62.6,62.8, 63.0,63.2,63.4,63.6,63.8, 64.0,64.2,64.4,64.6,64.8, 65.0,65.2,65.4,65.6,65.8, 66.0,66.2,66.4,66.6,66.8, 67.0,67.2,67.4,67.6,67.8, 68.0,68.2,68.4,68.6,68.8, 69.0,69.2,69.4,69.6,69.8, 70.0,70.2,70.4,70.6,70.8, 71.0,71.2,71.4,71.6,71.8 }; float duty_2 [325] = { 11.0,11.2,11.4,11.6,11.8, 12.0,12.2,12.4,12.6,12.8, 13.0,13.2,13.4,13.6,13.8, 14.0,14.2,14.4,14.6,14.8, 15.0,15.2,15.4,15.6,15.8, 16.0,16.2,16.4,16.6,16.8, 17.0,17.2,17.4,17.6,17.8, 18.0,18.2,18.4,18.6,18.8, 19.0,19.2,19.4,19.6,19.8, 20.0,20.2,20.4,20.6,20.8, 21.0,21.2,21.4,21.6,21.8, 22.0,22.2,22.4,22.6,22.8, 23.0,23.2,23.4,23.6,23.8, 24.0,24.2,24.4,24.6,24.8, 25.0,25.2,25.4,25.6,25.8, 26.0,26.2,26.4,26.6,26.8, 27.0,27.2,27.4,27.6,27.8, 28.0,28.2,28.4,28.6,28.8, 29.0,29.2,29.4,29.6,29.8, 30.0,30.2,30.4,30.6,30.8, 31.0,31.2,31.4,31.6,31.8, 32.0,32.2,32.4,32.6,32.8, 33.0,33.2,33.4,33.6,33.8, 34.0,34.2,34.4,34.6,34.8, 35.0,35.2,35.4,35.6,35.8, 36.0,36.2,36.4,36.6,36.8, 37.0,37.2,37.4,37.6,37.8, 38.0,38.2,38.4,38.6,38.8, 39.0,39.2,39.4,39.6,39.8, 40.0,40.2,40.4,40.6,40.8, 41.0,41.2,41.4,41.6,41.8, 42.0,42.2,42.4,42.6,42.8, 43.0,43.2,43.4,43.6,43.8, 44.0,44.2,44.4,44.6,44.8, 45.0,45.2,45.4,45.6,45.8, 46.0,46.2,46.4,46.6,46.8, 47.0,47.2,47.4,47.6,47.8, 48.0,48.2,48.4,48.6,48.8, 49.0,49.2,49.4,49.6,49.8, 50.0,50.1,50.2,50.3,50.4, 50.5,50.6,50.7,50.8,50.9, 51.0,51.1,51.2,51.3,51.4, 51.5,51.6,51.7,51.8,51.9, 52.0,52.1,52.2,52.3,52.4, 52.5,52.6,52.7,52.8,52.9, 53.0,53.1,53.2,53.3,53.4, 53.5,53.6,53.7,53.8,53.9, 54.0,54.2,54.4,54.6,54.8, 55.0,55.2,55.4,55.6,55.8, 56.0,56.2,56.4,56.6,56.8, 57.0,57.2,57.4,57.6,57.8, 58.0,58.2,58.4,58.6,58.8, 59.0,59.2,59.4,59.6,59.8 ,60.0,60.2,60.4,60.6,60.8, 61.0,61.2,61.4,61.6,61.8 ,62.0,62.2,62.4,62.6,62.8, 63.0,63.2,63.4,63.6,63.8, 64.0,64.2,64.4,64.6,64.8, 65.0,65.2,65.4,65.6,65.8, 66.0,66.2,66.4,66.6,66.8, 67.0,67.2,67.4,67.6,67.8, 68.0,68.2,68.4,68.6,68.8, 69.0,69.2,69.4,69.6,69.8, 70.0,70.2,70.4,70.6,70.8, 71.0,71.2,71.4,71.6,71.8 }; void setup() { // put your setup code here, to run once: Serial.begin(115200); uint32_t PWM = PWM_1; uint32_t PWM_0 = PWM_10; mcpwm_config_t pwm_config_0; mcpwm_config_t pwm_config_0_1; mcpwm_config_t pwm_config_0_2; mcpwm_config_t pwm_config_1; mcpwm_config_t pwm_config_1_1; mcpwm_config_t pwm_config_1_2; mcpwm_gpio_init(MCPWM_UNIT_1, MCPWM0A, GPIO_PWM0A_OUT); mcpwm_gpio_init(MCPWM_UNIT_0, MCPWM0B, GPIO_PWM0B_OUT); mcpwm_gpio_init(MCPWM_UNIT_1, MCPWM1A, GPIO_PWM1A_OUT); mcpwm_gpio_init(MCPWM_UNIT_0, MCPWM1B, GPIO_PWM1B_OUT); mcpwm_gpio_init(MCPWM_UNIT_1, MCPWM2A, GPIO_PWM2A_OUT); mcpwm_gpio_init(MCPWM_UNIT_0, MCPWM2B, GPIO_PWM2B_OUT); mcpwm_sync_config_t sync_ttt_0 ; sync_ttt_0.sync_sig = MCPWM_SELECT_TIMER0_SYNC; sync_ttt_0.timer_val = 500; sync_ttt_0.count_direction = MCPWM_TIMER_DIRECTION_UP; mcpwm_sync_config_t sync_ttt_1 ; sync_ttt_1.sync_sig = MCPWM_SELECT_TIMER1_SYNC; sync_ttt_1.timer_val = 0; sync_ttt_1.count_direction = MCPWM_TIMER_DIRECTION_UP; pwm_config_0.frequency = PWM_0; //frequency pwm_config_0.cmpr_a = 50.0; // Duty em porcentagem pwm_config_0.cmpr_b = 50.0; pwm_config_0.counter_mode = MCPWM_UP_DOWN_COUNTER; pwm_config_0.duty_mode = MCPWM_DUTY_MODE_0; pwm_config_0_1.frequency = PWM_0; //frequency pwm_config_0_1.cmpr_a = 50.0; // Duty em porcentagem pwm_config_0_1.cmpr_b = 50.0; pwm_config_0_1.counter_mode = MCPWM_UP_DOWN_COUNTER; pwm_config_0_1.duty_mode = MCPWM_DUTY_MODE_0; pwm_config_0_2.frequency = PWM_0; //frequency pwm_config_0_2.cmpr_a = 50.0; // Duty em porcentagem pwm_config_0_2.cmpr_b = 50.0; pwm_config_0_2.counter_mode = MCPWM_UP_DOWN_COUNTER; pwm_config_0_2.duty_mode = MCPWM_DUTY_MODE_0; pwm_config_1.frequency = PWM_0; //frequency pwm_config_1.cmpr_a = 50.0; // Duty em porcentagem pwm_config_1.cmpr_b = 50.0; pwm_config_1.counter_mode = MCPWM_UP_DOWN_COUNTER; pwm_config_1.duty_mode = MCPWM_DUTY_MODE_0; pwm_config_1_1.frequency = PWM_0; //fr equency pwm_config_1_1.cmpr_a = 50.0; // Duty em porcentagem pwm_config_1_1.cmpr_b = 50.0; pwm_config_1_1.counter_mode = MCPWM_UP_DOWN_COUNTER; pwm_config_1_1.duty_mode = MCPWM_DUTY_MODE_0; pwm_config_1_2.frequency = PWM_0; //fr equency pwm_config_1_2.cmpr_a = 50.0; // Duty em porcentagem pwm_config_1_2.cmpr_b = 50.0; pwm_config_1_2.counter_mode = MCPWM_UP_DOWN_COUNTER; pwm_config_1_2.duty_mode = MCPWM_DUTY_MODE_0; mcpwm_init(MCPWM_UNIT_0, MCPWM_TIMER_0, &pwm_config_0); //Configure PWM0A & PWM0B with above settings mcpwm_init(MCPWM_UNIT_0, MCPWM_TIMER_1, &pwm_config_0_1); //Configure PWM1A & PWM1B with above settings mcpwm_init(MCPWM_UNIT_0, MCPWM_TIMER_2, &pwm_config_0_2); //Configure PWM2A & PWM2B with above settings mcpwm_init(MCPWM_UNIT_1, MCPWM_TIMER_0, &pwm_config_1); //Configure PWM0A & PWM0B with above settings mcpwm_init(MCPWM_UNIT_1, MCPWM_TIMER_1, &pwm_config_1_1); //Configure PWM1A & PWM1B with above settings mcpwm_init(MCPWM_UNIT_1, MCPWM_TIMER_2, &pwm_config_1_2); //Configure PWM2A & PWM2B with above settings mcpwm_group_set_resolution( MCPWM_UNIT_0, 80000000) ; mcpwm_timer_set_resolution( MCPWM_UNIT_0, MCPWM_TIMER_0, 8000000); mcpwm_timer_set_resolution( MCPWM_UNIT_0, MCPWM_TIMER_1, 8000000); mcpwm_timer_set_resolution( MCPWM_UNIT_0, MCPWM_TIMER_2, 8000000); mcpwm_group_set_resolution( MCPWM_UNIT_1, 80000000) ; mcpwm_timer_set_resolution( MCPWM_UNIT_1, MCPWM_TIMER_0, 8000000); mcpwm_timer_set_resolution( MCPWM_UNIT_1, MCPWM_TIMER_1, 8000000); mcpwm_timer_set_resolution( MCPWM_UNIT_1, MCPWM_TIMER_2, 8000000); mcpwm_sync_configure(MCPWM_UNIT_0, MCPWM_TIMER_1, &sync_ttt_0); mcpwm_sync_configure(MCPWM_UNIT_0, MCPWM_TIMER_2, &sync_ttt_1); mcpwm_sync_configure(MCPWM_UNIT_1, MCPWM_TIMER_1, &sync_ttt_0); mcpwm_sync_configure(MCPWM_UNIT_1, MCPWM_TIMER_2, &sync_ttt_1); duty_index = 20; } void loop() { // put your main code here, to run repeatedly: mcpwm_set_duty(MCPWM_UNIT_1, MCPWM_TIMER_0, MCPWM_OPR_A, duty_0 [ duty_index % duty_modulo] ); mcpwm_set_duty(MCPWM_UNIT_0, MCPWM_TIMER_0, MCPWM_OPR_B, duty_0 [ duty_index % duty_modulo] ); mcpwm_set_duty(MCPWM_UNIT_1, MCPWM_TIMER_1, MCPWM_OPR_A, duty_1 [ duty_index % duty_modulo] ); mcpwm_set_duty(MCPWM_UNIT_0, MCPWM_TIMER_1, MCPWM_OPR_B, duty_1 [ duty_index % duty_modulo] ); mcpwm_set_duty(MCPWM_UNIT_1, MCPWM_TIMER_2, MCPWM_OPR_A, duty_2 [ duty_index % duty_modulo] ); mcpwm_set_duty(MCPWM_UNIT_0, MCPWM_TIMER_2, MCPWM_OPR_B, duty_2 [ duty_index % duty_modulo] ); duty_index ++; if ( duty_index >= 310 ) { duty_index = 10; } Serial.print("PWM : "); Serial.println( duty_index); delay (99); }
-
- Příspěvky: 2503
- Registrován: sob pro 29, 2012 10:22 pm
- Lokalita: pod Brnem
- Systémové napětí: 24V
Re: DIY 3kW Arduino MPPT Solar Charge Controller ESP32
Co přesně máš napsáno na esp? Nejlépe foto. Co jsem našel, prý lze využít i RMT k ovládání motoru. Bylo to i na githubu, ale nějak to zmizlo. Není to ani v archive. Při použití paměti co RMT má, by to ale mohlo dávat několik sekvencí pulzů. A ty by měly jít přenastavovat za běhu.
3x2000VA-VMP-par, NiCd 24V, 22x210-320Wp, 2x85A-VMPPT
-
- Příspěvky: 5451
- Registrován: pát úno 13, 2015 2:24 pm
- Lokalita: SO, SK
- Bydliště: SO, SK
Re: DIY 3kW Arduino MPPT Solar Charge Controller ESP32
TEST:
IN: 2 x 29 A / 53 V
OUT: 16.6 A / 173 V / 2890 W.
https://youtu.be/S0QWk4uKbt4
Tak a je tu problem, pri 174 V mi to prerazilo teplovodivu podlozku.
Na kolko voltov su tie podlozky dimenzovane ?
.
IN: 2 x 29 A / 53 V
OUT: 16.6 A / 173 V / 2890 W.
https://youtu.be/S0QWk4uKbt4
Tak a je tu problem, pri 174 V mi to prerazilo teplovodivu podlozku.
Na kolko voltov su tie podlozky dimenzovane ?
.
DC-AC inverter REC Lion DC-AC ESP32 DIY inv. 15 GB za sekundu DIY MPPT Holder
Zjedz vsetko, co si kupil, v obchode a netreba ti tasku, auto ci chladnicku.
Zjedz vsetko, co si kupil, v obchode a netreba ti tasku, auto ci chladnicku.
-
- Příspěvky: 2571
- Registrován: stř úno 02, 2022 10:30 am
- Lokalita: okolí Mělníka
- Systémové napětí: 48V
- Výkon panelů [Wp]: 13000
- Kapacita baterie [kWh]: 15
Re: DIY 3kW Arduino MPPT Solar Charge Controller ESP32
vzal jsem 19ku jako referencni a k ostatnim pinoum dopsal zpozdeni. Staci tak? meril jsem teda jen zpozdeni a nic jineho.rottenkiwi píše:Je tu niekto ochotny, kto ma ESP32 aj 4-kanalovy osciloskop, zmerat
fazovy posun medzi PWM na tych siestich pinoch ?
Kód: Vybrat vše
#define GPIO_PWM0A_OUT 19
#define GPIO_PWM0B_OUT 23 # 3,2us
#define GPIO_PWM1A_OUT 17 # 1,8us
#define GPIO_PWM1B_OUT 18 # 5,6us
#define GPIO_PWM2A_OUT 16 # 3,6us
#define GPIO_PWM2B_OUT 5 # 7,9us
-
- Příspěvky: 5451
- Registrován: pát úno 13, 2015 2:24 pm
- Lokalita: SO, SK
- Bydliště: SO, SK
Re: DIY 3kW Arduino MPPT Solar Charge Controller ESP32
Vdaka. Tak som to prepocital a teraz tam potrebujem dostat 60 120 a 180 *.
. Bez oscisloskopu to nema zmysel, nemozem pomerat prechodove javy
a na fetoch ani stabilitu faz pri v 40 - 100 kHz.
4 channel / 200 MHz / 4 Mpts / 5 Gsamples osc. 7235 - 13645 €
tak ked usporim na jedle 15 €, tak to mam za 909 mesiacov.
. Bez oscisloskopu to nema zmysel, nemozem pomerat prechodove javy
a na fetoch ani stabilitu faz pri v 40 - 100 kHz.
4 channel / 200 MHz / 4 Mpts / 5 Gsamples osc. 7235 - 13645 €
tak ked usporim na jedle 15 €, tak to mam za 909 mesiacov.
DC-AC inverter REC Lion DC-AC ESP32 DIY inv. 15 GB za sekundu DIY MPPT Holder
Zjedz vsetko, co si kupil, v obchode a netreba ti tasku, auto ci chladnicku.
Zjedz vsetko, co si kupil, v obchode a netreba ti tasku, auto ci chladnicku.
-
- Příspěvky: 2571
- Registrován: stř úno 02, 2022 10:30 am
- Lokalita: okolí Mělníka
- Systémové napětí: 48V
- Výkon panelů [Wp]: 13000
- Kapacita baterie [kWh]: 15
Re: DIY 3kW Arduino MPPT Solar Charge Controller ESP32
ja mam "jen" rigol ds1054z. 4 kanal, 1gsa/s a band 50Mhz a da se kodem odemknout na 100Mhz. Na spoustu veci to staci bohate.
-
- Příspěvky: 2503
- Registrován: sob pro 29, 2012 10:22 pm
- Lokalita: pod Brnem
- Systémové napětí: 24V
Re: DIY 3kW Arduino MPPT Solar Charge Controller ESP32
Proč nepoužít jen jeden časovač pro 6 vývodů? Budeš obracet tranzistorům sled fází aby jely vpřed a vzad?
3x2000VA-VMP-par, NiCd 24V, 22x210-320Wp, 2x85A-VMPPT
-
- Příspěvky: 7627
- Registrován: sob črc 19, 2014 8:56 pm
- Lokalita: severně od Brna
- Systémové napětí: 48V
- Výkon panelů [Wp]: 8kWp
- Kapacita baterie [kWh]: 12kWh
- Chci prodávat energii: NE
- Chci/Mám dotaci: NE
Re: DIY 3kW Arduino MPPT Solar Charge Controller ESP32
fázovej posun je kvůli lepšímu průběhu proudu, prostě se skládá z více fází jako pro 3f motor. V PC svýho času byly taky 6f a více napájecí zdroje procesoru. To je ten lesík kondenzátorů, cívek a mosfetů kolem patice procesoru. Jinak by na ty proudy vycházely nesmyslný kapacity kondenzátorů...
ostrov skoro 8kWp neustále ve stádiu zrodu: smartshunt(ex WBJR), MPPT150/45, MPPT 250/100(ex midnitesolar 150 clasic lite), 16S a různě P cca 340Ah Winston, MP II 5000,( ex Powerjack 8kW, ex samodomo cca 4kW). 48V DC rozvody a spotřebiče.
-
- Příspěvky: 2503
- Registrován: sob pro 29, 2012 10:22 pm
- Lokalita: pod Brnem
- Systémové napětí: 24V
Re: DIY 3kW Arduino MPPT Solar Charge Controller ESP32
No u motorů je to zajímavější, v nejnovějsím idf api se celá věc okolo mcpwm pomalu rozrůstá a přibývají různé věci jako modulace nosné frekvence pro stávající pwm, tři způsoby odkud brát zpětnou vazbu, definice skupin a známky hardvérového omezení při definici mrtvého času, brzný režim. Pomalu mi to připomíná moje první seznámení před asi více než dvaceti lety s controltechnic měničem když jsem ho chtěl pro můj první stroj. Ale oto by při buzení přes budiče a zpětnou vazbu mělo jít. Jeden časovač je určen jen pro zpětnou vazbu a jeden pro pár výstupů. Vidím, že interpretační jazyky přes které se píšou kódy, jsou tak dobré jak dobře jsou propojeny a vytvořeny se základními instrukcemi které nakonec nastaví překladač.
https://github.com/espressif/esp-idf/bl ... .rst#id573
hotový řešení, fázový zvyšovač napětí je do 100V a 20A je docela levný, okolo 150Kč, z TI. LM5121 a LM5122. Zajímavá součástka, která může do doplnění dokola fungovat i bez ESP a budiči. Teoreticky to chápu "mezi řádky" z datasheetu, že s vnějším řízením i s více fázemi než 4 a vyšším napětí než je 100 za použití řízení zvenku.
https://cz.mouser.com/ProductDetail/Tex ... 52BQ%3D%3D
https://github.com/espressif/esp-idf/bl ... .rst#id573
hotový řešení, fázový zvyšovač napětí je do 100V a 20A je docela levný, okolo 150Kč, z TI. LM5121 a LM5122. Zajímavá součástka, která může do doplnění dokola fungovat i bez ESP a budiči. Teoreticky to chápu "mezi řádky" z datasheetu, že s vnějším řízením i s více fázemi než 4 a vyšším napětí než je 100 za použití řízení zvenku.
https://cz.mouser.com/ProductDetail/Tex ... 52BQ%3D%3D
3x2000VA-VMP-par, NiCd 24V, 22x210-320Wp, 2x85A-VMPPT
-
- Příspěvky: 5451
- Registrován: pát úno 13, 2015 2:24 pm
- Lokalita: SO, SK
- Bydliště: SO, SK
Re: DIY 3kW Arduino MPPT Solar Charge Controller ESP32
KOmplementarna SPWM, nosna 20 kHz, modulacna 50 Hz. Pre menic na vystupe MPPT,
potencialne sfazovany s inym 50 Hz vstupom. Dead time 200 ns.
.
potencialne sfazovany s inym 50 Hz vstupom. Dead time 200 ns.
.
DC-AC inverter REC Lion DC-AC ESP32 DIY inv. 15 GB za sekundu DIY MPPT Holder
Zjedz vsetko, co si kupil, v obchode a netreba ti tasku, auto ci chladnicku.
Zjedz vsetko, co si kupil, v obchode a netreba ti tasku, auto ci chladnicku.
-
- Příspěvky: 5451
- Registrován: pát úno 13, 2015 2:24 pm
- Lokalita: SO, SK
- Bydliště: SO, SK
Re: DIY 3kW Arduino MPPT Solar Charge Controller ESP32
Teraz sa snazim aby MPPT komunikovalo s BMS a BMS sa znazi odhadnut,
kolko amperov max. potrebuje od MPPT a snazi sa o toto:
1, balancovat co najkratsi cas pasivne
2, balancovat aktivne, ak pasivne nestaci
3, ak sa balancuje aj aktivne, prelievat co najmenej naboja
4, snazit sa, aby boli clanky nad 3.5 V co najkratsi cas.
Su tieto priority a vysledok vo videu prijatelne, alebo to treba naprogramovat inak ?
Nalepsi je ten clanok vlavo a bolo nutne z tych troch vpravo preliat co najviac energie
do toho jedneho, ktory ma minimalny odpor ale najvacsiu kapacitu zo vsetkych.
1. riadok zaciatok bal., 2. r. koniec balancovania, 3. r. ustalenie bateriek bez odberu,
len BMS a odosielanie dat raz za 10 sec.
https://youtu.be/iSzO2t6TKu4
.
kolko amperov max. potrebuje od MPPT a snazi sa o toto:
1, balancovat co najkratsi cas pasivne
2, balancovat aktivne, ak pasivne nestaci
3, ak sa balancuje aj aktivne, prelievat co najmenej naboja
4, snazit sa, aby boli clanky nad 3.5 V co najkratsi cas.
Su tieto priority a vysledok vo videu prijatelne, alebo to treba naprogramovat inak ?
Nalepsi je ten clanok vlavo a bolo nutne z tych troch vpravo preliat co najviac energie
do toho jedneho, ktory ma minimalny odpor ale najvacsiu kapacitu zo vsetkych.
1. riadok zaciatok bal., 2. r. koniec balancovania, 3. r. ustalenie bateriek bez odberu,
len BMS a odosielanie dat raz za 10 sec.
https://youtu.be/iSzO2t6TKu4
.
DC-AC inverter REC Lion DC-AC ESP32 DIY inv. 15 GB za sekundu DIY MPPT Holder
Zjedz vsetko, co si kupil, v obchode a netreba ti tasku, auto ci chladnicku.
Zjedz vsetko, co si kupil, v obchode a netreba ti tasku, auto ci chladnicku.
-
- Příspěvky: 2571
- Registrován: stř úno 02, 2022 10:30 am
- Lokalita: okolí Mělníka
- Systémové napětí: 48V
- Výkon panelů [Wp]: 13000
- Kapacita baterie [kWh]: 15
Re: DIY 3kW Arduino MPPT Solar Charge Controller ESP32
nevim co te vede k tomu tam mit pasivni i aktivni balancing. Nestaci kvalitni aktivni? Teoreticky bys to mohl mit i obracene a pasivni udelat ze sepne az jako pojistka a spali to v nejakych vetsich odporech. Ale nezname myslenku tak tezko to rozporovat
-
- Příspěvky: 2503
- Registrován: sob pro 29, 2012 10:22 pm
- Lokalita: pod Brnem
- Systémové napětí: 24V
Re: DIY 3kW Arduino MPPT Solar Charge Controller ESP32
Pokud by to mělo mít něco jako ovládací a nastavovací menu, tz. že za běhu změnit výkon, nějaké charakteristiky spínání, volby typu programovacího relé, volby napětí, volby proudů, podmínky pro bms, atd. a před spuštěním konstanty typu napětí, frekvence, střídy, dead time, volby koloraturního typu vyhledávání MPPT, atp. byl by to začátek docela zajímavého projektu. Řekl bych že velmi dobré jako vzor jsou menu frekvenčních měničů, plno dat pro read only, a plno dat pro write offline nebo write online type. A samozřejmě propojení se síťovými periferiemi přes nějaký běžný protokol.
3x2000VA-VMP-par, NiCd 24V, 22x210-320Wp, 2x85A-VMPPT
-
- Podobná témata
- Odpovědi
- Zobrazení
- Poslední příspěvek
-
- 1 Odpovědi
- 970 Zobrazení
-
Poslední příspěvek od MalyJaponec
-
-
Daruji MPT-7210A MPPT Solar Panel Charge Control
od Mikel » » v Daruji
Daruji MPT-7210A MPPT Solar Panel Charge Control
- 12 Odpovědi
- 2709 Zobrazení
-
Poslední příspěvek od JonasPP
-
-
- 0 Odpovědi
- 688 Zobrazení
-
Poslední příspěvek od kodl69
-
- 10 Odpovědi
- 1129 Zobrazení
-
Poslední příspěvek od RoKur
-
-
FVE ohřev vody s MPPT ECO Solar Boost MPPT-3000 3,5kW PRO
od mfve » » v Boilery, ohřev TUV, vytápění, klimatizace
FVE ohřev vody s MPPT ECO Solar Boost MPPT-3000 3,5kW PRO
- 51 Odpovědi
- 9070 Zobrazení
-
Poslední příspěvek od Kostěj
-