Dvoukanálový čítač s PIC 16F628 | |
Inspirací k celému čítači mi byla
konstrukce na www.halicky.sk, kde mne velmi
překvapila informace, že lze sestrojit s PIC 16F84 čítač schopný čítat teoreticky
až do 50MHz. A to bez jakehokoliv dalšího obvodu (děličky). Jak se později ukázalo
tak ani tato myšlenka nebyla původní a celý popis tohoto fíglu byl popsán na
stránkách Microchip. Celá vychytávka vychází z toho, že na RA4 je připojena
dělička uvnitř MCU, která má právě mezní kmitočet okolo 50MHz. Bohužel nelze
přímo zjistit jaká je hodnota této předděličky. Zmíněná finta spočíva v tom,
že připojením dalšího portu (RB0) na tento vstup mužeme ovládat vstupní stavy na
RA4, protože signal je připojen jako mekčí zdroj a pokud je RB0 nastaven jako vystup
nemá žádný vliv na čítání. Další vychytávka spočívá ve způsobu zjištění
hodnoty v předděličce. To se provede přepnutím RB0 na výstup a začnou se generovat
pulzy na RA4. V okamžiku kdy dojde k prerušení od předděličky víme dopočitáním
kolik byla počáteční hodnota po ukončení čítání. Protože jsem si chtěl celý program ošahat a pochopit začal jsem si ho celej pomaličku přepisovat a předělávat specielně některé věci, které jsem zvyklý dělat jinak. Protože jsem potřeboval především měřák a času na měření bylo docela dost nakonec mi vyšel čítač dvoukanalový s tím, že by asi nebyl problém jej rozšířit až na čtyřkanál. Celá konstrukce je asi celkem jasná. Multiplex 4051 na přepínání vstupů, širokopásmový zesilovač s BFRkem a tvarovač s 74HC14. Diody D1 a D2 na schématu měly sloužit pro napájení sondy po koaxiálu, ale nakonec jsem je neosadil a sonda je napájená zvlášť. |
|
Na dalším obrázku je zapojení sondy k čítači s přepínačem přímého čítání nebo čítáním s předděličkou. | |
Teď samozřejmě to nejdůležitější
a to program a include soubor. Pokud si budete chtít doladit čítač tak aby Vám
ukazoval přesně je třeba jemně změnit počet prázdných cyklů v procedůře "cti"
označené jako Z. Pokud Vám ujel krystal o hodně je třeba změnit celé časování
čítací smyčky. Celkový čas se vypočte podle vzorce ((9*T1+4)*T2+4)*T3+1+9*T4+Z,
kde T1,,T4 jsou konstanty v programu a Z je počet prázdných cyklů. Zde je excelovský soubor, ve kterém jsem si to cele přepočítával. Teď bude následovat několik obrázků z praktické realizace celého čítače. |
|
![]() ![]() |
|
![]() Zde je vidět, že čítač umí měřit i otáčky za minutu. Každý vstup je naprosto nezávislý a lze jej nastavit naprosto individuálně. Celé nastavení lze uložit tak, aby se při zapnutí pokaždé načetlo. Na každém vstupu lze nastavit vynásobení nebo vydělení 2,4,8,32,64,128 a jednotky kHz,MHz,GHz nebo rpm. Měření otáček je realizováno vynásobením 64mi a korekcí čítacího času. |
|
![]() Tady je zase vidět jakým způsobem je čítač ovládán. Jsou použita dvě tlačítka pro rolování a třetí slouží pro výběr. Po volbě se menu vrací o úroveň výš. V režimu čítání stisknutím rolovacího tlačítka dojde ke krátkému zobrazení nastavených parametrů toho kterého vstupu. Zde ještě schémata a PCB ve formatu Eagle 4.08r2. |
|