Close

Digitální zvonek s Arduinem

Digitální zvonek s Arduinem úvodní

Po čase opět přinášíme článek od našeho čtenáře, pana Miroslava Tesaře. V předchozích článcích jsme tu měli časomíru, klávesnici nebo sudoku s Arduinem. Dnes se podíváme na Arduino projekt, který má využití snad na každé škole. Projekt „Digitálny zvonček riadený dátami pomocou SD karty“ (už vás postupně ladím na slovenštinu) je pěkným příkladem propojení dovedností programování a konstrukce elektronických obvodů. Principy popsané v projektu se dají využít dobře i v dalších projektech. Tak se na to pojďme podívat, co se dá vytvořit třeba jen Arduino NANO!


Školní hodiny s kyvadlem
Školní hodiny s kyvadlem

V mnohých školských zariadeniach sa ešte aj v dnešnej dobe zvoní na vyučovacie hodiny pomocou hodín s kyvadlom. Časy pre zvonenie sa na týchto mechanických hodinách nastavujú pomocou kolíčkov. Ich prestavenie na iný vyzváňací čas býva nočnou morou a v praxi nerealizovateľné v krátkom čase. Presnosť týchto hodín je daná dobou, kedy boli uvedené do prevádzky.

Dnes je iná doba, digitalizujeme a „Arduinujeme“. A tak prišiel rad aj na túto raritu. A ako inak, než použitím mojich obľúbených súčiastok – Arduino NANO 328P, modul RTC DS3231, obvody 75HC595 a 74HC148D. A k nim modul SD karty a 7-segmentovky.

Hlavným kritériom nových digitálnych školských hodín bola vyššia presnosť daná RTC modulom, použitím stávajúcich elektrických rozvodov zvončekov a jednoduchá zmena vyzváňacích časov, čo zabezpečia dáta na SD karte. Arduino NANO je môj obľúbený modul, je lacný, malý a poskytuje dostatok programovej a dátovej pamäti na takéto aplikácie. Tak do toho!

Obvodové riešenie

Obvod tlačítka v projektu digitální zvonek s Arduinem

Modul zvonenia je ovládaný piatimi tlačidlami  pre nastavenie času a voľby súboru (funkcie budú vysvetlené detailne neskôr) a šiestym tlačidlom pre zhasnutie displeja. Vstupné piny Arduina sú citlivé na zákmity kontaktov, bez ich ošetrenia by zariadenie nešlo spoľahlivo ovládať. K tomu spoľahlivo postačí RC obvod ako je uvedený na obrázku.

Dekodér v projektu digitální zvonek s Arduinem

Daň, za ktorú platíme pri použití Arduina NANO je pomerne malý počet pinov. Šesť tlačidiel potrebuje 6 pinov a ich detekcia v programe by bola neefektívna. Preto som použil s výhodou obvod 74HC148D. Na vstupy sú privedené výstupy z tlačidiel a výstupy z obvodu sú privedené do Arduina. Funkcia obvodu je, že pri stlačení tlačidla (logická nula) sa zvyšné vstupy zablokujú. Vyšle sa signál GS a kód stlačené klávesy. Ten neskôr detekujeme  v programe.

Zapojení SD karty v projektu digitální zvonek s Arduinem

Dôležitou súčasťou je modul SD karty. Na SD karte je možné uložiť desať rôznych zvoniacich režimov (dané jednomiestnym postfixom). Tento počet prevyšuje potreby školského zvonenia. Softvérové ovládanie sa deje cez vstupy MISO, MOSI, SCK a CS.

RTC DS3231 v projektu digitální zvonek s Arduinem

Riadenie času je pomocou shield-u RTC s obvodom DS3231. Tu by som chcel upozorniť, že sa predávajú obdobné shield-y s obvodom DS1302, ktorý nie je tak presný. Preto ho neodporúčam. Obvod vysiela nepretržitý signál 32kHz, ktorý využijeme na vytvorenie signálov potrebných pre funkciu hodín. Pomocou zberníc SCL a SDA čítame/ukladáme informácie z/do obvodu.

Zapojení relé v projektu digitální zvonek s Arduinem

Digitálny školský zvonček nevydáva zvoniaci signál, či melódiu, čo by principiálne nebol problém, ale využíva pôvodné školské rozvody pre zvončeky (70V rozvod). Preto ako výstup dostatočne postačí relé. Tu je treba upozorniť na použitie diódy v závernom smeru pripojenú paralelne k budiacej cievke. Indukčná záťaž by mohla spätne zaťažovať pin Arduina a dokonca ho aj zničiť. Taktiež upozorňujem na vhodnosť použitia varistoru, ktorý chráni kontakty relé.

Použitie tejto koncepcie s výstupným relé môže byť výhodné pre iné aplikácie ako len pre školský zvonček. Je možné nájsť niekoľko aplikácií s časovým ovládaním, kde by sa dal využiť tento projekt.

