Aplikace PicDev Procesor PIC16F84 Překladač PicDev Stavebnice P84

CycloMet
Copyright (c) 2000-2012 Ing. Miroslav Němeček
Gemtree Software, s.r.o.
www.breatharian.eu/Petr, www.gemtree.com


Charakteristika
Modul CycloMet je samostatnou aplikací vyvinutou s využitím stavebnice P84. Je to měřící jednotka pro různá sportovní zařízení. Umožňuje měření uběhlé vzdálenosti, zobrazuje uběhlý čas, rychlost a vzdálenost celkem. Je napájena ze 2 tužkových monočlánků. K zobrazení využívá 3 1/2 místný LCD displej, je ovládána 1 tlačítkem.


Schéma
Modul CycloMet je řízen jednočipovým mikrořadičem PIC16F84. Pro minimalizaci odběru proudu je procesor řízen pomalým krystalem 32kHz v módu LP. V aktivním režimu byl naměřen odběr celého modulu 40 µA (mikroampér), v klidovém stavu (sleep) 6 µA. Modul je napájen ze 2 tužkových monočlánků poskytujících napětí 3 V. Testovaná jednotka pracovala správně i při použití Ni-Cd akumulátorů poskytujících napětí 2.4V. Modul pracuje pod hranicí napětí udávanou výrobcem, avšak testy byla odzkoušena správná funkce procesorů až do napětí kolem 2.2V. Chcete-li dodržet katalogové hodnoty výrobce, použijte 3 monočlánky nebo procesor PIC16LF84.

Výstup na LCD displej je realizován dvěma 8-bitovými registry 74HC373. Výstupy z portů RA0, RA1, RB0, RB1, RB2, RB3, RB6 a RB7 jsou vedeny na vstupy registrů D0 až D7 a současně na 8 elektrod segmentů displeje. Pomocí portů RA2 a RA3 je řízen zápis dat do registrů. Výstupy z registrů jsou vedeny na 16 elektrod segmentů displeje. Výstup z portu RA4 je veden na společnou elektrodu displeje. Port RA4 je výstup s otevřeným kolektorem, proto je odporem R1 na elektrodu přivedeno kladné napětí. Při zobrazení dat na displeji procesor zapíše 2 bajty dat do registrů IC2 a IC3 a na portech pro vstup do registrů ponechá nastaven 3. datový bajt. Tím je realizován výstup na 24 elektrod displeje. Společnou elektrodu program řídí portem RA4. LCD displej vyžaduje řízení střídavým napětím. Polarita napětí na elektrodách ztmavených segmentů by měla být oproti společné elektrodě měněna 40 až 300 krát za sekundu (frekvence 20 až 150 Hz). Z důvodu nízké frekvence krystalu používá procesor vnitřní přerušení s frekvencí 32 za sekundu, elektrody displeje jsou tedy řízeny s frekvencí 16 Hz. Nízká frekvence se projevuje mírným chvěním zobrazení displeje při bočním pohledu, při přímém pohledu je zobrazení v pořádku.

Portem RB4 je čten stav tlačítka SWC1. Tlačítko přivádí na port při svém stisku stav 1. Odpor R3 přivádí stav 0, není-li tlačítko stisknuto. Podobně pracuje čtení sepnutí senzoru portem RB5. Senzor je přiveden na vstupy SENSOR(1) a SENSOR(2). Senzor je zpravidla mechanický spínač spínající při uběhnutí určité vzdálenosti. Jedná-li se o elektronický spínač (Hallův generátor nebo optočlen), připojí se na vstup SENSOR(1) kladný pól a na vstup SENSOR(2) záporný pól. Pro elektronický spínač bude zřejmě nutné snížit velikost odporu R4 (nebo též v případě zarušení signálu od senzoru, je-li připojen dlouhým nestíněným kabelem). Kondenzátor C2 filtruje zákmity při sepnutí mechanického senzoru, druhotnou funkcí je filtrování rušení z kabelu senzoru. Signál je filtrován i elektronicky, ale z důvodu nízké frekvence krystalu nemusí být elektronické filtrování dostačující. Hodnota kondenzátoru se může u různých senzorů lišit. Je-li jeho kapacita malá, vznikající zákmity vyvolávají nestabilní zvyšování údaje rychlosti, především při nízkých rychlostech. Je-li kapacita kondenzátoru velká, modul přestává při vyšších rychlostech rychlost měřit (objevuje se údaj 0).

Poznámky: Přípojné body 1, 2, 3 a napájení + a - slouží k programování procesoru v případě, že je již osazen v modulu. Pro správnou funkci čtení stavu tlačítka a senzoru se doporučuje vypínat udržovací kladný proud do portu B (v registru OPTION procesoru nastavit bit NOT_RBPU).


