více PWM výstupů z jednoho

Home Assistant, 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 ...
Odpovědět
Uživatelský avatar
tomas
Příspěvky: 2567
Registrován: pon bře 07, 2011 11:05 am
Reputace: 236
Bydliště: Třinec

více PWM výstupů z jednoho

Příspěvek od tomas »

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?
Chci elektrárnu s licencí a s prodejem přebytků nebo komunitní výměnou energie: ANO
Uživatelský avatar
rottenkiwi
Příspěvky: 5451
Registrován: pát úno 13, 2015 2:24 pm
Reputace: 285
Lokalita: SO, SK
Bydliště: SO, SK

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

Příspěvek od rottenkiwi »

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ť.
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.
Uživatelský avatar
tomas
Příspěvky: 2567
Registrován: pon bře 07, 2011 11:05 am
Reputace: 236
Bydliště: Třinec

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

Příspěvek od tomas »

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ý.
Chci elektrárnu s licencí a s prodejem přebytků nebo komunitní výměnou energie: ANO
Uživatelský avatar
rottenkiwi
Příspěvky: 5451
Registrován: pát úno 13, 2015 2:24 pm
Reputace: 285
Lokalita: SO, SK
Bydliště: SO, SK

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

Příspěvek od rottenkiwi »

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.
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.
Uživatelský avatar
tomas
Příspěvky: 2567
Registrován: pon bře 07, 2011 11:05 am
Reputace: 236
Bydliště: Třinec

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

Příspěvek od tomas »

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.
Chci elektrárnu s licencí a s prodejem přebytků nebo komunitní výměnou energie: ANO
Uživatelský avatar
rottenkiwi
Příspěvky: 5451
Registrován: pát úno 13, 2015 2:24 pm
Reputace: 285
Lokalita: SO, SK
Bydliště: SO, SK

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

Příspěvek od rottenkiwi »

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 ?
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.
Uživatelský avatar
tomas
Příspěvky: 2567
Registrován: pon bře 07, 2011 11:05 am
Reputace: 236
Bydliště: Třinec

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

Příspěvek od tomas »

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
Chci elektrárnu s licencí a s prodejem přebytků nebo komunitní výměnou energie: ANO
Uživatelský avatar
rottenkiwi
Příspěvky: 5451
Registrován: pát úno 13, 2015 2:24 pm
Reputace: 285
Lokalita: SO, SK
Bydliště: SO, SK

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

Příspěvek od rottenkiwi »

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 €.
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.
Uživatelský avatar
tomas
Příspěvky: 2567
Registrován: pon bře 07, 2011 11:05 am
Reputace: 236
Bydliště: Třinec

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

Příspěvek od tomas »

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.
Chci elektrárnu s licencí a s prodejem přebytků nebo komunitní výměnou energie: ANO
kodl69
Příspěvky: 7367
Registrován: sob črc 19, 2014 8:56 pm
Reputace: 865
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: více PWM výstupů z jednoho

Příspěvek od kodl69 »

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 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.
Uživatelský avatar
tomas
Příspěvky: 2567
Registrován: pon bře 07, 2011 11:05 am
Reputace: 236
Bydliště: Třinec

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

Příspěvek od tomas »

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.
Chci elektrárnu s licencí a s prodejem přebytků nebo komunitní výměnou energie: ANO

Odpovědět
  • Podobná témata
    Odpovědi
    Zobrazení
    Poslední příspěvek