KTimer
Jednoduchý časovač/čítač s ATtiny2313
kiko@ostcogito.org, 05.08.2009-00:00
UPOZORNENIE Prenášanie doma vyrobeného časovača v batožine na letiskách, Vás môže dostať do problémov s pracovníkmi letiskovej kontroly.
Hardvérové vlastnosti- Veľkosť 8,5cmx4,5cm vhodná do ruky
- Napájanie z 3 alkalických batérií typu AA
- Výdrž batérií: cca. 4 roky v úspornom režime, viac ako 80 hodín za stáleho používania
- 4- miestny, 7-segmentový displej, pracujúci v multiplexnom režime pre dosiahnutie čo najväčšieho jasu
- Klávesnica s tromi tlačítkami
- Sirénka s frekvenčným syntezátorom
- Konektor so signálmi umožňujúci ovládanie iných externých zariadení a s možnosťou externého napájania
- Konektor pre sériovú komunikáciu (TTL úrovne)
- Bezkryštáľové zapojenie - zariadenie neobsahuje kryštáľ
- Nízka cena za materiál, nepresahujúca 15 dolárov.
Vlastnosti firmvéru- Odpočítavanie času s 30 sekundovým pípaním po uplynutí nastavenej doby odpočítavania
- Veľmi jednoduchá obsluha, rovnako ako pri mikrovlnej rúre:
- Dve tlačítka na pridávanie a uberanie nastavovaného času v minútových krokoch
- Tretie tlačítko na spustenie/zastavenie odpočítavania
- Maximálna nastaviteľná doba odpočítavania 99 minút
- Funkcia stopky
- Čítač počítajúci stlačenia tlačidla
- Automatické vypnutie po 20 minútach nečinnosti
- Bootloader kompatibilný s AVR910, povoľujúci upgrade firmwaru cez sériový port
- Prístroj zaznamenáva počet reštartov, zobudení sa a celkový napočítaný čas
- Sériová komunikácia umožňuje nahliadnuť do pamäte prístroja (stav počítadiel) a cez escape prepína na bootloader
HARDVÉROVÁ KONŠTRUKCIA (KONŠTRUKCIA PRISTROJA)Požiadavky na konštrukciu prístroja boli:
- Použiť minimálny počet súčiastok
- Urobiť prístroj z čo najnižšou spotrebou, najlepšie tak aby bol napájaný z bateriek
Poznámka:V konštrukcii sa nenachádza napäťový regulátor, prístroj je teda napájaný priamo z batérií. Toto eliminuje prúd pretekajúci regulátorom, ktorý môže byť v tejto aplikácii dosť podstatný.
Preto je výhodnejšie využiť široký rozsah napájacieho napätia procesora ATtiny2313. Kombinácia týchto vlastností predlžuje životnosť batérií.Taktiež sa tu nenachádza žiadny hodinový kryštáľ, čím sa vylučuje využitie prístroja v aplikáciách s požiadavkou na vysokú presnosť.
Presnosť okolo 2% môže byť dosiahnutá ladením TOP hodnoty čítača/časovača1, definovanej v kóde procesora. Softvér obsahuje aj kalibračnú procedúru, ktorá umožňuje zvýšiť presnosť asi na 0,5%.
Štyri multiplexované numerické displeje so spoločnou anódou (LSD056BSR-10) sú v klasickom zapojení s budiacimi tranzistormi.
Považoval som za rozumnejšie použitie trikov ako striedanie displejov so spoločnou anódou a spoločnou katódou (ušetrili by sa tým dva piny procesora), alebo dokonca
charliesplexing (týmto mohli byť ušetrené tri piny procesora a štyri tranzistory), nakoniec som ale od nich upustil, pretože som mal problémy s jasom zobrazovačov.
Prvý skúšaný, červeno - oranžový displej (Para-Light
A-552E), spotrebovával až 72mA, avšak nedosahoval potrebný jas. Použitím modrej verzie displeja (Para-Light
A-551UB), ktorá má veľmi vysoký jas, môžete časovač používať na svietenie, takmer ako baterku.
Pri ich použití je celkom dosť možné, že sa jas medzi jednotlivými zobrazovačmi bude líšiť. Ak by ste chceli získať rovnaký jas, pokúste sa vyberať displeje z rovnakej výrobnej série. Napokon, boli v zapojení použité 4 kusy malého zeleného displeja LN543GA, ktoré som našiel vo výpredaji. S týmto typom zobrazovačov postačuje na dobrú čitateľnosť údajov za denného svetla prúd iba 30mA.
Ak vám bude vyhovovať menší jas zobrazovačov, namiesto pôvodných 220 ohmových rezistorov R1 až R8 uvedených v schéme, použite 330 alebo 470 ohmové rezistory. Touto úpravou dosiahnete zároveň predĺženie životnosti batérie.
Na druhej strane ak budete chcieť vyšší jas, znížte hodnotu rezistorov na 100 až 150 ohmov, avšak počítajte aj zo zníženou výdržou batérie.
Ako môžete vidieť z obrázka, posledné dva zobrazovače som osadil hore nohami. Je to klasický trik, kde desatinná bodka druhého a tretieho zobrazovača spolu nahrádzajú chýbajúcu dvojbodku.
Tlačidlá klávesnice zdieľajú spoločné vodiče s niektorými segmentami zobrazovačov, čím prišlo k ušetreniu ďalších pinov procesora. Ak stlačíte niektoré tlačidlo, spôsobí to nepatrný pokles jasu zobrazovača, ktorý však nemá vplyv na čitateľnosť údajov. Druhá strana klávesnice je paralelne cez rezistor a diódu pripojená k pinu externého prerušenia INT0 mikroprocesora.Tento sa využíva pri zobudení zariadenia z úsporného režimu.
Rezistor R17 je veľmi citlivý na hodnotu. V niektorých prípadoch je potrebná vysoká hodnota (v schéme 100k), ale zdá sa mi, že novšie AVR potrebujú nižšiu hodnotu (3k3).
Existujú dve verzie prístroja:
- jedna s konektorom pre pripojenie sériovej linky s napäťovými úrovňami 5V
- dalšia s obvodom z dvoch tranzistorom, ktorý slúži ako prevodník úrovní umožňujúci priame pripojnie na sériový port PC (RS232) avšak s obmedzením na half-duplex
Verzia 1
Verzia 2
Žiadna z verzií nemá ISP (In-System Programming) konektor. Predpokladá sa, že nahratie počiatočného firmvéru do procesora je možné urobiť na pokusnej doske (kontaktnom poli), alebo na vývojovej doske/ starter kite ako napríklad
Kanda STK-200 alebo Atmel
STK-500.
FIRMVÉR ČASOVAČAAk používate
avrdude alebo
usbasp ako ja, pozrite sa či sú v poriadku cesty v Makefile pre váš systém:
make fuses
make upload_usbasp_full
Toto bude nahraté do súboru full.hex, ktorý bude obsahovat kód aplikácie spolu s bootloaderom.
Takisto môžte nahrať iba bootloader a to pomocou:
make fuses
make upload_boot
Následne pripojte sériový port a uploadnite aplikáciu.
Ak používate iný programátor, upravte si adekvátne k tomu Makefile.
Generovanie obrazuPoužite najnovšiu verziu avr-gcc (ja som použil 3.4.4.) s avr-libc 1.4.0. alebo vyššiu.
Ak pracujete so systémom Windows, myslím že posledné verzie WinAVR sú dobré, aj keď GCC 4.X generuje za určitých situácií viac kódu.
Poznámka: Ak používate gcc-avr 4.0 alebo novší, pridajte do globálnej extern deklarácie atribút „__attribute__((...))“ do definície prerušenia. Bez tohto to nebude fungovať.Ak chcete vytvoriť bootloader, budete taktiež potrebovať AvrAssembler2 z Atmel
AVR štúdia.
Ja som to úspešne skompiloval s
avra.
Nastavte cesty v Makefile tak aby zodpovedali Vášmu systému, potom zadajte „make clean“ pred samotnou kompiláciou.
FunkciaPrvé dve tlačítka s označením "+" a "-" sa používajú k nastaveniu počiatočnej hodnoty časovača. Tretím tlačidlom je Enter, ktoým sa spúšta/zastavuje časovač. Ak je časovač spustený, počítanie sa dá pozastaviť hociktorým tlačítkom. Stlačením tlačítka enter sa znovu obnoví počítanie. Posledných 10 sekúnd odpočítavania je zvýraznených zvukovým tikaním (vyzerá to tak trochu ako bomba chystajúca sa vybuchnúť).
Ked je odpočítavanie skončené (na displeji svieti nula), prístroj pípa a bliká po dobu 30 sekúnd. Pípanie je možné zastaviť stlačením tlačítka enter.
Stlačením "+" a "-" súčasne je možné zastaviť počítanie a vynulovať displej. Táto funkcia je aktívna vo všetkých módoch, rovnako aj v prípade ručného počítadla.
Ak spustíte časovač v hodnote 00:00, vstúpite do módu odmeriavania času (stopky), namiesto odpočítavania sa bude čas pripočítavať. V tomto móde nepracuje funkcia alarmu.
Ak zastavíte a znovu spustíte počítanie, čas sa bude naďalej pripočítavať a to dokonca aj ak použijete tlačítka "+" a "-" na zmenu hodnoty počítadla.
Pre návrat do módu odpočítavania času, použite resetovací príkaz (stlačenie tlačidiel "+" a "-" v rovnakom čase) a potom nastavte požadovanú počiatočnú hodnotu.
Automatické vypnutie (v skutočnosti režim spánku) nastane po 20 sekundách nečinnosti prístroja. Ak stlačíte vsetky tlačidlá súčasne, obnovovacia frekvencia bude polovičná.
Táto funkcia je užitočná ako ukážka princípu multiplexovania. Po zobudení prístroja, je defaultne nastavená frekvencia 50Hz
Stav odpočítavania je vyvedený na pine PD6 a je prístupný pomocou konektora XTRNL_DEVICE.
Naň môžete pripojiť externé zariadenia a ovládať ich.
Zariadenie pracuje v dvoch režimoch: jednoduchom a rozšírenom. Oba sú podrobnejšie opísané nižšie.
Toto rozlíšenie bolo zavedené preto, že niektorý užívatelia by mohli byť zmätený vstupom do módu ručného počítadla spôsobeným nepozornosťou, keď jednoducho chceli iba vynulovať počítadlo.
Jednoduchý režim Tento režim je defaultne nastavený pri prvom zapnutí prístroja. Nachádza sa v nom niekoľko obmedzení:
Klávesy "+" a "-" ovládajú čítač iba po minútach (prvé dva zobrazovače), tým je nastaviteľné rozlíšenie limitované na jednu minútu.
Po zapnutí prístroja (v skutočnosti , po zobudení z režimu spánku) je počítadlo automaticky vynulované.
Mód ručného počítadla je vypnutý, príkaz pre vstup a výstup z/do módu ručného počítadla jednoducho nuluje čítač.
Rozšírený režimPre vstup do rozšíreného módu, stlačte a podržte tlačítka "-" a "enter" súčasne asi 15 sekúnd, pokiaľ prístroj nezačne pípať.
Pre návrat späť do jednoduchého režimu, stlačte a podržte asi 15 sekúnd tlačidlá "+" a "enter" až kým nebudete počuť pípnutie.
Tento rozšírený režim, sa vyznačuje viacerými funkciami:
- Nastavenie časovača tlačítkami, je možné v rozlíšení 1 sekundy: pri podržaní tlačítka, sa rozlíšenie prepína smerom na 10 sekúnd a potom na 1 minút.
- Nexistuje tu automatický reset po prebudení sa, ale prístroj ukazuje hodnotu akú malo počítadlo pred prechodom prístroja do režimu spánku.
- Ak nechcete aby prístroj pokračoval v predošlom počítaní, budete ho musieť ručne vynulovať súčasným stlačením tlačidiel "+" a "-".
- Krátkym stlačením tlačidiel "-" a "enter", vstúpite do módu ručného počítadla, opísaného nižšie. Pre návrat do módu merania času, treba súčasne nakrátko stlačit tlačidlá "+" a "enter".
Mód ručného počítadlaTento mód je vhodný na počítanie vecí, ako sú napríklad položky inventára. Ľahšie sa vám budú počítať dlhšie zoznamy a máte menšiu pravdepodobnosť omylu.
Aby bolo na pohľad zrejmé, že sa nachádzame v móde ručného počítadla, na displeji sa nezobrazuje dvojbodka a ani nuly na jednotlivých zobrazovačoch.
Pripočítanie sa uskutočnuje stlačením a uvoľnením tlačidla "enter". Tlačidlo "enter" pritom môžete držať ako dlho chcete, hodnota sa ku aktuálnemu stavu počítadla pripočíta (zvýši sa iba o jedna) až po jeho uvoľnení.
Pre odpočítanie jednotky od aktuálneho stavu počítadla (napr. korekciu chyby), stačí stlačiť tlačidlo "-". Rovnako ako predtým, nezáleží na tom ako dlho budete tlačidlo držať, od aktuálneho stavu počítadla sa odpočíta jednotka až po jeho uvoľnení.
V tomto móde je tlačidlo "+" neaktívne. Je užitočné pri prebudení prístroja, bez toho aby došlo k zmene hodnoty počítadla.
Ďalšie aplikáciePrepísanie firmware nám umožnuje použiť prístrroj aj na iné veci. Niektoré z možností sú: pripojenie svetelnej závory na XTRNL_DEVICE konektor, počítanie udalostí, počítadlo na navíjanie cievok, počítadlo ubehnutých kilometrov, otáčkomery, rýchlomery, taxametre a daľšie.
Licencia a sťahovanie Download:
17_ktimer-1.2.zipBootloader bol upravený z bootloaderu LadyAda od fy. Atmex a je licencovaný pod
GNU General Public License v2 Pripomienky, návrhy alebo kritiku posielajte na kiko_at_ostcogito_dot_org
Článok zverejnený na základe licencie
Creative Commons Attribution-NonCommercial-ShareAlike version 2.5 licensePreklad:
kiwwicek
tento článok je z mikroZONE
( https://www.mikrozone.sk/pluginy/content/content.php?content.17 )