Urob si sám hodiny na mikrokontroléri. Hodiny na PIC16F628A a FYQ3641A Hodiny na mikrokontroléri pic16f628a ds1307

Tieto elektronické hodinky sú najjednoduchšie. Boli zmontované za pár hodín. Základ mikrokontrolér PIC 16F628A, okrem neho hodinky obsahujú niekoľko jednoduchých a lacných prvkov, informácie sa zobrazujú na 4-miestnom (hodinovom) LED indikátore. Obvod je napájaný zo siete a má aj záložný zdroj. Tento dizajn možno odporučiť začiatočníkom. Pôvodný program som špeciálne uviedol s podrobnými komentármi, aby bolo ľahšie pochopiť, čo a ako funguje.

schéma hodín:

Obvod je veľmi jednoduchý, jednoduchý a algoritmus ich práce (pozri komentáre v zdroji). Tlačidlá kn1 a kn2 slúžia na korekciu času - hodiny a minúty. Hodiny majú 24-hodinový formát zobrazenia. V 1. číslici hodín bola potlačená nevýznamná nula. Presnosť hodín úplne závisí od frekvencie kremenného rezonátora. Ale aj bez špeciálnych výberov kremeňa a kondenzátorov v generátore hodín bežia hodiny veľmi presne.

Hodiny sú zostavené na 2 doskách s plošnými spojmi, ukotvenými jedna k druhej pod uhlom 90 stupňov. Celý indikátor je umiestnený na jednej doske a všetko ostatné je na druhej. Záložná batéria bola rozbitá z čínskeho zapaľovača s LED baterka. Odstránime LED a namontujeme držiak batérie na dosku. Fotografia ukazuje, že vodiče rezistorov sú pripojené k batériám - držia celú túto štruktúru. Samozrejme, kapacita takýchto batérií je malá, no pri napájaní hodiniek zo siete sa z batérií neodoberá žiadny prúd. Napájajú obvod iba vtedy, ak nie je napájanie zo siete. V tomto prípade je napájaný iba mikrokontrolér, indikátor nie je napájaný batériami, takže zhasne a hodiny naďalej tikajú. Ovládacie tlačidlá sú umiestnené na doske na akomkoľvek vhodnom mieste puzdra. Dizajn tlačidiel môže byť ľubovoľný. Na napájanie zo siete bol použitý čínsky napájací adaptér, ku ktorému bola pridaná doska s čipom 7805 (5-voltový stabilizátor). Vo všeobecnosti postačí akýkoľvek napájací zdroj s výstupným napätím 5V a prúdom 150mA.

Program je napísaný tak, aby sa dal použiť na úvodné štúdium mikrokontroléra PIC, komentuje sa činnosť takmer každého príkazu. Ak chcete, môžete ľahko pridať doplnkové funkcie, ako je kalendár, časovač, stopky atď.

Stolové a nástenné hodiny s teplomerom sú vyrobené v puzdrách z analógových hodín. Hodiny a teplomer sú vyrobené ako samostatné, nezávislé zariadenia.

Nebudem popisovať teplomer, je zverejnený na tej istej webovej stránke, teplomer pre PIC16F628A a FYD5622FS-11. Obvod, doska plošných spojov a firmvér sú tam, všetko je nezmenené.

Teplotný snímač DS18B20 stolových hodín je umiestnený mimo okna. Izolované drôty 0,35 mm, približne 10 metrov dlhé

Hodiny sú zostavené na jednoduchých 7-segmentových zelených LED indikátoroch. Veľkosť čísel je 14x25,4mm - dobre viditeľné z každého rohu miestnosti. Upozorňujeme, že indikátor je pripojený bez zhášacích odporov. Je to preto, že každý segment pozostáva z dvoch LED zapojených do série a má menovité napätie 3,8 voltu. Pri dynamickej indikácii prúdy neprekračujú prípustné hodnoty.

