Fórum | MyPower.CZ | Obnovitelné zdroje energie - energetická soběstačnost | Právě je pát dub 20, 2018 5:46 am


více PWM výstupů z jednoho

Arduino, SDS, Raspberry, Linux, vzdálený dohled, automatizace, měření, opensource, closedsource, hotová řešení, DIY, stavebnice, komponenty, software, postupy, návody, schémata, rady, zkušenosti ...

více PWM výstupů z jednoho

Příspěvekod tomas » ned říj 09, 2016 7:54 pm

Mám zařízení jenž má jeden PWM výstup pro řízení SSR (přebytky), ale já potřebuji více PWM výstupů (minimálně 8) v kaskádě. Pokud dojde k saturaci prvního výstupu začne být aktivní další atd...
Je možné naprogramovat např. Arduino na tuto funkci jako zvyšovač počtu PWM výstupu který bych připojil na jeden PWM výstup zařízení a potom bych jich měl 8?
Uživatelský avatar
tomas
 
Příspěvky: 1544
Registrován: pon bře 07, 2011 11:05 am
Bydliště: Třinec
Reputation: 43

Re: více PWM výstupů z jednoho

Příspěvekod rottenkiwi » ned říj 09, 2016 8:06 pm

Arduino Mega má 15 PWM pinov, frekvencia je 16 MHz, dividers sú : 1, 8, 64, 256, 1024.
Ak to chce človek naprogramovať presne, je s tým babračka a bolo by vhodné mať
osciloskop, ak potrebujeme "fast" PWM. Žiaľ ja mám max. jednoduchý multimeter,
takže sa do podobných vecí zatiaĺ nepúšťam, ale sú tu ľudia, ktorí by to určite
vedeli odladiť.
BTC: 1LWBcqUCX4UiTgzxTmsfyL83KG8DQiq2gd LTC: LX4UmmYHzT293zcJJ4BjTcPTRSHoLWLDn7
Vodík LiFePO charge BMS SEI formation Float IBM Quantum NREL eff. 787 Dreamliner Issue Rado Danilák TATRA
Uživatelský avatar
rottenkiwi
 
Příspěvky: 1292
Registrován: pát úno 13, 2015 2:24 pm
Bydliště: SO, SK
Reputation: 46

Re: více PWM výstupů z jednoho

Příspěvekod tomas » ned říj 09, 2016 8:29 pm

Tak ono by to teoreticky šlo řešit i jen 7 výstupy na relátka. Pokud dojde k saturaci PWM výstupu sepne první relé a jedním kontaktem přepne PWM o jeden stupeň výše a druhým kontaktem pustí do předchozího stupně plné napětí zdroje. Takhle nějak jsem ten algoritmus myslel. Ale raději bych se relátkům vyhnul. Nejsem programátor tak nevím jestli to lze naprogramovat a jestli lze dobře rozeznat plně saturovaný PWM výstup.

Myslím si že jde jen o to vstupem procesoru snímat PWM signál a přenášet ho bez změny na výstup a pokud dojde k saturaci vstupního PWM signálu tak 1. stupeň nechá saturovaný a vstupní PWM signál začne přenášet na 2. výstupní stupeň a tak dále (do nekonečna :-) ). Zatížení procesoru si myslím velmi malé. Osciloskop nevím k čemu by byl nutný.
Uživatelský avatar
tomas
 
Příspěvky: 1544
Registrován: pon bře 07, 2011 11:05 am
Bydliště: Třinec
Reputation: 43

Re: více PWM výstupů z jednoho

Příspěvekod rottenkiwi » ned říj 09, 2016 9:07 pm

Keďže je to PWM výstup, tak ja určujem či bude 10 alebo 100 % duty cycle.
Takže odniekaľ musím brať dáta, ako mám tu hodnotu PWM pinu nastaviť.
Aj ju nastavím na 100 % tak je výstup saturovaný na max.

Odkiaľ budem čerpať hodnoty, či stačí 1 alebo 8 PWM pinov nastaviť na x % ?

