PWM vs PWMfrequency

Wiring, C++, C, Java, ...
Pravidla fóra
Toto subfórum slouží k řešení obecných otázek kolem programování (konstrukce, knihovny, alokace paměti, ...)
Uživatelský avatar
pavel1tu
Příspěvky: 2054
Registrován: 26 říj 2017, 08:28
Reputation: 0
Bydliště: Trutnov
Kontaktovat uživatele:

PWM vs PWMfrequency

Příspěvek od pavel1tu » 28 led 2019, 09:01

Asi jsem blbej, ale mám dotaz....leží mi to v hlavě

Využívám klasické PWM, na výstupu arduina, výstup má def. 500Hz (podle manuálu) a já měním "střídu" - 0-255

Vyčetl jsem na jistém foru názor (nevím jestli to zkoušel), že pomocí PWMfrequency lze zvýšit frekvenci výstupu až na nějakých 31250Hz a potom bude regulace "jemnější" a světlo nebude tak blikat.

Dle mne se tu pomíchaly hrušky a jablka, ani netuším jestli by to "silová část" zvládla ...

nezabýval se tím někdo, já než se dostanu domů za pár dní, bude mi to ležet v hlavě...

PS: musím si koupit "cestovní sadu" na služebky, abych mohl testovat i na cestách ....
UNO, NANO, Mikro, PRO mini, DUE, ESP32S2, RPi PICO
Pavel1TU
"Správně napsaný kod lze číst jako knihu"

ohruska
Příspěvky: 235
Registrován: 08 pro 2017, 20:56
Reputation: 0

Re: PWM vs PWMfrequency

Příspěvek od ohruska » 28 led 2019, 09:20

Světlo nemůže blikat při takové frekvenci, lidské oko to nemůže vidět.
Používám PWM řízení pro ledky na modelech letadel. Mám nastavenu frekvenci na 50Hz. Žádné blikání tam není vidět. A při použití střídy 125 se led-ka tolik nehřeje a svit je dostačující.
Ota

Uživatelský avatar
gilhad
Příspěvky: 779
Registrován: 07 bře 2018, 11:22
Reputation: 0

Re: PWM vs PWMfrequency

Příspěvek od gilhad » 28 led 2019, 09:29

Jde o to, co tim PWM ridis.

Jak spravne uvadis, PWM jsou hradby a rizeni se dela pomerem delky nuly a jednicky pri konstantni frekvenci nabehovych hran. Ale ta frekvence muze byt taky dost ruzna - pro blikani LEDkou ti staci neco nad 100Hz abys nevidel rozdil, ale klidne muzes jit s frekvenci i 100x vys a furt to neni problem (a odstranis stroboskopicky efekt).

Pro nektere aplikace se se pouziva PWM s frekvanci nad hranici slysitelnosti aby nerusilo bzucenim. Moje varna deska ma PWM taky, s frekvenci v radu desetin Hz (teda vzdy sepne na par sekund a pak rozepne, pro vareni polivky to staci). Dovedu si predstavit monstra s PWM kde jedna hradba je i prez minutu - obcas je potkavam na silnici - rozjedou to na plny koule a pak vyradi, dokud rychlost nespadne na neunosne nizkou - ostatne inteligentni semafory jsou vlastne taky PWM - stridave posilaji a zastavuji proud aut ...