Stabilizátor napätia sa nachádza v adaptéri zástrčky. Je zostavený na 3-wattovom transformátore a vysokofrekvenčnom meniči - stabilizátore LM2575T-5.0 podľa štandardného obvodu. Mikroobvod bez chladiča sa prakticky nezohrieva. Konektor pre napájanie 3,5 mm. Quartz 4 MHz.

Akékoľvek n-p-n tranzistory s nízkym výkonom. Gombíky 6×6 H=14/10mm spájkované na strane vodiča . Dĺžka stláčača gombíka sa volí na základe konštrukčných požiadaviek. Po každom stlačení tlačidla sa pridá jednotka. Pri držaní sa počítanie zrýchli na primeranú rýchlosť.

Rezistory MLT – 0,25. R3 – R6 1-3 kOhm.

Batérie: 4 kusy GP-170 alebo podobné. Keď je sieťové napätie vypnuté, napájajú iba mikrokontrolér. Je vhodné voliť diódy s najnižším poklesom napätia v priepustnom smere.

Dosky sú vyrobené z jednostrannej fólie zo sklolaminátu.

HEX súbor, schéma, pečate v priečinku č.1.

Možnosť 2: na jednej doske

Do tohto puzdra sa nezmestili dve dosky: hodiny a teplomer. Nechcel som zmenšiť veľkosť ukazovateľa hodín.

Nemám rád zobrazovanie času a teploty pomocou jedného ukazovateľa na stolových hodinách.

K teplomeru som musel zobrať ešte jeden menší indikátor a nakresliť nový plošný spoj. Preto je obvod a firmvér pre teplomer odlišný.

HEX súbor a schéma teplomera v priečinku č. 2. Doska plošných spojov na rovnakom mieste.

Diagram hodín bez akýchkoľvek zmien je prevzatý z prvej časti.

Navrhujem na zopakovanie obvodu jednoduchých elektronických hodín s budíkom, vyrobených na type PIC16F628A. Veľkou výhodou týchto hodiniek je LED indikátor typu ALS pre zobrazenie času. Osobne som dosť unavený zo všetkých druhov LCD a chcem mať možnosť vidieť čas odkiaľkoľvek v miestnosti, vrátane tmy, a nielen priamo pri dobrom osvetlení. Obvod obsahuje minimum dielov a má výbornú opakovateľnosť. Hodinky boli testované mesiac, čo ukázalo ich spoľahlivosť a výkon. Myslím na všetky schémy na internete, táto je najjednoduchšia na zostavenie a spustenie.

Schematický diagram elektronických hodín s budíkom na mikrokontroléri:


Ako je zrejmé z diagramu hodín, je to jediný mikroobvod použitý v tomto zariadení. Za úlohu frekvencia hodín Používa sa 4 MHz kremenný rezonátor. Na zobrazenie času sa používajú červené indikátory so spoločnou anódou, každý indikátor pozostáva z dvoch číslic s desatinnými čiarkami. V prípade použitia piezo žiariča možno vynechať kondenzátor C1 - 100 μF.

Môžete použiť akékoľvek indikátory so spoločnou anódou, pokiaľ má každá číslica svoju vlastnú anódu. Aby boli elektronické hodinky dobre viditeľné v tme a na veľkú vzdialenosť, skúste zvoliť väčšie ALS.


Zobrazenie hodín je dynamické. V danom čase sa zobrazuje iba jedna číslica, čo umožňuje výrazne znížiť aktuálnu spotrebu. Anódy každej číslice sú riadené mikrokontrolérom PIC16F628A. Segmenty všetkých štyroch číslic sú navzájom spojené a cez odpory obmedzujúce prúd R1 ... R8 pripojené ku svorkám portu MK. Keďže sa indikátor rozsvieti veľmi rýchlo, blikanie čísel sa stáva nepostrehnuteľným.


