Cyklovač/generátor
-
- Příspěvky: 85
- Registrován: 02 úno 2014, 02:12
Cyklovač/generátor
Zdravím všechny zúčastněné a hlavně picaxáře.
Vyrábím takovej cyklovač i případně generátor pravoúhlýho signálu.
Hardware (obr.):
1) Vstupy C.0 až C.7 = 2 nezávislé palcové přepínače (kód BCD, 10 poloh)- nastavení f1; f2
2) Vstupy B.5 až B.7 = 1 palcový přepínač (využito pouze ABC = 8poloh)- nastavení celkového času t
3) Vstup B.4 = tlačítko START/PAUSE - krátký stisk spustí program, druhý krátký stisk zastaví (nevynuluje) časovač a vypne výstup B.1; dalším krátkým opět zapne časovač a zapne B.1... dlouhým stiskem vyresetuje procesor, vynuluje časovač, vypne výstup a čeká na krátký stisk...
4) Výstup B.3 = LED - v poloze STOP (čeká na krátký stisk tlačítka) svítí trvale; v poloze PAUSE bliká cca 1x za sekundu; při chodu bliká cca 1x za 5 sekund
5) Výstup B.1 = výstup
6) Vstupy B.0 a B.2 - zatím nezapojeny (možná přepínání násobky/ podíly frekvencí - ještě nevim)
Ty frekvence i časy se můžou do sw zadat i jiný, tyhle jsou jenom jako "vzorek"
Mělo by to fungovat takhle:
Pokud si například nastavím :
f1 - poloha 2 (= 3,2 kHz)
f2 - poloha 7 (= 100 Hz)
t - poloha 2 (= 4 minuty)
Nastavování se má provést před zmačknutím tl. START (po jeho zmačknutí nereaguje na změny na přepínačích)
Program "čeká" na stisk tl. START, po jeho zmačknutí si načte hodnoty z přepínačů a zároveň si dopočítá "rozdíl" poloh f1-f2 ( mezi polohou 2 a 7 jsou 4 frekvence + ty 2 krajní = 6).
Časovač t je nastaven na 4 minuty, čas je celkový a za jeho dobu musí program "projet" všech 6 frekvencí = jedna bude trvat 4/6= 0,6 min = 40 sekund. Začne na f1 končí na f2.
Po 40 sekundách se uspí a probudí ho jenom tlačítko, nebo zapnutí napájení.
A teď babo raď - nějak nevím, hned zkraje... jestli ten výstup PWM, nebo (v případě pomalých cyklů)cyklovače jenom "pauzovaný" on - off? Jak je to s časama/ frekvencí u těchto funkcí? Případně mě nakopněte i jiným směrem. Díky předem všem za rady.
Vyrábím takovej cyklovač i případně generátor pravoúhlýho signálu.
Hardware (obr.):
1) Vstupy C.0 až C.7 = 2 nezávislé palcové přepínače (kód BCD, 10 poloh)- nastavení f1; f2
2) Vstupy B.5 až B.7 = 1 palcový přepínač (využito pouze ABC = 8poloh)- nastavení celkového času t
3) Vstup B.4 = tlačítko START/PAUSE - krátký stisk spustí program, druhý krátký stisk zastaví (nevynuluje) časovač a vypne výstup B.1; dalším krátkým opět zapne časovač a zapne B.1... dlouhým stiskem vyresetuje procesor, vynuluje časovač, vypne výstup a čeká na krátký stisk...
4) Výstup B.3 = LED - v poloze STOP (čeká na krátký stisk tlačítka) svítí trvale; v poloze PAUSE bliká cca 1x za sekundu; při chodu bliká cca 1x za 5 sekund
5) Výstup B.1 = výstup
6) Vstupy B.0 a B.2 - zatím nezapojeny (možná přepínání násobky/ podíly frekvencí - ještě nevim)
Ty frekvence i časy se můžou do sw zadat i jiný, tyhle jsou jenom jako "vzorek"
Mělo by to fungovat takhle:
Pokud si například nastavím :
f1 - poloha 2 (= 3,2 kHz)
f2 - poloha 7 (= 100 Hz)
t - poloha 2 (= 4 minuty)
Nastavování se má provést před zmačknutím tl. START (po jeho zmačknutí nereaguje na změny na přepínačích)
Program "čeká" na stisk tl. START, po jeho zmačknutí si načte hodnoty z přepínačů a zároveň si dopočítá "rozdíl" poloh f1-f2 ( mezi polohou 2 a 7 jsou 4 frekvence + ty 2 krajní = 6).
Časovač t je nastaven na 4 minuty, čas je celkový a za jeho dobu musí program "projet" všech 6 frekvencí = jedna bude trvat 4/6= 0,6 min = 40 sekund. Začne na f1 končí na f2.
Po 40 sekundách se uspí a probudí ho jenom tlačítko, nebo zapnutí napájení.
A teď babo raď - nějak nevím, hned zkraje... jestli ten výstup PWM, nebo (v případě pomalých cyklů)cyklovače jenom "pauzovaný" on - off? Jak je to s časama/ frekvencí u těchto funkcí? Případně mě nakopněte i jiným směrem. Díky předem všem za rady.
Re: Cyklovač/generátor
Ahoj. Pokud Ti bude stačit rozsah frekvencí cca 60 Hz až 20 kHz, tak můžeš použít čisté PWM. Pokud budeš chtít dolní frekvenci pod 60 Hz, tak asi budeš muset zkombinovat (přepínat) PWM a "pauzy". U PWM bude trochu problém přepočítat frekvenci na správnou kombinaci parametrů pro "pwmout", ale mělo by to jít. Přesnost PWM ani "pauz" jsem nikdy neověřoval, ale obávám se, že nic moc extra přesného to nebude. Mě osobně by několikaprocentní nepřesnost nepřekvapila, ale ani by mi nevadila.
-
- Příspěvky: 85
- Registrován: 02 úno 2014, 02:12
Re: Cyklovač/generátor
Díky za odpověď Aleši. Přesnost +- % neřeším. Možná by bylo použitelný i normální PAUSE (i PAUSEUS).
Akorát se zeptám: pokud budu mít smyčku např:
main:
high pin.1
pause 5000
low pin.1
pause 5000
goto main
5000 = 5 sekund, to chápu. Jak je to s celkovým časem smyčky? Nějak to nemůžu najít (a vzpomenout si už vůbec ne)
Akorát se zeptám: pokud budu mít smyčku např:
main:
high pin.1
pause 5000
low pin.1
pause 5000
goto main
5000 = 5 sekund, to chápu. Jak je to s celkovým časem smyčky? Nějak to nemůžu najít (a vzpomenout si už vůbec ne)
Re: Cyklovač/generátor
Nevím, co máš na mysli, ale celkový čas jednoho průchodu smyčkou (z toho Tvého příkladu) bude samozřejmě zhruba 10 sekund (plus mínus pár milisekund). Běžné příkazy v PICAXE Basicu trvají obvykle řádově kolem jedné milisekundy (i když příkazy HIGH a LOW budou asi ještě kratší).
Naposledy upravil(a) AlesH dne 01 kvě 2014, 17:37, celkem upraveno 1 x.
-
- Příspěvky: 85
- Registrován: 02 úno 2014, 02:12
Re: Cyklovač/generátor
No mám na mysli to, že třeba u PICů jeden řádek (příkaz) trvá 4 cykly procesoru (? nebo si to nějak takhle matně vybavuju), některý příkazy víc. Samozřejmě v závislosti na frekvenci procesoru.
Ale u PICAXE jsem to nějak nezjistil...
U kratších časů to asi budu potřebovat
Ale u PICAXE jsem to nějak nezjistil...
U kratších časů to asi budu potřebovat
Re: Cyklovač/generátor
Tak to se obávám, že tyhle krátké časy (jednotlivých příkazů) bude nejlepší (nejsnazší) zjistit experimentálně (měřením).
-
- Příspěvky: 85
- Registrován: 02 úno 2014, 02:12
Re: Cyklovač/generátor
Hmm, tak to jsi mě nepotěšil. Snad to musí jít i nějak spočítat?
Re: Cyklovač/generátor
Těžko, protože výrobce neudává, kolik strojových cyklu která instrukce trvá. Musíte si uvědomit, že PICAXE je hračka, určená pro základní výuku programování a na hraní, nikoli mikrokontrolér pro přesnou práci.Pepa z depa píše:Snad to musí jít i nějak spočítat?
Ovšem cituji z článku ing. Černého z Praktické elektroniky: "Výsledný generátor dělá podle měření šířku pulzu od 7 μs do 14 ms (změnou parametru možno rozšířit do 300 ms) a s periodou 4 ms až 2 s.", takže nějakou přesnost je možno dosáhnout.
jrt
-
- Příspěvky: 85
- Registrován: 02 úno 2014, 02:12
Re: Cyklovač/generátor
No právě proto, že PICAXE je primárně na výukový účely, tak bych předpokládal, že to spočítat půjde.
Pokud ne, tak nějak nechápu, proč existuje i příkaz pauseus (mikrosekundy), případně i celá řada X (s krystalem)...?
To jrt: Prosím pěkně, v který PE je ten citát?
Díky za odpověď
Pokud ne, tak nějak nechápu, proč existuje i příkaz pauseus (mikrosekundy), případně i celá řada X (s krystalem)...?
To jrt: Prosím pěkně, v který PE je ten citát?
Díky za odpověď
Re: Cyklovač/generátor
Příkaz pauseus a řada X (s krystalem) existuje právě proto, aby se kvůli časování nemusely počítat instrukce. Jak dochází ke stále dalším a dalším optimalizacím PICAXE (i když třeba pro zákazníka neviditelným), tak se délka vykonávání jednotlivých příkazů může mírně lišit.
Citát je z PE 07/2012, str. 25.
Citát je z PE 07/2012, str. 25.
jrt