 |
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
protoncek Član

Pridružen-a: Sre 31 Jan 2007 9:41 Prispevkov: 9573 Aktiv.: 42.78 Kraj: Mengeš
|
Objavljeno: Sre Dec 02, 2015 8:31 pm Naslov sporočila: PWM Bascom ali ARDU-IDE |
|
|
Lahko poskusiš s softverskim pwmjem - uporabi timer. Tako lahko korak nastaviš višje od 255 . Mislim da na netu najdeš kak primer za take sorte pwm.
Prenešena razprava iz te teme.
Branez (hud ko kača.  |
|
Nazaj na vrh |
|
 |
Jakey Član


Pridružen-a: Sre 11 Jul 2012 0:38 Prispevkov: 651 Aktiv.: 4.13 Kraj: Ravne/LJ/Kobarid
|
Objavljeno: Čet Dec 03, 2015 1:19 am Naslov sporočila: |
|
|
protoncek je napisal/a: |
Lahko poskusiš s softverskim pwmjem - uporabi timer. Tako lahko korak nastaviš višje od 255 . Mislim da na netu najdeš kak primer za take sorte pwm. |
Nekaj takega, ma mislim da ima arduino že med exampli en lep primer in sicer "fade". Poskusi sčarat kaj z njim, je namenjen ravno temu. _________________ Predlagam, da kar napišem, si čimprej skopirat, saj bodo šerifi tega foruma verjetno pobrisali s predpostavko, da ne prispeva (dosti) k vrednosti foruma. |
|
Nazaj na vrh |
|
 |
protoncek Član

Pridružen-a: Sre 31 Jan 2007 9:41 Prispevkov: 9573 Aktiv.: 42.78 Kraj: Mengeš
|
Objavljeno: Čet Dec 03, 2015 7:27 am Naslov sporočila: |
|
|
Pri softvrskem pwmju se to ponavadi dogaja če interrupt ne sledi ritmu, oz. Če je nastavljen na prekratek interval ali pa če je v njegovi rutini preveč kode in se dolgo zadržuje tam. Tako se zgodi, da se med izvajanjem interrupta že zgodi naslednji interrupt, kar povzroči zmedo. Poskusi zmanjšati interval timerja za interrupt rutino. Tako za primer: jaz sem pri 16 kanalih in 16 MHz uri prišel največ do dobrih 60Hz(frekvence pulza), ko sem delal prižiganje za stopnice. |
|
Nazaj na vrh |
|
 |
protoncek Član

Pridružen-a: Sre 31 Jan 2007 9:41 Prispevkov: 9573 Aktiv.: 42.78 Kraj: Mengeš
|
Objavljeno: Čet Dec 03, 2015 1:37 pm Naslov sporočila: |
|
|
Jaka57 je napisal/a: |
Protoncek ali si pogledal pripeti program? . |
(jaka, zdaj bi pa že skoraj moral vedeti, da "sovražim" C )
Ne, in ga tudi ne nameravam, iz navedenega razloga. Zato ne dajem specifičnih nasvetov, ampak splošne, ker sem imel sam natanko enak problem: trokiranje je posledica nepravilno narejenega softverskega PWM-ja. Tip prevajalnika tu nima veze...narobe je narobe v bascomu ali v C-ju. Nekako pa ne vidim, kako bi lahko kvalitetno naredil softverski PWM brez prekinitve...  |
|
Nazaj na vrh |
|
 |
Jaka57 Moderator



Pridružen-a: Ned 12 Dec 2004 21:47 Prispevkov: 5820 Aktiv.: 24.56 Kraj: Grosuplje
|
Objavljeno: Pet Dec 04, 2015 1:48 am Naslov sporočila: |
|
|
Eh, protonček tvoji nasveti so velikokrat dejansko preveč splošni, v stilu, bela barva ne more biti istočasno črna.
Torej, enostavno ne znese tvoje modrovanje o interuptih, ki dejansko v sketchupu niso potrebni in se jih, vsaj jaz, izogibamo, če je le to mogoče.
Prav tako ne znese modrovanje o softwerskem PWMju, kajti ta je v tem primeru zelo enostaven s funkcijo AnalogWrite(analog pin, vrednost pwm) in ta funkcija PWM dela že dolgo časa brez vsakih problemov.
Kako je to v Bascomu pa ne bi vedel, ker ga ne uporabljam, niti se ne ukvarjam z njim.
Obstaja pa rešitev, pokaži, kako bi ti to naredil v Bascomu, ampak v tem primeru ne gre samo za prižiganje lučk.
jure95 je napisal/a: |
-izpisovanje sekund ni potrebno, sem pa jih hotel kasneje uporabiti za nadzor hranilnika
-se bom potrudil, da bom uredil vse skupaj
-na lcd-ju se spreminja celoten izgled (zaslon#1 - datum, ura, temp in vlaga, zaslon#2 - temp. akvarija, svetlost ledic, in pa timer)
-glede kode pa: temp. alarm obvezno žeim vključiti, ker mi je kakšen mesec nazaj zatajil termostat na grelcu in je grelec delal celo noč na "full", zjutraj ko sem rpišel pogledat, je bilo v akvariju 43°C, si lahko samo predstavljate kaj se je zgodilo nekaj prebivalci (na srečo ni bil polno naseljen), ki so bili noter. Takrat bi mi ta alarm "rešil rit". BKom pa sproti dodal še nekaj drugi elementov (pH sondo, ventilatorje za pod pokrov akarija (v primeru prevelike temp pod pokrovom in pa vlage), el. magnetni ventil,...
No, ampak sedaj mi je prioriteta zgladiti PWM od luči.
LP, Jure |
Jure, mislim, da je za zanesljivo delovanje akvarija, delovanje PWM ledic še najmanj pomembno. S tem se lahko ukvarjaš pozneje in brez uporabe millis() za PWM, saj ni potrebe,
enostavno povečuješ (zmanjšuješ) izhod z AnalogWrite(), ki krmili LED za eno (od 255) ob vsakem obratu v void loop(), da pa ne utripa ob preskokih za 1 , pa dejansko lahko uporabiš nek RC člen, ki ga določiš z malo preizkušanja.
Da se spremeni stanje od 0 do 255 v 20 minutah, potrebuješ spremembo PWMja na nekaj manj kot 5 sekund in v teh petih sekundah lahko Arduino dela vse ostalo v zanki void loop(), funkcijo millis() pa uporabiš, da prešteješ kdaj je minilo teh pet sekund.
Na LCDju lahko izpisuješ nekaj v točno določeni vrstici in točno določeni koloni, torej zakaj izpisovati cel LCD? Izpisuješ samo tisto, kar se spremeni.
In če boš še dodajal stvari, ki jih mora Arduino narediti, potem moraš obvezno vse funkcije in procedure definirat zunaj void loop() zanke ali celo zunaj glavnega sketcha, kajti veliko enostavneje je popravljat neko funkcijo ali proceduro, kot pa sketch v katerem je vse skupaj nametano. _________________ Lp, Jaka |
|
Nazaj na vrh |
|
 |
protoncek Član

Pridružen-a: Sre 31 Jan 2007 9:41 Prispevkov: 9573 Aktiv.: 42.78 Kraj: Mengeš
|
Objavljeno: Pet Dec 04, 2015 8:29 am Naslov sporočila: |
|
|
Jaka, AnalogWrite seveda dela, ampak rečeno je bilo, da je 255 nivojev premalo, kajne? Zato pa sem predlagal softverski PWM, kjer število nivojev določiš sam.
Včasih preslabo prebereš zahteve...
Ne rečem, da brez interuptov ne dela, ampak kako, je pa drugo vprašanje. |
|
Nazaj na vrh |
|
 |
Jaka57 Moderator



Pridružen-a: Ned 12 Dec 2004 21:47 Prispevkov: 5820 Aktiv.: 24.56 Kraj: Grosuplje
|
Objavljeno: Pet Dec 04, 2015 11:42 am Naslov sporočila: |
|
|
protoncek je napisal/a: |
Jaka, AnalogWrite seveda dela, ampak rečeno je bilo, da je 255 nivojev premalo, kajne? Zato pa sem predlagal softverski PWM, kjer število nivojev določiš sam.
Včasih preslabo prebereš zahteve.... |
Kje si prebral to zahtevo? _________________ Lp, Jaka |
|
Nazaj na vrh |
|
 |
protoncek Član

Pridružen-a: Sre 31 Jan 2007 9:41 Prispevkov: 9573 Aktiv.: 42.78 Kraj: Mengeš
|
Objavljeno: Pet Dec 04, 2015 2:11 pm Naslov sporočila: |
|
|
Jaka57--> tukaj:
Citiram: |
Problem nastane, ker Arduino ima izhodne vrednosti za PWM od 0-255. Kodo imam napisano tako, da se mi vsake tri sekunde vrednost PWM poveča za +1 od prejšnje. Ko priklopimo led diode na Arduino vidimo, da prižiganje diod poteka v intervalih vsake 3 sekude. Jaz bi pa rad, da se mi diode prižigajo "mehko" |
Jasno je bilo napisano, da ko po treh sekundah zviša PWM za eno, se svetlost ledic poveča momentalno, kar pa noče. Zato je tudi omenil uporabo elektrolita. Jaz sem kot alternativo predlagal softverski PWM, kjer lahko število nivojev povečaš recimo na več korakov, pa potem lahko jakost ledice višaš pogosteje in z manjšo spremembo svetlosti, ki ne bo več vidna.
Celotna zadeva je itak izgubila smisel zaradi (povsem nepotrebne) prestavitve v noto temo, zato se umikam iz debate in se zaradi mene lahko tudi briše.
Branez --> kje hudiča si pa ti videl, da je prvi post v tejle temi OT? če sem samo predlagal uporabo alternative z več nivoji? Saj ni problema, če ni več želje po tem, da se nekomu svetuje, potem sploh ni težav. Bom od sedaj naprej samo bralec, pa bo, ali pa še to ne.
In, ni potrebe po "bananju", če imaš to željo. Se bom sam odstranil, ne bo noben jokal za menoj. Ampak imej jajca in to povej direktno! |
|
Nazaj na vrh |
|
 |
Branez Moderator


Pridružen-a: Pon 14 Apr 2003 7:21 Prispevkov: 7831 Aktiv.: 33.05 Kraj: Koprivnica HR
|
Objavljeno: Pet Dec 04, 2015 2:19 pm Naslov sporočila: |
|
|
Samo sem odrezal od trenutka, ko je začelo iti s poti. Izgleda, da sem se zmotil v "nadstropju", a vrniti se ne da. Očitno nisem vsega dobro prečital.
Sem kdajkoli omenjal to?:
protoncek je napisal/a: |
...In, ni potrebe po "bananju", če imaš to željo. Se bom sam odstranil, ne bo noben jokal za menoj. Ampak imej jajca in to povej direktno! |
Niti nimam te moči in je tudi ne želim. Samo trudim se, da bi bilo vse pisanje-čitanje vsaj malo v normalnih tokovih in razumljivo.  _________________ The true sign of intelligence is not knowledge but imagination.
Creativity is intelligence having fun!
Albert Einstein
Nazadnje urejal/a Branez Pet Dec 04, 2015 2:31 pm; skupaj popravljeno 1 krat |
|
Nazaj na vrh |
|
 |
protoncek Član

Pridružen-a: Sre 31 Jan 2007 9:41 Prispevkov: 9573 Aktiv.: 42.78 Kraj: Mengeš
|
Objavljeno: Pet Dec 04, 2015 2:30 pm Naslov sporočila: |
|
|
S poti je zašlo pri mojem tretjem postu, ko sem odgovoril @Jaka57, nič prej. |
|
Nazaj na vrh |
|
 |
Branez Moderator


Pridružen-a: Pon 14 Apr 2003 7:21 Prispevkov: 7831 Aktiv.: 33.05 Kraj: Koprivnica HR
|
Objavljeno: Pet Dec 04, 2015 2:32 pm Naslov sporočila: |
|
|
OK, se oproščam! _________________ The true sign of intelligence is not knowledge but imagination.
Creativity is intelligence having fun!
Albert Einstein |
|
Nazaj na vrh |
|
 |
protoncek Član

Pridružen-a: Sre 31 Jan 2007 9:41 Prispevkov: 9573 Aktiv.: 42.78 Kraj: Mengeš
|
Objavljeno: Pet Dec 04, 2015 2:52 pm Naslov sporočila: |
|
|
Hvala, vzeto na znanje. Se oproščam tudi jaz za "izpad". |
|
Nazaj na vrh |
|
 |
|
|
Ne, ne moreš dodajati novih tem v tem forumu Ne, ne moreš odgovarjati na teme v tem forumu Ne, ne moreš urejati svojih prispevkov v tem forumu Ne, ne moreš brisati svojih prispevkov v tem forumu Ne ne moreš glasovati v anketi v tem forumu Ne, ne moreš pripeti datotek v tem forumu Ne, ne moreš povleči datotek v tem forumu
|
Uptime: 495 dni
Powered by phpBB © 2001, 2005 phpBB Group
|