Plošný spoj
Na dalším obrázku vidíte zmenšený obraz plošného spoje. Plošný spoj s plným rozlišením je dostupný
zde na tomto odkazu (formát BMP, sbaleno ZIP na 19 KB) nebo kliknete-li na obrázek (formát GIF). Plošný spoj je možné vytisknout s rozlišením 600 DPI na inkoustové nebo laserové tiskárně na průhlednou fólii a použít jako fotopředlohu pro osvícení desky s fotocitlivou vrstvou (horským sluncem 8 minut ze vzdálenosti 30 cm, vyvolání 1% roztokem hydroxidu draselného KOH - "louh draselný", leptání v roztoku chloridu železitého - "zahlubovač na měď"). Všechny díry vyvrtejte vrtákem 0.8 mm. Po vyvrtání děr začistěte otřepy děr větším vrtákem (lehkým otáčením v ruce). Ořežte lupénkovou pilkou spoj na správnou velikost a okraje zarovnejte pilníkem. Omyjte z desky fotocitlivou vrstvu (lihem nebo benzinem), měděné plochy očistěte měkkou gumou a nalakujte plošný spoj pájecím lakem (roztok kalafuny v lihu).


Osazení
K osazení desky a sestavení modulu potřebujete tyto součástky a konstrukční prvky:

1 x LCD displej 3 1/2 místný 4DR821B (nebo LCD3902)
1 x procesor PIC16F84 (PIC16LF84)
2 x integrovaný obvod 74HC373
1 x krystal 32768 Hz (32,768 kHz)
1 x keramický kondenzátor 100n (rozteč 5 mm)
1 x keramický kondenzátor 47n (rozteč 5 mm) (nebo jiná hodnota zjištěná při oživování modulu)
2 x keramický kondenzátor 82p (rozteč 5 mm)
4 x odpor 1M0
1 x tlačítko B170H (P-B170H) (přepínací tlačítko bez aretace, 2 x 2 polohy, s klikem)
1 x kulatý hmatník pro tlačítko B170H, průměr 7 mm (P11S HM R)
1 x zásuvka jack 2.5 mm mono do panelu K3622 (nebo jiný konektor - podle konektoru senzoru)
1 x držák baterií - 2 (nebo 3) tužkové monočlánky "AA" vedle sebe nebo u sebe (A306321 nebo A306322)
1 x konektor na držáky baterií přímý (klips 9V)
asi 15 cm drátu na drátové propojky
asi 10 cm tenké dvoulinky (2 žíly tenké licny)
1 x pásek plošného spoje nebo odřezku krabičky 40 x 8 mm
2 x pásek plošného spoje nebo odřezku krabičky 10 x 8 mm
1 x krabička U-SEB4 (dvoudílná plastová, vnější rozměry 90 x 60 x 27)

Osazování můžete začít procesorem a oběma integrovanými obvody. Před osazením procesoru naprogramujte do procesoru program CYCLOMET.ASM. Programovat můžete v procesorové jednotce P84-CPU. Před programováním upravte v programu konstantu LENINC na vzdálenost mezi impulsy senzoru (údaj je v centimetrech). Pro hodnotu větší než 99 cm je nutno provést úpravy i ve výpočetních částech programu. Procesor je možné přeprogramovávat i po osazení celého modulu pomocí přípojných bodů 1 až 3. Při pájení tlačítka dejte pozor na to, aby pájecí voda nebo kalafuna nezatekla dovnitř do tlačítka, tlačítko by se mohlo stát nefunkční nebo v lepším případě by při stisku "lepily" kontakty. S1 až S8 jsou drátové propojky. Krystal pájejte krátce, mohlo by dojít k jeho poškození.

Displej osaďte jako úplně poslední, pozor na správné otočení. Před osazením je vhodná jeho kontrola, např. v modulu P84-LCD, je-li vybaven paticí. Jinou možností kontroly displeje je generování střídavé napětí 40 až 300 Hz jednotkou P84-CPU (na port A uložit hodnotu 10b, pomocí WatchDog časovat po 18 ms, invertovat obsah portu A), signál RA0 přivést na společnou elektrodu (vývod 40), signálem RA1 testovat jednotlivé segmenty. Velmi snadnou a rychlou metodou testování LCD displeje je položení displeje kontakty na průhledné plastové víčko nějaké krabičky. Třením spodní strany víčka suchou dlaní dochází k elektrizování materiálu a poblikávání segmentů displeje. Displej zasuňte do plošného spoje, výšku jeho povrchu nastavte na 11 mm od povrchu plošného spoje, přiletujte v rozích a po opětovné kontrole výšky přiletujte všechny jeho vývody.

Na závěr přiletujte pomocí dvoulinky konektor pro baterie a konektor pro senzor. Pro elektronický senzor se kladný pól senzoru připojí ke kontaktu SENSOR(1), záporný ke kontaktu SENZOR(2).

 