Ono sú tam nejaké záludnosti, čo riešila aj Vata a keď ide o vyššie frekvencie,
nerobí Arduino to čo má, preto ten osciloskop alebo zvukovka a soft alebo dobré uši :) nad 15 kHz.
BTC: 1LWBcqUCX4UiTgzxTmsfyL83KG8DQiq2gd LTC: LX4UmmYHzT293zcJJ4BjTcPTRSHoLWLDn7
Vodík LiFePO charge BMS SEI formation Float IBM Quantum NREL eff. 787 Dreamliner Issue Rado Danilák TATRA
Uživatelský avatar
rottenkiwi
 
Příspěvky: 1292
Registrován: pát úno 13, 2015 2:24 pm
Bydliště: SO, SK
Reputation: 46

Re: více PWM výstupů z jednoho

Příspěvekod tomas » ned říj 09, 2016 9:28 pm

rottenkiwi píše:Keďže je to PWM výstup, tak ja určujem či bude 10 alebo 100 % duty cycle.
Takže odniekaľ musím brať dáta, ako mám tu hodnotu PWM pinu nastaviť.
Aj ju nastavím na 100 % tak je výstup saturovaný na max.


Aha tak PWM výstupem to asi lehce nepůjde, musel bych ze vstupního PWM signálu spočítat hodnoty pro nastavení výstupního PWM signálu. Tak by to ale mělo jít klasickým digitálním vstupem a výstupem ne? PWM signál jsou vlastně 0 a 1 a poměr délky trvání 0 nebo 1 dává přibližnou analogovou hodnotu signálu. Když bude PWM signál určitou dobu v hodnotě 1 tak to znamená že je saturovaný a je nutno připnout další výstupní pin v kaskádě.
Tak jinak. Lze procesor nastavit tak aby stav vstupního pinu (s PWM signálem) kopíroval (přenesl) na stav výstupního pinu a zároveň tento průběh signálu analyzoval? A pokud v analýze zjistí že signál je stále 1 a neklesá na 0 (za dobu periody nastavené frekvence PWM?) tak výstupní pin nechá v 1 a vstup bude potom kopírovat na další stupeň výstupu a tak dále?
Pokud se vstupní PWM signál bude stále měnit z 1 na 0 zůstane zachován předchozí stav.
Pokud vstupní PWM signál bude určitou dobu v 0 tak začne procesor výstupy zase zpětně vypínat do doby než se ve vstupu neobjeví 1.
Uživatelský avatar
tomas
 
Příspěvky: 1544
Registrován: pon bře 07, 2011 11:05 am
Bydliště: Třinec
Reputation: 43

Re: více PWM výstupů z jednoho

Příspěvekod rottenkiwi » ned říj 09, 2016 10:35 pm

Ano, logika je jednoduchá, samplujem signál, spočítam nejakú hodnotu akú má PWM šírku, zapnem
postupne PWM 1 až .... x. Ale či to v praxi aj korektne pobeží ? Kto to odladí ? Čo bude kontrolovať,
či Arduino beží korektne, watch dog ? Ak zlyhá napájanie, bude tam záloha ? Je potrebné 16.bit rozlíšenie ?
BTC: 1LWBcqUCX4UiTgzxTmsfyL83KG8DQiq2gd LTC: LX4UmmYHzT293zcJJ4BjTcPTRSHoLWLDn7
Vodík LiFePO charge BMS SEI formation Float IBM Quantum NREL eff. 787 Dreamliner Issue Rado Danilák TATRA
Uživatelský avatar
rottenkiwi
 
Příspěvky: 1292
Registrován: pát úno 13, 2015 2:24 pm
Bydliště: SO, SK
Reputation: 46

Re: více PWM výstupů z jednoho

Příspěvekod tomas » pon říj 10, 2016 9:36 am