(ta ledka na letadle z dali na 50Hz staci, z blizka a pri malem syceni (hodne uzke hradby, velke doliny) tech 50Hz je poznat jako blikani v pohode.

Uživatelský avatar
pavel1tu
Příspěvky: 2054
Registrován: 26 říj 2017, 08:28
Reputation: 0
Bydliště: Trutnov
Kontaktovat uživatele:

Re: PWM vs PWMfrequency

Příspěvek od pavel1tu » 28 led 2019, 12:25

OK díky....

jak jsem si myslel, těch 500Hz co je normálně stačí a to že když dám 2x více neznamená, že to půjde "jemněji" regulovat, pořád nastavuji střídu 0-255
UNO, NANO, Mikro, PRO mini, DUE, ESP32S2, RPi PICO
Pavel1TU
"Správně napsaný kod lze číst jako knihu"

ohruska
Příspěvky: 235
Registrován: 08 pro 2017, 20:56
Reputation: 0

Re: PWM vs PWMfrequency

Příspěvek od ohruska » 28 led 2019, 13:33

Pokud je třeba jemnější regulace, tak je možno použít PCA9685, který je připojitelný přes I2C a má 12 bit převodník.
https://www.aliexpress.com/item/1pc-PCA ... 78576.html
Ota

Uživatelský avatar
pavel1tu
Příspěvky: 2054
Registrován: 26 říj 2017, 08:28
Reputation: 0
Bydliště: Trutnov
Kontaktovat uživatele:

Re: PWM vs PWMfrequency

Příspěvek od pavel1tu » 28 led 2019, 18:33

ohruska píše:
28 led 2019, 13:33
Pokud je třeba jemnější regulace, tak je možno použít PCA9685, který je připojitelný přes I2C a má 12 bit převodník.
https://www.aliexpress.com/item/1pc-PCA ... 78576.html
Ota
Díky. ale už takto bojuji s místem většinou - a moje priorita není jemnost kroku, ale nějak rozhodnout co tam vše dát do základu za funkce....
UNO, NANO, Mikro, PRO mini, DUE, ESP32S2, RPi PICO
Pavel1TU
"Správně napsaný kod lze číst jako knihu"

Uživatelský avatar
gilhad
Příspěvky: 779
Registrován: 07 bře 2018, 11:22
Reputation: 0

Re: PWM vs PWMfrequency

Příspěvek od gilhad » 28 led 2019, 20:16

pavel1tu píše:
28 led 2019, 12:25
jak jsem si myslel, těch 500Hz co je normálně stačí a to že když dám 2x více neznamená, že to půjde "jemněji" regulovat, pořád nastavuji střídu 0-255
Zavisi na aplikaci - pokud se ti hodnoty moc nemeni (jedes po D1 za nakladakem), tak je to celkem fuk. Pokud se pokousis balancovat na balonu, ktery lezi na hrbete cvalajiciho kone, tak potrebujes velmi rychle menit stridu ve znacnem rozsahu a to navic jeste pokud mozno plynule - nemluve o tom, kdyz se pokousis pomoci PWMka treba vytvaret zvuky (cili aproximovat docela rychlou pseudosinusovku a kazde dva sousedni pulzy jsou jinak siroke). Takze ano, zrychlenim ziskas moznost jemnejsi regulace, ale otazkou je, zda ji vyuzijes a zda to, co na tom je povesene tu rychlost zvladne, nebo se to naopak zacne sypat, ze nestiha.

Takze kazda konstrukce je kompromis a to za jinych podminek a pozadavku - je dobre znat obecne zakonitosti, i kdyz je ted zrovna treba nepouzijes, ale aspon vis, co je mozne a jake to ma dusledky. Stejne se nakonec musis rozhodnout sam. (a casto je jednodussi tam neco strelit od boku a pak to okometricky doladit, pokud na tom nevisi nic kritickeho - ale i tak znalost teorie pomaha v odhadu)

(Takze ciste teoreticky, pokud bys potreboval vic mezistupnu, nez je 0-255, tak to muzes taky udelat tim, ze rychle PWMko budes jeste modulovat pomalym, ci dokonce sinosovkou a tim dosahnes viz odstinu - stejne jako samotnym (konstantnim) PWMkem vlastne z nul a jednicek poskladas ve vysledku nejakou mezihodnotu mezi nulo a jednickou, tak pokud potrebujes neco mezi stridou (treba) 127 a 128, tak tam muzes pomerne rychle prechazet mezi temito stridami a setrvacnost ovladane soustavy ti dovoli nastavit efektivne stridu treba i 127.2 - otazkou je, zda to vubec potrebujes ...)

AstroMiK
Příspěvky: 592
Registrován: 08 pro 2017, 19:05
Reputation: 0

Re: PWM vs PWMfrequency

Příspěvek od AstroMiK » 28 led 2019, 22:06

Arduino Nano / Uno (s procesorem ATmega328) umí až 2 nezávislé kanály (piny D9 a D10) až 16-bitových PWM výstupů.
Při vyšším rozlišení ale klesá frekvence.

Tady je příklad:

Kód: Vybrat vše


void setup(void)
  {
    Serial.begin(9600);
    setupPWM16();
  }


void loop(void)
  {

    if (Serial.available() > 1)         // priklad prikazu: "a32767"  = kanal A na 50%     "b6554"  = kanal B na 10%
      {
        delay(10);
        char kanal = Serial.read();
        uint16_t sirka = (Serial.parseInt());
        
        if (kanal == 'a')    analogWrite16_a(sirka);
        if (kanal == 'b')    analogWrite16_b(sirka);

        Serial.print ("Kanal: ");
        Serial.println (kanal);
        Serial.print ("Vykon [%]: ");
        Serial.println ((sirka / 65535.0) * 100);
        Serial.println ("---------------------");
     
      }

  
  
  
  }




//----------------------------------------
// zakladni nastaveni casovace pro 16-bitove PWM vystupy
void setupPWM16()
  {
    DDRB  |= _BV(PB1) | _BV(PB2);       //PB1 = D9 ; PB2 = D10 ... na vystup
    TCCR1A = _BV(COM1A1) | _BV(COM1B1)  /* non-inverting PWM */
          | _BV(WGM11);                 /* mode 14: fast PWM, TOP=ICR1 */
    TCCR1B = _BV(WGM13) | _BV(WGM12)
          | _BV(CS10);                  /* prescaler 1 */
    ICR1 = 0xFFFF;                      //  do jakeho cisla ma citac pocitat (meni rozliseni a frekvenci)
                                        //           0xFFFF = 16-bitove rozliseni;  244 Hz
                                        //           0x3FFF = 14-bitove rozliseni;  977 Hz
                                        //           0x0FFF = 12-bitove rozliseni; 3910 Hz
  }


//----------------------------------------
//  KANAL A
// nastaveni PWM sirky impulzu pro pin D9
void analogWrite16_a(uint16_t val)
  {
    OCR1A = val;
  }



//----------------------------------------
//  KANAL B
// nastaveni PWM sirky impulzu pro pin D10
void analogWrite16_b(uint16_t val)
  {
    OCR1B = val;
  }



Ovládání přes sériový terminál - textovým řetězcem, kde první znak udává kanál ('a' nebo 'b') a pak následuje číslo v rozsahu 0 až 65535 pro šířku pulzu 0 až 100%.

Rozlišení a tím i frekvence se nastavuje v podprogramu "setupPWM16" v registru ICR1 (viz komentáře).

Uživatelský avatar
pavel1tu
Příspěvky: 2054
Registrován: 26 říj 2017, 08:28
Reputation: 0
Bydliště: Trutnov
Kontaktovat uživatele:

Re: PWM vs PWMfrequency

Příspěvek od pavel1tu » 29 led 2019, 07:13

gilhad píše:
28 led 2019, 20:16
Zavisi na aplikaci - pokud se ti hodnoty moc nemeni (jedes po D1 za nakladakem), tak je to celkem fuk. Pokud se pokousis balancovat na balonu, ktery lezi na hrbete cvalajiciho kone, tak potrebujes velmi rychle menit stridu ve znacnem rozsahu a to navic jeste pokud mozno plynule - nemluve o tom, kdyz se pokousis pomoci PWMka treba vytvaret zvuky (cili aproximovat docela rychlou pseudosinusovku a kazde dva sousedni pulzy jsou jinak siroke). Takze ano, zrychlenim ziskas moznost jemnejsi regulace, ale otazkou je, zda ji vyuzijes a zda to, co na tom je povesene tu rychlost zvladne, nebo se to naopak zacne sypat, ze nestiha.

Takze kazda konstrukce je kompromis a to za jinych podminek a pozadavku - je dobre znat obecne zakonitosti, i kdyz je ted zrovna treba nepouzijes, ale aspon vis, co je mozne a jake to ma dusledky. Stejne se nakonec musis rozhodnout sam. (a casto je jednodussi tam neco strelit od boku a pak to okometricky doladit, pokud na tom nevisi nic kritickeho - ale i tak znalost teorie pomaha v odhadu)

(Takze ciste teoreticky, pokud bys potreboval vic mezistupnu, nez je 0-255, tak to muzes taky udelat tim, ze rychle PWMko budes jeste modulovat pomalym, ci dokonce sinosovkou a tim dosahnes viz odstinu - stejne jako samotnym (konstantnim) PWMkem vlastne z nul a jednicek poskladas ve vysledku nejakou mezihodnotu mezi nulo a jednickou, tak pokud potrebujes neco mezi stridou (treba) 127 a 128, tak tam muzes pomerne rychle prechazet mezi temito stridami a setrvacnost ovladane soustavy ti dovoli nastavit efektivne stridu treba i 127.2 - otazkou je, zda to vubec potrebujes ...)
Ne, já jedu na pomalém velbloudu ;-)
Tak tohle jsem si napsal do mého"itineráře" - co zatím nepotřebuji, ale rozhodně chci prolomit.
Jen mi doma chybí osciloskop.

Koukal jsem na jeden z číny, všichni ho chválí, ale nevím... je to stavebnice s LCD asi za 15USD.
Já bych klidně i něco bez displeje, ale s USB do PC (mám NTB), když třeba chci aby to udělalo samo "snímek" od nárůstu napětí
UNO, NANO, Mikro, PRO mini, DUE, ESP32S2, RPi PICO
Pavel1TU
"Správně napsaný kod lze číst jako knihu"

Uživatelský avatar
gilhad
Příspěvky: 779
Registrován: 07 bře 2018, 11:22
Reputation: 0

Re: PWM vs PWMfrequency

Příspěvek od gilhad » 29 led 2019, 14:55

Pokud jde o DSO 138, tak ten jsem si koupil, postavil a uz mi nekolikrat velmi dobre poslouzil. Doporucuji :)

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 19 hostů