Momentové tlačidlá slúžia na nastavenie minút, hodín a budíka. Pin 10 je použitý ako výstup pre signál alarmu a kaskáda tranzistorov VT1,2 je použitá ako zosilňovač. Emitor zvuku je piezoelektrický prvok typu ZP. Pre zlepšenie hlasitosti ho môžete nahradiť malým reproduktorom.


Hodiny sú napájané zo stabilizovaného 5V zdroja. Môže byť napájaný aj batériami. Hodinky majú 9 režimov zobrazenia. Prepínanie medzi režimami sa vykonáva pomocou tlačidiel „+“ a „-“. Pred zobrazením samotných hodnôt sa na indikátoroch zobrazí krátka nápoveda o názve režimu. Trvanie zobrazenia rady je jedna sekunda.


Pomocou tlačidla "Oprava" sa budík prepne do režimu nastavenia. V tomto prípade sa na pol sekundy zobrazí krátkodobá výzva, po ktorej začne blikať nastavená hodnota. Oprava hodnôt sa vykonáva pomocou tlačidiel „+“ a „-“. Pri dlhšom stlačení tlačidla sa aktivuje režim automatického opakovania pri zadanej frekvencii. Všetky hodnoty, okrem hodín, minút a sekúnd, sa zapíšu do EEPROM a po vypnutí napájania sa obnovia.


Ak v priebehu niekoľkých sekúnd nestlačíte žiadne tlačidlo, elektronické hodiny sa prepnú do režimu zobrazenia času. Stlačením tlačidla „On/Off“ sa budík zapne alebo vypne, túto akciu potvrdí krátky zvuk. Keď je budík zapnutý, rozsvieti sa bodka na spodnej číslici indikátora. Premýšľal som, kam umiestniť hodiny v kuchyni, a rozhodol som sa ich namontovať priamo plynová pec:) Materiál poslal in_sane.


Diskutujte o článku ELEKTRONICKÝ BUDÍK


Táto verzia hodiniek je vyrobená tak, aby čo najviac zjednodušila obvod, znížila spotrebu energie a v konečnom dôsledku získala zariadenie, ktoré sa ľahko zmestí do vrecka. Vybraté miniatúrne batérie na napájanie obvodu, montáž SMD a miniatúrny reproduktor (napríklad z nefunkčného mobilný telefón), môžete získať dizajn o niečo väčší ako zápalková škatuľka.
Použitie superjasného indikátora vám umožňuje znížiť prúd spotrebovaný obvodom. Zníženie spotreby prúdu sa dosiahne aj v režime "LoFF" - indikátor je vypnutý a svieti iba blikajúca bodka nižšej číslice hodín.

Indikácia
Nastaviteľný jas indikátorov vám umožní zvoliť si najpohodlnejšie zobrazenie nameraných hodnôt (a opäť znížiť spotrebu energie).
Hodinky majú 9 režimov zobrazenia. Prepínanie medzi režimami sa vykonáva pomocou tlačidiel „plus“ a „mínus“. Pred zobrazením samotných hodnôt sa na indikátoroch zobrazí krátka nápoveda o názve režimu. Trvanie zobrazenia rady je jedna sekunda. Použitie krátkodobých podnetov umožnilo dosiahnuť dobrú ergonómiu hodiniek. Pri prepínaní medzi režimami zobrazenia (ktorých bolo pomerne veľa, napr jednoduché zariadenie, ako bežné hodinky) nedochádza k zámene a vždy je jasné, ktoré hodnoty sa zobrazujú na indikátore.