Takže přes ty digitální vstupní a výstupní piny by to šlo jo? Jedno Arduino mám takže musím koupit ještě jedno kterým budu generovat PWM a druhým Arduinem se ten PWM signál před digitální piny pokusím rozšířit na minimálně 8 výstupů v kaskádě.
Když se Aruino sekne (nebo cokoliv jiného) tak se nic neděje jen se prostě neohřeje voda, klima a nabíječka auta nebude regulovat výkon atd.... To není zařízení na kterém závisí něčí život. Jde o využití přebytků.
Budou tam SSR spínané v 0 takže rychlost minimálně taková aby za čas jednoho kmitu sinusovky prošla informace přes toto zařízení a SSR vědělo jestli má sepnout nebo ne. Kmitočet PWM 50 - 500Hz dle převodníku: http://www.cncshop.cz/prevodnik-pwm-na-0-10v
GreenBonO má při fázovém řízení 100Hz a při použití převodníku 0-10V se frekvence nastavuje na 75Hz nebo 300Hz:
http://www.yorix.cz/cz/greenbono/greenb ... na_do6.pdf
Uživatelský avatar
tomas
 
Příspěvky: 1544
Registrován: pon bře 07, 2011 11:05 am
Bydliště: Třinec
Reputation: 43

Re: více PWM výstupů z jednoho

Příspěvekod rottenkiwi » pon říj 10, 2016 10:00 am

Ja stále nerozumiem, že načo dve Arduina. Načítam nejako informáciu, cez analog pin
o napatí baterky, alebo log 0 / 1, ktorú mi dá regulátor, že už je nabité a potom,
podľa dostupného výkonu pálim.

Ja detegujem len napatie LiFE článkov a celej banky a ak jedno z toho je vyššie ako
uroven 1, pálim 1 bojler, ak vyššie ako uroven 2 pálim 2 bojler, ak ešte stále je čo páliť,
ekvalizujem olovo, ak ešte stále, zapínam 1., 2., 3., halogén :) Obyčajné relátka z dx.com
a 3 stykače za 18 €.
BTC: 1LWBcqUCX4UiTgzxTmsfyL83KG8DQiq2gd LTC: LX4UmmYHzT293zcJJ4BjTcPTRSHoLWLDn7
Vodík LiFePO charge BMS SEI formation Float IBM Quantum NREL eff. 787 Dreamliner Issue Rado Danilák TATRA
Uživatelský avatar
rottenkiwi
 
Příspěvky: 1292
Registrován: pát úno 13, 2015 2:24 pm
Bydliště: SO, SK
Reputation: 46

Re: více PWM výstupů z jednoho

Příspěvekod tomas » pon říj 10, 2016 10:11 am

Dvě Arduina abych si to mohl doma vyzkoušet. Zařízení ze kterého leze PWM nemám doma, takže jedno Arduino bude jen jako generátor PWM pro otestování.

Pokud by to dělal pouze úrovňovým řízením dle napětí jako ty, tak potřebuji 8 úrovní napětí + hystereze a jsem mimo napěťový pracovní rozsah akumulátoru. Chci mít pouze jednu úroveň a PI regulátor jako generátor PWM.
Uživatelský avatar
tomas
 
Příspěvky: 1544
Registrován: pon bře 07, 2011 11:05 am
Bydliště: Třinec
Reputation: 43

Re: více PWM výstupů z jednoho

Příspěvekod kodl69 » pon říj 10, 2016 12:29 pm

