Jūs esate neprisijungęs lankytojas. Norint dalyvauti diskusijose, būtina užsiregistruoti ir prisijungti prie forumo.
Prisijungę galėsite kurti naujas temas, atsakyti į kitų užduotus klausimus, balsuoti forumo apklausose.
Administracija pasilieka teisę pašalinti pasisakymus bei dalyvius,
kurie nesilaiko forumo taisyklių.
Pastebėjus nusižengimus, prašome pranešti.
Dabar yra 2025 11 20, 23:47. Visos datos yra GMT + 2 valandos.
Jūs negalite rašyti naujų pranešimų į šį forumą Jūs negalite atsakinėti į pranešimus šiame forume Jūs negalite redaguoti savo pranešimų šiame forume Jūs negalite ištrinti savo pranešimų šiame forume Jūs negalite dalyvauti apklausose šiame forume
kokiu didziausiu dazniu galima paleisti analogRead ?
dabar ismatuotas greitis 105.31 – 113.12 mkS (~9 kHz)
galima kaip nors pagreitinti ?
Jei pamatuoti viena karta PWM 90 kHz 50 %, su analogRead (~9 kHz)
kokia bus ismatuota reiksme ?
0 % arba 100 % ? ar 50 % ?
Sakysim programa nuskaito analogRead A, B, C reiksmes nuo taimerio pertraukimu kas 2 mili Sek ir jas issaugo.
poto darom Serial.print A, B, C
uztrunka - 3 mili Sek.
C reiksme isves nauja ar sena ?
Jei pamatuoti viena karta PWM 90 kHz 50 %, su analogRead (~9 kHz)
kokia bus ismatuota reiksme ?
0 % arba 100 % ? ar 50 % ?
O PWM su arduino taktiniu dazniu sinchronizuotas? Nes jei ne, tai visiska loterija.
satigis rašo:
Sakysim programa nuskaito analogRead A, B, C reiksmes nuo taimerio pertraukimu kas 2 mili Sek ir jas issaugo.
poto darom Serial.print A, B, C
uztrunka - 3 mili Sek.
C reiksme isves nauja ar sena ?
Jei darysi viska pertraukime - naujo pertraukimo neleisk, kol duomenu neatprintino.
satigis rašo:
kuri geriau rinktis STM32 ar ESP32 ?
O WiFi reikia? Nes jei ne. tai su STM32 pavyzdziu rasi daugiau.
204 psl pauksciu kalba
kiek ja supratu, tai man nepavyks
o kaip daromas sichronizavimas PWM su AnalogRead, pats principas? nesigilynant i smulkmenas
jei PWM ir AnalogRead daro tas pats kontroleris
ir jei 2 skirtingi
STM32 didesniu dazniu daro AnalogRead ?
ar kontrolerio schemotecnikoje stovi kondensatorius ant porto iejimo ir tai jau yra riba matuoti be dideliu paklaidu ? ir taktinis daznis to neitakoja
Su analogRead() matuojama arba analogines itampos reiksme (analoginiuose iejimuose) arba grazinama diskretine reiksme (skaitmeniniuose iejimuose), todel jei matuosi skaitmeninius iejimus, tai rezultata glimai gausi greiciau.
Dar gali pakeisti analog prescaller reiksme i kompromisine ADCSRA.ADPS[2..0]
Nors jei tau reikia pamatuoti DUTY reiksme, tai tam yra Input Capture Unit
Is bedos DUTY gali tiesiog bukai matuoti per pulseIn()
STM32 nelygu kuri imsi, jie buna nuo 16MHz iki keliu GHz, o ESP taip pat, priklauso koki dazni pasirinksi, nuo 32kHz iki 96MHz.
Dar ivertink, kad ESP gali buti programuojamas C++/ASM arba LUA, kuri yra JavaScript atmaina.
Su analogRead() matuojama arba analogines itampos reiksme (analoginiuose iejimuose) arba grazinama diskretine reiksme (skaitmeniniuose iejimuose), todel jei matuosi skaitmeninius iejimus, tai rezultata glimai gausi greiciau.
Dar gali pakeisti analog prescaller reiksme i kompromisine ADCSRA.ADPS[2..0]
Nors jei tau reikia pamatuoti DUTY reiksme, tai tam yra Input Capture Unit
Is bedos DUTY gali tiesiog bukai matuoti per pulseIn()
STM32 nelygu kuri imsi, jie buna nuo 16MHz iki keliu GHz, o ESP taip pat, priklauso koki dazni pasirinksi, nuo 32kHz iki 96MHz.
Dar ivertink, kad ESP gali buti programuojamas C++/ASM arba LUA, kuri yra JavaScript atmaina.
204 psl pauksciu kalba Smile
kiek ja supratu, tai man nepavyks
kaip cia pas jus viskas sudetinga man
man reik analogines reiksmes DUTY, per laika T (constant)
Sakysim kintama AC paleista per dioda. Matuojam ir reikalingas tik teigiama pusperiodis
AC daznis kinta.
Input Capture Unit - gal galima truputi smulkiau/suprantamiau ?
o kaip daromas sichronizavimas PWM su AnalogRead, pats principas? nesigilynant i smulkmenas
jei PWM ir AnalogRead daro tas pats kontroleris
ir jei 2 skirtingi
STM32 didesniu dazniu daro AnalogRead ?
ar kontrolerio schemotecnikoje stovi kondensatorius ant porto iejimo ir tai jau yra riba matuoti be dideliu paklaidu ? ir taktinis daznis to neitakoja
Paskutinį kartą redagavo satigis, 2017 10 13, 09:27. Redaguota 1 kartą
Pvz. STM32F103 serija turi 2x ADC ir 10 arba 16 kanalų (multipleksoriai prieš kiekvieną ADC). Fsample iki 1MHz ir galima naudoti DMA. Tai daug tobuliau negu AVR.
Pvz. STM32F103 serija turi 2x ADC ir 10 arba 16 kanalų (multipleksoriai prieš kiekvieną ADC). Fsample iki 1MHz ir galima naudoti DMA. Tai daug tobuliau negu AVR.
Pvz. STM32F103 serija turi 2x ADC ir 10 arba 16 kanalų (multipleksoriai prieš kiekvieną ADC). Fsample iki 1MHz ir galima naudoti DMA. Tai daug tobuliau negu AVR.
Arduino tas pats 1 MHz, informacija is youtube
Tai tu čia kalbi apie pačio ADC veikimo dažnį, paprasčiausiai paleidi be prescaler, ir turi kas 13 mikrovaldiklio taktų naują ADC reikšmę. Tik tada naujos bėdos bus tokios, kad turėsi kas 13 taktų pasiiminėti ADC reikšmes ir dar suspėti jas apdoroti, net nekalbant apie tai kad adc rezultatas bus labai netikslus (tai bus dėl Atmel AVR naudojamos sample and hold ADC veikimo principo, internete gali rasti kas tai yra ir kodėl didinant dažnį kenčia tikslumas). Datašyte aiškiai nurodyta kad maksimalus ADC dažnis 15ksps prie maksimalaus tikslumo.
Tai, visgi, vaike, apsispresk, ar tau dazni reikia pamatuoti, ar DUTY, ir kokie nusimato periodu reziai (kiek kinta daznis)?
pvz gali panaudoti PCINTxx (PinChange) arba INTx ISR() ir nuskaitydamas aparatino timerio bei isorinio skaitliuko duomenis gauti kiek fClkIO tarp signalo pokyciu ir taip isgauti dazni/perioda/duty ir t.t.
Jei tenkina mazesnis nei fClkIO diskretiskumas, tada galbut galima panaudoti prescaller timeriui ir naudoti ne 32bit, bet 16bit arifmetika.
Tai, visgi, vaike, apsispresk, ar tau dazni reikia pamatuoti, ar DUTY, ir kokie nusimato periodu reziai (kiek kinta daznis)?
pvz gali panaudoti PCINTxx (PinChange) arba INTx ISR() ir nuskaitydamas aparatino timerio bei isorinio skaitliuko duomenis gauti kiek fClkIO tarp signalo pokyciu ir taip isgauti dazni/perioda/duty ir t.t.
Jei tenkina mazesnis nei fClkIO diskretiskumas, tada galbut galima panaudoti prescaller timeriui ir naudoti ne 32bit, bet 16bit arifmetika.
is bedos galima ir 9 bit 10 aisku geriau 32 prestyzo reikalas
uzduotis tokia
Matinimo saltinis DC, kuris nebijo trumpinimo, (kW, ~ 12 A jau trumpinimas)
Lygegreciai elektrolitas. (nebutinas)
Apkrovimas keli ar keliolika omu varza (nera zinoma, ji kinta laike, sekundes, neprognuozojamai), valdama per lauko tranzistoriu.
Lauko tranzistorius valdomas PWM.
kontroleris matuoja kas 2 mili sek "timerInterupt" ir taip 10 kartu, paskaiciuoja vidurki. 2 analogRead (matavimas uztrunka > 300 mkS)
Visuokie programos skaiciavimai kartu su analoRead 1 mili S
Reikia isvesti i ekrana reiksmes kartu su tekstu, Kas uztrunka > 4 mili sek
(galima skaidyti i gabalus ir isvedineti tarp matavimu, problema sprendziama)
Pagrindine uzduotis paskaiciuoti W = IxU ir isgauti maks W per laika t (~1 sek), reguliuojant PWM DUTY.
U priklauso nuo I, ne tiesiskai
Bandau surasti kopromisa tarp
PWM daznio, naudingumo koeficiento (tranzistoriaus temperaturos), elektrolito gabaritu, analoRead, Serial.print
Jei bus itampos pulsacija, tai cia geris Reik per laika tureti maks W (vidurki)
dabar gaunasi kad kuo didesnis elektrolitas tuo geresnis rezultatas (kompromisinis). Noris ji ismesti (sumazinti) aplamai padidinus PWM dazni O cia prasideda analoRead su momentinem reiksmem.
Jei reikia max W tai kam tau PWM? paduok tiesiai i apkrova visa napruga ir bus tau max W (nemeluoju)
Todėl kad:
satigis rašo:
U priklauso nuo I, ne tiesiskai
Iš to seka kad temos autorius normaliai nepaaiškina užduoties, nes galbūt visą tą išspręsti būtų galima ir kitais būdais, be didelio AnalogRead dažnio. Nuojauta kužda kad reikalas su saulės panelėmis ar panašiu reikalu susijęs, bet tada jau į MPPT reiktų žiūrėti, o ne ADC greitį didinti.
Nors net taisyklėse rašoma kad išsamiai aprašyti savo klausimą (problemą), bet pastebiu kad daugeliu atveju pirma vieną puslapį pridiskutuojame, kol iki išsamaus problemos aprašymo prieiname.
Man irgi kilo mintis apie saules paneles, bet norejau kad pats vaikis ta isstenetu, o ne krikstolini rutuli (dar nesutaisyta) pasijungineti.
Jei jam tik pwm karpyta itampa/srove pamatuoti, tai tegul susidomi integratoriais, kuriu integravimo periodas kelis kart didesnis uz didziausia imanoma pwm perioda, o ten jau ir letas adc sueis.
Tai gal tu vietoje kažkokių nesąmonių išradinėjimo visgi paskaityk kas tai yra MPPT, ir kai suprasi teliks atlikti 3-5 stendinius voltamperinės charakteristikos matavimus, kad jau poto galėtum tą MPPT normaliai realizuoti mikrovaldiklio pagalba. Nes dabar bandai kurti kažkokią nesąmonę, kuriai teks kas kažkokį laiko tarpą (pvz 1-5 sekundes) atlikti matavimus visam duty cycle diapozone ir iš gautų reikšmių naudoti tą kurios U*I yra didžiausias. Bet žinok niekas taip nedaro.