Korekcia hodnôt zobrazených na indikátore sa aktivuje stlačením tlačidla "Korekcia". V tomto prípade sa na 1/4 sekundy zobrazí krátkodobá výzva, po ktorej začne nastavená hodnota blikať s frekvenciou 2 Hz. Hodnoty sa opravujú pomocou tlačidiel plus a mínus. Pri dlhšom stlačení tlačidla sa aktivuje režim automatického opakovania pri zadanej frekvencii. Frekvencie automatického opakovania pre stlačenie tlačidla sú: pre hodiny, mesiace a deň v týždni - 4 Hz; pre minúty, rok a jas indikátora - 10 Hz; pre korekčnú hodnotu - 100 Hz.
Všetky nastavené hodnoty, okrem hodín, minút a sekúnd, sa zapíšu do EEPROM a obnovia sa po vypnutí a zapnutí napájania. Sekundy počas korekcie sa vynulujú. Automaticky sa vrátia všetky režimy okrem hodín-minút, minút-sekúnd a LoFF. Ak do 10 sekúnd nestlačíte žiadne tlačidlo, hodiny sa prepnú do režimu zobrazenia hodín a minút.
Stlačením tlačidla „Zap/Vyp alarm“. Budík sa zapína/vypína. Aktiváciu alarmu potvrdí krátky dvojtónový zvuk. Keď je budík zapnutý, rozsvieti sa bodka na spodnej číslici indikátora.
V režime "Corr" sa na indikátore zobrazuje korekčná konštanta, ktorej počiatočná hodnota je 5000 mikrosekúnd za sekundu. Keď sa hodiny oneskorujú, zvyšujeme konštantu o hodnotu oneskorenia vypočítanú v mikrosekundách za sekundu. Ak sa hodiny ponáhľajú, potom konštantu znížime rovnakým princípom.

Ponúkam dva veľmi jednoduché obvody na vlastnú montáž, a to hodiny na mikrokontroléri PIC a AVR. Základ jednej schémy Mikrokontrolér AVR Attiny2313 a druhý PIC16F628A

Tieto hodinové obvody na mikrokontroléri výrazne pomôžu začínajúcim rádioamatérom pochopiť problematiku prevádzky a programovania mikrokontrolérov.

Poďme sa na to pozrieť bližšie jednoduchý diagram: Napájanie je možné buď z troch AA batérií alebo z


Mikrokontrolér Attiny2313 je taktovaný 16 MHz quartz. Ako počítadlo času používa vnútorný obvod mikrokontroléra 16-bitový časovač s deličom 256. Akonáhle interné počítadlo napočíta do 625, dôjde k prerušeniu. Preto budeme mať prerušenia 100-krát za sekundu.

Časový interval sa berie do úvahy v globálnych premenných a každé prerušenie vyžaduje zvýšenie hodnoty milisekúnd o jednu. Akonáhle počet milisekúnd dosiahne 100, musíte zvýšiť hodnotu sekúnd o jednu a vynulovať milisekúnd. A tak ďalej v súlade s rovnakým algoritmom až do desiatok hodín, ktoré sa vynulujú až po dosiahnutí hodnoty 24 a bez zvýšenia ďalšej číslice.

V súlade s týmto princípom vytvárame aktuálnu časovú hodnotu zaznamenanú v globálnych premenných. Teraz musíme tieto údaje vizuálne zobraziť. Keďže mikrokontrolér má obmedzený počet portov, použijeme takú vlastnosť, ako je zotrvačnosť indikátora digitálneho segmentu sa15-11gwa. Katódy jeho indikátorov sú zapojené paralelne a anódy majú samostatné ovládanie, ktoré umožňuje kedykoľvek zobraziť číslo na ktoromkoľvek zo štyroch indikátorov.

Rýchlym prepnutím portu mikrokontroléra, ku ktorému sú pripojené všetky katódy a rýchlym prepnutím anód vytvára ilúziu, že v indikátore segmentu sú zobrazené všetky štyri číslice, hoci v skutočnosti je funkčný iba jeden zo segmentov. Ak je aktuálny čas 11:57, tak najskôr na prvom ukazovateli hodín zobrazíme číslo jedna, po 1 ms na druhom ukazovateli zobrazíme číslo 1, po ďalšej 1 ms na treťom ukazovateli 5, po 1 ms zobrazíme 7 na 4. indikátore a tak ďalej cyklicky, pričom každý indikátor sa aktualizuje po 1 ms.

