Stránka 1 z 2

PWM vs PWMfrequency

Napsal: 28 led 2019, 09:01
od pavel1tu
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 ....

Re: PWM vs PWMfrequency

Napsal: 28 led 2019, 09:20
od ohruska
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

Re: PWM vs PWMfrequency

Napsal: 28 led 2019, 09:29
od gilhad
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.

Re: PWM vs PWMfrequency

Napsal: 28 led 2019, 12:25
od pavel1tu
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

Re: PWM vs PWMfrequency

Napsal: 28 led 2019, 13:33
od ohruska
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

Re: PWM vs PWMfrequency

Napsal: 28 led 2019, 18:33
od pavel1tu
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....

Re: PWM vs PWMfrequency

Napsal: 28 led 2019, 20:16
od gilhad
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 ...)

Re: PWM vs PWMfrequency

Napsal: 28 led 2019, 22:06
od AstroMiK
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).

Re: PWM vs PWMfrequency

Napsal: 29 led 2019, 07:13
od pavel1tu
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í

Re: PWM vs PWMfrequency

Napsal: 29 led 2019, 14:55
od gilhad
Pokud jde o DSO 138, tak ten jsem si koupil, postavil a uz mi nekolikrat velmi dobre poslouzil. Doporucuji :)