Oživení
Budete-li chtít měnit obsah procesoru v již osazeném modulu, potřebujete k tomu 5 vodičů, které přiletujete k plošnému spoji v bodech 1, 2, 3 a napájení + a -. Vodiče připojte do programovacího modulu
P84-CPU namísto procesoru v modulu a to tak, že vodič 1 připojíte na pozici pinu 4, vodič 2 na pin 13, vodič 3 na pin 12 a napájecí vodiče + a - na piny 14 a 5. Vodiče můžete přiletovat na kontakty patice DIL18, kterou budete zasouvat do patice v modulu P84-CPU, nebo můžete využít poškozený 18-pinový integrovaný obvod s odvrtaným čipem (do středu obvodu vyvrtat otvor 4 mm, zkontrolovat ohmetrem). Před připojením napájecích vodičů odpojte baterie modulu. Během programování modulu mohou zůstat na displeji tmavnoucí segmenty jako důsledek stejnosměrného řízení displeje. Snažte se tento stav minimalizovat, stejnosměrné řízení displeje může poškodit displej. Podobný případ může nastat chybou programu, pokud program nebude napětí na segmentech přepólovávat (např. chybou časování obsluhy přerušení). Při správné funkci jsou segmenty displeje mírně zešedlé, při bočním pohledu na displej lehce blikají a jsou pološedé. Při stejnosměrném řízení (chyba programu nebo procesor je zastaven) zapnuté segmenty výrazně zčernají a to i při bočním pohledu na displej. Trvá-li tento stav desítky sekund až jednotky minut, může být stav již nevratný a displej je poškozen. Poznámka: Po připojení modulu k P84-CPU se mohou na displeji objevovat nesmyslné údaje z důvodu přídavných svodů signálů RB6 a RB7. Modul by měl proto být ověřován s odpojenými programovacími signály 2 a 3.

Modul oživujte s napájecím napětím 5V (např. připojením do modulu P84-CPU, jiné vodiče než napájecí by měly být odpojeny, aby nezpůsobovaly přídavné svody). Po zapnutí napájení by se měl na displeji objevit údaj "0.00". Podržíte-li 2 sekundy tlačítko, mělo by se objevit "18.8.8" jako indikace nulování údajů. Po 30 sekundách neaktivity displej zhasne. Po příchodu impulsů na vstup ze senzoru by se měl rozeběhnout čas a ostatní údaje. Zkontrolujte měření vzdálenosti senzorem (při běžné rychlosti) a případně upravte hodnotu konstanty LENINC v programu CYCLOMET.ASM. Po vyzkoušení funkce modulu připojte modul na baterie s provozním napětím a ověřte funkčnost modulu i při tomto nízkém napětí.

Jediné nastavování modulu spočívá ve výběru správné hodnoty kondenzátoru C2. Kondenzátor filtruje zákmity při sepnutí mechanického senzoru a rušení z kabelu senzoru. Je-li jeho kapacita malá, vznikající zákmity vyvolávají nestabilní zvyšování údaje rychlosti, především při nízkých rychlostech (údaj náhodně přeskakuje na mnohem vyšší údaje). Je-li kapacita kondenzátoru velká, modul přestává při vyšších rychlostech rychlost měřit (objevuje se údaj 0).

Poznámka: Modul ponechává (z důvodu místa na plošném spoji) nezapojené nepoužité segmenty displeje E4, G4 a H4 (pomlčka, dvojtečka uprostřed a vlnovka). Budete-li někdy pozorovat tmavnutí těchto segmentů, např. z důvodu navlhnutí plošného spoje, propojte vodičem (ze strany plošného spoje) segmenty se společnou elektrodou (vývod 40).


Konstrukce
Pro modul použijte krabičku s typovým označením U-SEB4. Krabička bude zkrácena na přibližně krychlový tvar. Odřežte některou z kratších stěn, stěna bude použita jako spodní boční stěna (při pohledu na displej shora). Krabičku zkraťte na délku 53 mm odřezáním části s chybějící stěnou. Ve dnu krabičky a ve spodní boční stěně vyřežte otvory pro držák měřidla podle použitého sportovního zařízení (zpravidla lze modul zasunout do drážek držáku). Do některé boční stěny vyvrtejte díru pro konektor senzoru (pro snazší vkládání plošného spoje bude vhodnější umístění pod plošným spojem). Do dna můžete vyvrtat díru pro kabel baterií nebo kabel vést otvorem pro uchycení modulu. Spodní boční stěnu přilepte ke krabičce vteřinovým lepidlem. Po zatvrdnutí vlepte na horní a dolní boční stěnu pásky plošného spoje nebo odřezku krabičky, pásky budou sloužit jako nosníky plošného spoje (přirazte je ke dnu).

Nyní pokračujte víčkem krabičky. Zkraťte víčko krabičky na 55 mm. Vyvrtejte do víčka otvor pro tlačítko a vyřežte lupénkovou pilkou okénko pro displej podle následujícího nákresu. Vrták musí být ostrý a musíte vrtat krátce. Tupější vrták umělou hmotu krabičky roztaví. Nakonec odřízněte nožem osazení víčka v místě zkrácení víčka, aby víčko na krabičku dobře dosedlo. Otvor pro displej můžete chránit průhledným krytem proti vlhkosti, v nouzi postačí i přelepení průhlednou lepící páskou. Po zkompletování celé krabičky přilepte držák baterií zespodu krabičky nebo k zadní boční stěně.


domovská stránka: www.breatharian.eu/Petr, www.gemtree.com