Na konci každého zobrazovacieho cyklu sa približne 40-krát za sekundu zisťuje stav tlačidiel ovládania hodín.

Stiahnite si výkres PCB vytvorený v programe a firmvér pre mikrokontrolér z vyššie uvedeného odkazu. a priamo o zložitosti firmvéru si prečítajte tu.

Tento dizajn, aj keď je založený na inom type mikrokontroléra, nie je o nič menej zložitý ako predchádzajúci obvod.


Obslužný algoritmus firmvéru je tiež jednoduchý; archív obsahuje veľmi podrobné komentáre k programovému kódu. Dva prepínače kn1 a kn2 sú určené na korekciu času - hodiny a minúty. Presnosť hodiniek závisí od frekvencie použitého kremeňa.

Konštrukčne sú hodiny vyrobené na dvoch doskách plošných spojov umiestnených vedľa seba pod uhlom 90 stupňov. Indikátor je umiestnený na prvej doske a všetka ostatná elektronika je na druhej. Záložné napájanie ktoré využívajú tri batérie umiestnené v držiaku vyrobenom zo starého čínskeho zapaľovača s LED. Pre napájanie zo siete striedavý prúd Postačí akýkoľvek prúd 5V a 150mA.


Archív, ktorý si môžete stiahnuť zo zeleného odkazu, obsahuje rozloženie oboch dosiek plošných spojov v programe Sprint Layout a firmware pre mikrokontrolér PIC so zdrojovým kódom programu pre MP_LAB IDE s podrobným komentárom.

A samotný program nájdete aj tu

Táto konštrukcia má digitálnu korekciu presnosti zdvihu, ako aj vstavaný teplomer, ktorý striedavo zobrazuje na LED displeji hodnoty teploty s presným časom. Konštrukcia hodín využíva energeticky nezávislú pamäť mikrokontroléra, ktorá ukladá nastavenia a nastavenia aj pri výpadku externého napájania.


Na ovládanie anód LED indikátorov sa používajú tranzistorové spínače podľa štandardného spínacieho obvodu.

Pri prvom zapnutí sa na displeji na jednu sekundu zobrazí reklamná obrazovka. Potom sa zobrazí čas. Stlačením tlačidla SET_TIME prepnete indikátor v kruhu z hlavného režimu hodín:

Absolútne, vo všetkých bunkách, podržaním tlačidiel PLUS/MINUS sa vykoná zrýchlená inštalácia. Ak boli nastavenia zmenené používateľom, po 10 sekundách sa nové hodnoty uložia do energeticky nezávislej pamäte mikrokontroléra a načítajú sa. Pri flashovaní firmvéru MK ho nastavte nasledovne:


Externý dizajn zariadenia môžete posúdiť z fotografií nižšie; šitie a ďalšie súbory pre dizajn si môžete stiahnuť z vyššie uvedeného odkazu.


Rozvrhy zmien sú implementované vo firmvéri budíka: 4/5 (štyri na piatu) – 4 dni v 1 smene, 1 deň voľna, 4 dni v 2 zmenách, 1 deň voľna, 4 dni v noci, 1 deň voľna; – deň, noc, 2 dni voľna; V pracovných dňoch – Po-Pia - pracovné dni, So-Ne - Zatvorené; ( Prázdniny sa neberú do úvahy); Denne.

Používateľ si sám vyberie typ plánu budíka a nastaví ľubovoľný čas budíka. V možnostiach 4/5 a deň, noc, 2 dni voľna - musíte dodatočne zvoliť aktuálnu zmenu.

Okrem toho sú vo firmvéri MK implementované nasledujúce funkcie: Prechod na obdobie leto-zima; Úprava času; Zrýchľujúci sa poplachový signál; Zobrazenie nuly v čísliciach hodín a dátumu

