Cyklovač/generátor

Odpovědět
Pepa z depa
Příspěvky: 85
Registrován: 02 úno 2014, 02:12

Cyklovač/generátor

Příspěvek od Pepa z depa »

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.
Přílohy
cyklovac014b.gif
AlesH
Příspěvky: 323
Registrován: 25 úno 2013, 09:18

Re: Cyklovač/generátor

Příspěvek od AlesH »

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.
Pepa z depa
Příspěvky: 85
Registrován: 02 úno 2014, 02:12

Re: Cyklovač/generátor

Příspěvek od Pepa z depa »

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) :oops:
AlesH
Příspěvky: 323
Registrován: 25 úno 2013, 09:18

Re: Cyklovač/generátor

Příspěvek od AlesH »

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.
Pepa z depa
Příspěvky: 85
Registrován: 02 úno 2014, 02:12

Re: Cyklovač/generátor

Příspěvek od Pepa z depa »

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 ;)
AlesH
Příspěvky: 323
Registrován: 25 úno 2013, 09:18

Re: Cyklovač/generátor

Příspěvek od AlesH »

Tak to se obávám, že tyhle krátké časy (jednotlivých příkazů) bude nejlepší (nejsnazší) zjistit experimentálně (měřením).
Pepa z depa
Příspěvky: 85
Registrován: 02 úno 2014, 02:12

Re: Cyklovač/generátor

Příspěvek od Pepa z depa »

Hmm, tak to jsi mě nepotěšil. Snad to musí jít i nějak spočítat? :shock:
Uživatelský avatar
jrt
Příspěvky: 1921
Registrován: 17 úno 2013, 17:13

Re: Cyklovač/generátor

Příspěvek od jrt »

Pepa z depa píše:Snad to musí jít i nějak spočítat? :shock:
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.
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
Pepa z depa
Příspěvky: 85
Registrován: 02 úno 2014, 02:12

Re: Cyklovač/generátor

Příspěvek od Pepa z depa »

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ěď
Uživatelský avatar
jrt
Příspěvky: 1921
Registrován: 17 úno 2013, 17:13

Re: Cyklovač/generátor

Příspěvek od jrt »

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.
jrt
Odpovědět