já bych to řešil úplně jinak. ten krám má výstup pwm, na ketrý stačí připojit odpor a kondenzátor a mám 0-10V signál. Pokud dám odporový dělič 1:1 mám 5V akorát pro arduino analog in. A napsat nějakou sekvenci, kde pro 0-128 z analogu je 0-255 pwm na některám pinu je easy, jenom to chce podmínku, aby to při víc než 255 nepřeteklo a pwm se nevypnula. stejně tak další rozsahy.
něco jako:
hodnota=analogread(A0);
if (hodnota<127) {
analogwrite(3, (hodnota*2))
}
else {
analogwrite(3,255);
if (hodnota<255){
analogwrite(5, (hodnota*2-255))
}else analogwrite(5,255);
..... další stupně
}
tohle je jenom idea, je potřeba definovat co je vstup a co výstup, deklarace proměnných a nějaký ošetření chybnýho měření ADC, aby to neskákalo semo tamo s nějakým rušením. v Uno (nebo micro, mini - doporučuju pro vestavbu do zařízení) je 6 pwm pinů, a ten sedmý výstup bych dal jenom na relé. Celý aparát bude tak do 100Kč, bez těch solid state relé. Jenom musíš nastavit nesmyslně nízký kmitočet pwm, viz: http://playground.arduino.cc/Code/PwmFrequency na to by jistě stačilo tu pwm generovat jako bitbang, takže na jakýmkoliv výstupu. Vzhledem ke spínání v nule je 31Hz pro PWM zbytečně moc, a 1Hz PWM ....
Na zkoušení stačí arduino jedno, a jeden potenciometr zapojenej mezi + - a výstup na analog pin. Stačí trochu matematiky a základní příklady co jsou v ide: analogread a anlogwrite.
ostrov 3000Wp ve stádiu zrodu: 6x noark CHSM6610P250, 6x250Wp z I4wifi, 4x auria 120Wp, midnite classic 150 lite+whizbang jr., 16S a různě P cca 300Ah Winston, Powerjack 8kW (reálně 6kW po úpravě). 48V DC rozvody a spotřebiče.
kodl69
 
Příspěvky: 2300
Registrován: sob črc 19, 2014 7:56 pm
Reputation: 163

Re: více PWM výstupů z jednoho

Příspěvekod tomas » pon říj 10, 2016 1:16 pm

kodl69 píše:já bych to řešil úplně jinak. ten krám má výstup pwm, na ketrý stačí připojit odpor a kondenzátor a mám 0-10V signál. Pokud dám odporový dělič 1:1 mám 5V akorát pro arduino analog in.


Proč z digitálního PWM signálu dělat analog a následně s analogu dělat zase digitální PWM? To nejde přímo zpracovávat ten digitální PWM?

kodl69 píše:A napsat nějakou sekvenci, kde pro 0-128 z analogu je 0-255 pwm na některám pinu je easy, jenom to chce podmínku, aby to při víc než 255 nepřeteklo a pwm se nevypnula. stejně tak další rozsahy.
něco jako:
hodnota=analogread(A0);
if (hodnota<127) {
analogwrite(3, (hodnota*2))
}
else {
analogwrite(3,255);
if (hodnota<255){
analogwrite(5, (hodnota*2-255))
}else analogwrite(5,255);
..... další stupně
}
tohle je jenom idea, je potřeba definovat co je vstup a co výstup, deklarace proměnných a nějaký ošetření chybnýho měření ADC, aby to neskákalo semo tamo s nějakým rušením. v Uno (nebo micro, mini - doporučuju pro vestavbu do zařízení) je 6 pwm pinů, a ten sedmý výstup bych dal jenom na relé. Celý aparát bude tak do 100Kč, bez těch solid state relé. Jenom musíš nastavit nesmyslně nízký kmitočet pwm, viz: http://playground.arduino.cc/Code/PwmFrequency na to by jistě stačilo tu pwm generovat jako bitbang, takže na jakýmkoliv výstupu. Vzhledem ke spínání v nule je 31Hz pro PWM zbytečně moc, a 1Hz PWM ....

díky to budu muset ještě nastudovat, ale LEDku už jsem pomocí Arduina rozblikal ;)

kodl69 píše: Na zkoušení stačí arduino jedno, a jeden potenciometr zapojenej mezi + - a výstup na analog pin. Stačí trochu matematiky a základní příklady co jsou v ide: analogread a anlogwrite.


To máš pravdu, zvládnout otestovat by to mělo i jedno Arduino, to mne nenapadlo.
Uživatelský avatar
tomas
 
Příspěvky: 1544
Registrován: pon bře 07, 2011 11:05 am
Bydliště: Třinec
Reputation: 43


Zpět na Automatizace, měření, statistiky

Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 1 návštěvník

Reputation System ©'