Hodinový obvod je založený na hodinovom čipe DS1307 a mikrokontroléri MEGA8. Obvod (umiestnený v archíve s firmvérom MK a výkresmi dosky plošných spojov) je určený pre použitie sedemsegmentových digitálnych indikátorov so spoločnou anódou pre napätie 5V. (POZOR! Na schéme nie sú pre zjednodušenie znázornené predradné odpory. Je potrebné ich osadiť na každý segment indikátorov. Spolu je ich 112 kusov. Menovitá hodnota je vypočítaná podľa dokumentácie. Použil som segmentové indikátory ako fys15011 a fyd-5622 Ak používate výkonnejšie, potom s najväčšou pravdepodobnosťou nie sú potrebné ďalšie tranzistorové spínače.

Nákres dosky plošných spojov bol vyvinutý pre existujúcu škatuľku zo starých pokazených hodiniek. Ku konektoru Alarm môžete pripojiť záťaž s nízkou spotrebou energie, povedzme hudobnú kartu, a pomocou prepojky JP1 odpojiť interný bzučiak. Mikrokontrolér je možné flashovať priamo na doske, čo značne zjednodušuje konfiguráciu v prípade úpravy dizajnu.

Nastavenie hodín
Ak to chcete urobiť, musíte vstúpiť do režimu nastavenia parametrov:
Parameter-Value-Save in memory
S.01 - HODINY [-]
S.02 – MINÚTY [-]
S.03 – DEŇ [-]
S.04 – MESIAC [-]
S.05 – ROK [-]
R.06 – Typ alarmu [+] (1-4/5; 2-5/8; cestovný poriadok 3 železníc; 4-denne)
S.07 – ZMENA [+]
S.08 - Bud.1.HH [+]
S.09 – Bud.1.MM [+]
S.10 - Bud.2.CHH [+]
S.11 – Bud.2.MM [+]
S.12 - Bud.3.CHH [+]
S.13 – Bud.3.MM [+]
S.14 – Úprava (D.H) [+]
S.15 – Letné/zimné obdobie [+]
S.16 - Zrýchľujúci sa bzučiak [+]
S.17 - Zobrazenie úvodnej nuly v hodinách [+]
S.18 – Zobrazenie počiatočnej nuly v číslici dátumu [+]

Nastavenie budíka: Tlačidlo On/On Alarm. - Zap/Zap sa vykoná, v tomto prípade: S typom alarmu 1: Alarm 1 - 1. zmena; Bud.2 - posun; Bud.3 - 3. zmena;
Rozvrh zmien: 1,2,3,4 - prvá zmena; 5 dní voľna; 6,7,8,9 - druhá zmena; 10 dní voľna; 11,12,13,14 - 3. zmena; 15.16 - deň voľna; Potom sa dni opakujú.
Pri prvom type budíka 2: Budík 1 - nastavuje čas budíka; Bud.2, Bud.3 - nefunguje; Rozvrh zmien: Pracovné dni.
Pri treťom type budíka: Budík 1 - je nastavený denný čas; Bud.2 - nastavuje čas v noci; Bud.3 - nefunguje;
Rozvrh zmien: – deň, noc, 2 dni voľna;. Keď je typ budíka 4 Budík 1, Budík 2, Budík 3, čas je nastavený; Ak plánujete používať iba jeden budík, nastavte časy troch na rovnaký čas.
S rozvrhom zmien: Denne. Ak stlačíte tlačidlá Alarm Off. v režime nastavovania parametrov sa nastavenie ukončí bez uloženia.
Úprava: Pri nastavovaní sa používa nasledujúca metóda: +/- Ch.D, kde: Ch je počet sekúnd upravených za hodinu (max. 9). D - sekundy upravené za deň. POZOR! Po vypnutí napájania sa nevykonávajú žiadne úpravy. Keď ho zapnete, skontrolujte, či je nastavený správny čas.