Pre zobrazenie času a súboru sú použité 7-segmentové displeje, dva pre hodiny, dva pre minúty a jeden pre postfix vybratého súboru. Ďalej sa zobrazuje deň v týždni, takže je možné podmieniť zapnutie relé nielen podľa času, ale aj podľa dňa v týždni.

Zapojení posuvného registru v projektu digitální zvonek s Arduinem

Riadenie segmentov je realizované pomocou obvodov 74HC595. Obvod umožňuje sériový vstup dát a ich paralelný výstup pomocou záchytného registra. Zobrazované symboly sú statické bez nepríjemného preblikávania.

Na ovládanie všetkých 7-segmentových displejov postačia iba 4 piny Arduina. Činnosť obvodu som popisoval v minulom článku. Je treba dôrazne pripomenúť, že zbernica na ovládanie posuvných registrov je náchylná na presluchy. Použitím „káblikov“ na prepojenie obvodov s veľkou pravdepodobnosťou povedie k veľkému sklamaniu. Zbernicu buď vytvorte na DPS, alebo pomocou tienených káblov.

Posledným použitým obvodom je stabilizátor napätia. Nepoužil som štandardný parametrický stabilizátor 7805, ktorý dosť hreje, ale použil som s výhodou modul LM2596s DC-DC. Akceptované vstupné napätie je max 28V, napätie výstupu je možné nastaviť trimrom. Maximálny odber prúdu z tohto obvodu je 3A.

Digitální zvonek s Arduinem - schéma
Digitální zvonek s Arduinem – schéma

Ovládanie digitálneho zvončeka

Vyvolanie nastavenia času a postfixu súboru sa deje pomocou tlačidla M – Mód. Jeho stlačením začne blikať postfixové číslo, pomocou ktorého sa vyberá súbor ZvoncekX.txt, kde X je postfix zobrazený na displeji. Šípkami Hore/Dole nastavujeme nové číslo postfixu.

Digitální zvonek s Arduinem

Pomocou tlačidiel Vľavo/Vpravo prechádzame postupne na minúty, hodiny a deň v týždni. Ak ich hodnoty chceme zmeniť, tak použijeme šípky Hore/Dole. Opätovným stlačením tlačidla M aktualizujeme zmenené údaje a vrátime sa k normálnej prevádzke. Šípky Hore/Dole majú ešte jednu funkciu – pokiaľ predtým nebolo stlačené tlačidlo M, tak šípkou hore vyvoláme zapnutie relé, šípkou Dole zapnutie ukončíme. Tým môžeme spínať relé „mimo poradia“ v ľubovoľnej dĺžke zopnutia.

Tlačidlo D – Displej slúži na zhasnutie 7-segmentových displejov a diód okrem sekundoviek. Nie vždy je príjemné, keď displej svieti, keď to nie je potrebné. Opätovným stlačením sa displej znova rozsvieti. Táto funkcia nemá žiadny vplyv na funkciu zariadenia.

Zvoniaci program

Zvoniaci program je realizovaný v súboroch na SD karte. Súbory musia mať pevný názov Zvoncek, ku ktorému sa pridá číslo postfixu. Prípona súboru je .txt. Povolené názvy súboru sú teda Zvoncek0.txt až Zvoncek9.txt (názov je možné zmeniť v konštantách programu, nepoužívajte však diakritiku). Súbory je nutné editovať v Poznámkovom bloku (WordPadu,….), v žiadnom prípade nie v editoroch Word a jemu podobných.

Súbor má pevný formát:

HH:MM tab    C  tab  Po  tab  Ut tab   St  tab  Sv tab  Pi  tab  So   tab  Ne  Enter

Kde:

HH         – hodiny dvojmiestne, napr. 07, 11, 21,…

MM       – minúty dvojmiestne, napr. 00, 55,…

C             – čas zvonenie v sekundách (celé číslo, nie desatinné)

Po..Ne  – údaj 1 alebo 0. Ak je na dané pozícii 1, zvonček bude zvoniť v daný čas a deň v týždni

Záznam môže vyzerať napr. takto:

07:05     5             1              1             1             1             1             0              0

07:50     3             1              1             1             1             1             0              0

08:00     5             1              1             1             1             1             0              0

…………..

Softvér neobsahuje syntaktický analyzátor záznamov v súboru, preto je nevyhnutné dodržať predpísanú štruktúru záznamu! Časy v zázname musia byť zoradené vzostupne!

Ak v zázname daný čas a daný deň v týždni súhlasí s aktuálnym časom na displeji, zapne sa relé a rozsvieti sa dióda Zvonček na dobu stanovenou časom C.

V priebehu dňa je možné aktualizovať čas a ľubovoľne meniť postfix v názvu súboru, nakoľko sa vždy znovu reštartuje vybraný súbor a čítanie záznamu sa zastaví na najbližšom čase zvonenia. Ak zvolíme postfix súboru, ktorý neexistuje, pri ukončení voľby tlačidlom M sa na displeji zobrazí kód chyby.

Programové riešenie môžete nájsť TU a návod je TU.

Oldřich Horáček

Napsat komentář