• DIY digitální elektronické hodinky. DIY hodinky s LED displejem

    Ahoj geektimes! První část článku pojednávala o principech získávání přesného času na podomácku vyrobených hodinkách. Pojďme dále a uvažujme, jak a na čem je lepší tentokrát zobrazit.

    1. Výstupní zařízení

    Máme tedy určitou platformu (Arduino, Raspberry, řadič PIC/AVR/STM atd.) a úkolem je připojit k ní nějakou indikaci. Existuje mnoho možností, které zvážíme.

    Segmentový displej

    Všechno je zde jednoduché. Segmentový indikátor se skládá z obyčejných LED, které se jednoduše připojí k mikrokontroléru přes zhášecí odpory.

    Pozor na provoz!

    Pro: jednoduchost designu, dobré úhly recenze, nízká cena.
    Nevýhody: Množství zobrazovaných informací je omezené.
    Existují dva typy návrhů indikátorů, se společnou katodou a společnou anodou; uvnitř to vypadá asi takto (schéma z webu výrobce).

    Existuje 1001 článků o tom, jak připojit LED k mikrokontroléru, Google může pomoci. Potíže začínají, když chceme velké hodiny- vždyť pohled na malý ukazatel není nijak zvlášť pohodlný. Pak potřebujeme následující indikátory (foto z eBay):

    Jsou napájeny 12V a jednoduše nebudou fungovat přímo z mikrokontroléru. Zde nám přichází na pomoc mikroobvod. CD4511, právě pro tento účel. Převádí nejen data ze 4bitové linky na požadovaná čísla, ale obsahuje i vestavěný tranzistorový spínač pro napájení indikátoru. V obvodu tedy budeme potřebovat „výkonové“ napětí 9-12V a samostatný redukční převodník (například L7805) pro napájení „logiky“ obvodu.

    Maticové indikátory

    V podstatě se jedná o stejné LED, pouze ve formě matice 8x8. Foto z eBay:

    Na eBay se prodávají ve formě jednotlivých modulů nebo hotových bloků, například 4 kusy. Jejich správa je velmi jednoduchá - na moduly je již připájen mikroobvod MAX7219, zajišťující jejich provoz a připojení k mikrokontroléru pouze pomocí 5 vodičů. Existuje mnoho knihoven pro Arduino, každý se může podívat na kód.
    Pro: nízká cena, dobré pozorovací úhly a jas.
    Nevýhody: nízké rozlišení. Ale pro úlohu odvození je času docela dost.

    LCD indikátory

    LCD indikátory mohou být grafické nebo textové.

    Grafické jsou dražší, ale umožňují zobrazit pestřejší informace (například graf atmosférického tlaku). Textové jsou levnější a lépe se s nimi pracuje, umožňují zobrazovat i pseudografiku - do displeje je možné načítat vlastní symboly.

    Práce s indikátorem LCD z kódu není obtížná, ale existuje určitá nevýhoda - indikátor vyžaduje mnoho řídicích linek (od 7 do 12) z mikrokontroléru, což je nepohodlné. Číňané proto přišli s nápadem zkombinovat LCD indikátor s i2c ovladačem, což se nakonec ukázalo jako velmi pohodlné – k připojení stačí pouze 4 vodiče (foto z eBay).


    LCD indikátory jsou poměrně levné (pokud je koupíte na eBay), velké, snadno se připojují a mohou zobrazovat různé informace. Jediným negativem jsou nepříliš velké pozorovací úhly.

    OLED indikátory

    Jsou vylepšeným pokračováním předchozí verze. Pohybují se od malých a levných s úhlopříčkou 1,1", až po velké a drahé. Foto z eBay.

    Vlastně jsou dobré ve všem kromě ceny. Pokud jde o malé indikátory o velikosti 0,9-1,1", pak (kromě učení se, jak pracovat s i2c) nějaké praktické využití Těžko se hledají.

    Indikátory úniku plynu (IN-14, IN-18)

    Tyto indikátory jsou nyní poměrně populární, zřejmě kvůli „teplému trubkový zvuk světlo“ a originalita designu.


    (foto z nocrotec.com)

    Jejich schéma zapojení je poněkud složitější, protože Tyto kontrolky používají pro zapalování napětí 170V. Na mikroobvod lze vyrobit měnič od 12V=>180V MAX771. K napájení indikátorů se používá sovětský mikroobvod K155ID1, který byl vytvořen speciálně pro tento účel. Emisní cena v samovýroba: asi 500 rublů za každý indikátor a 100 rublů za K155ID1, všechny ostatní díly, jak psali ve starých časopisech, „nemají nedostatek“. Hlavní problém je v tom, že IN-xx i K155ID1 se již dávno nevyrábějí a můžete je koupit pouze na rádiích nebo v několika specializovaných prodejnách.

    2. Výběr platformy

    S displejem jsme víceméně přišli, zbývá se jen rozhodnout, jakou hardwarovou platformu je nejlepší použít. Zde je několik možností (neuvažuji o domácích, protože ti, kteří vědí, jak nasměrovat desku a připájet procesor, tento článek nepotřebují).

    Arduino

    Nejjednodušší možnost pro začátečníky. Hotová deska je levná (asi 10 $ na eBay s doprava zdarma), má všechny potřebné konektory pro programování. Foto z eBay:

    Pro Arduino existuje obrovské množství různých knihoven (například pro stejné LCD obrazovky, moduly reálného času), Arduino je hardwarově kompatibilní s různými přídavnými moduly.
    Hlavní nevýhoda: obtížnost ladění (pouze přes konzolu sériový port) a na moderní standardy dosti slabý procesor (2KB RAM a 16MHz).
    Hlavní výhoda: můžete dělat spoustu věcí, prakticky bez pájení, nákupu programátoru a zapojování desek, stačí moduly propojit mezi sebou.

    32bitové STM procesory

    Pro ty, kteří chtějí něco výkonnějšího, existuje hotové desky s procesory STM, například deska s STM32F103RBT6 a TFT obrazovkou. Foto z eBay:

    Zde již máme plnohodnotné ladění v plnohodnotném IDE (ze všech různých se mi nejvíce líbilo IDE Coocox), nicméně budeme potřebovat samostatný programátor-ladicí program ST-LINK s konektorem JTAG (problém cena je 20-40 $ na eBay). Případně lze dokoupit vývojovou desku STM32F4Discovery, na které je tento programátor již vestavěn, a lze ji používat samostatně.

    Malina PI

    A konečně pro ty, kteří chtějí plnou integraci s moderní svět, existují jednodeskové počítače s Linuxem, Raspberry PI už asi zná každý. Foto z eBay:

    Tento plnohodnotný počítač s Linuxem, gigabajtem RAM a 4jádrovým procesorem na desce. Na okraji desky je umístěn panel o 40 pinech umožňujících připojení různých periferií (piny jsou dostupné z kódu např. v Pythonu, nemluvě o C/C++), nechybí ani standardní USB v podobě 4 konektory (lze připojit WiFi). Nechybí ani standardní HDMI.
    Výkon desky stačí například nejen na zobrazení času, ale i na provoz HTTP serveru pro nastavování parametrů přes webové rozhraní, načítání předpovědi počasí přes internet a podobně. Obecně platí, že je zde velký prostor pro fantazii.

    Jediný problém s Raspberry (a procesory STM32) je ten, že jeho piny používají 3V logiku a většina externí zařízení(například LCD obrazovky) fungují „starým způsobem“ od 5V. Samozřejmě to můžete připojit a v zásadě to bude fungovat, ale není to tak docela správná metoda a je trochu škoda zničit desku za 50 dolarů. Správná cesta- použijte „konvertor logických úrovní“, který na eBay stojí pouze 1-2 $.
    Foto z eBay:

    Nyní stačí připojit naše zařízení přes takový modul a všechny parametry budou konzistentní.

    ESP8266

    Metoda je spíše exotická, ale vzhledem ke kompaktnosti a nízké ceně řešení docela slibná. Za velmi málo peněz (asi 4-5 $ na eBay) si můžete koupit modul ESP8266 obsahující procesor a WiFi na desce.
    Foto z eBay:

    Zpočátku byly takové moduly určeny jako WiFi most pro výměnu přes sériový port, ale mnoho nadšenců napsalo alternativní firmware, který vám umožní pracovat se senzory, i2c zařízeními, PWM atd. Hypoteticky je docela možné přijímat čas z NTP serveru a zobrazovat jej přes i2c na displeji. Pro ty, kteří chtějí připojit spoustu různých periferií, jsou tu speciální desky NodeMCU s velký počet závěry, emisní cena je asi 500 rublů (samozřejmě na eBay):

    Jediným negativem je, že ESP8266 má velmi málo paměti RAM(v závislosti na firmwaru od 1 do 32 KB), ale tím je úkol ještě zajímavější. Moduly ESP8266 využívají 3V logiku, takže i zde se bude hodit výše uvedený převodník úrovní.

    Tím končí úvodní exkurze do podomácku vyrobené elektroniky, autor přeje všem úspěšné experimenty.

    Místo závěru

    Nakonec jsem se rozhodl pro Raspberry PI s textovým indikátorem nakonfigurovaným pro práci s pseudografikou (která se ukázala být levnější než grafická obrazovka stejné úhlopříčky). Vyfotil jsem obrazovku stolní hodiny v době psaní tohoto článku.

    Hodiny ukazují přesný čas, převzato z internetu a počasí, které je aktualizováno z Yandexu, to vše je napsáno v Pythonu a funguje docela dobře již několik měsíců. Zároveň na hodinkách běží FTP server, který umožňuje (ve spojení s přesměrováním portů na routeru) aktualizovat jejich firmware nejen z domova, ale i odkudkoli, kde je internet. Jako bonus Raspberry zdroje v zásadě stačí na připojení kamery a/nebo mikrofonu s možností vzdáleného sledování bytu, případně ovládání různých modulů/relé/senzorů. Můžete přidat nejrůznější „dobroty“, jako je LED indikace příchozí pošty a podobně.

    PS: Proč eBay?
    Jak vidíte, u všech zařízení byly uvedeny ceny nebo fotografie z eBay. proč tomu tak je? Naše obchody bohužel často žijí podle principu „koupeno za 1 dolar, prodáno za 3 dolary a žít z těchto 2 procent“. Jako jednoduchý příklad Arduino Uno R3 stojí (v době psaní tohoto článku) 3600 rublů v Petrohradě a 350 rublů na eBay s dopravou zdarma z Číny. Rozdíl je skutečně řádový, bez jakékoli literární nadsázky. Ano, na vyzvednutí balíku na poště budete muset čekat měsíc, ale myslím, že takový rozdíl v ceně se vyplatí. Pokud to ale někdo potřebuje právě teď a akutně, tak je asi na výběr v místních obchodech, tady se každý rozhodne sám.

    Hodiny se zvukovým budíkem pro ovládání domácích spotřebičů.

    Časovač je zařízení, které nastavit čas zapíná nebo vypíná zařízení svými spínacími kontakty. Časovače v reálném čase umožňují nastavit čas spouštění v nastavenou denní dobu. Nejvíc jednoduchý příklad takovým časovačem bude budík.

    Rozsah použití časovače je široký:
    - ovládání osvětlení;
    - zalévání domácích a zahradních rostlin;
    - ovládání ventilace;
    - správa akvárií;
    - ovládání elektrických ohřívačů a tak dále.

    Navrhovaný časovač může rychle a levně vyrobit i začínající radioamatér.
    Udělal jsem to na základě návrháře hodin. ()

    Potřeboval jsem použít časovač, abych řídil zalévání rostlin na chatě.

    Podívejte se na celý proces výroby ve videu:


    Seznam nástrojů a materiálů
    - jakékoli elektronické hodinky se zvukem alarmu;
    -šroubovák;
    - nůžky;
    - páječka;
    -cambric;
    - dvě 12V relé;
    -12V napájení z adaptéru;
    - spojovací vodiče;
    - fóliový textolit pro tištěný spoj nebo prkénko na krájení;
    -průmyslové nebo domácí časové relé;
    -odpor;
    - tranzistory KT815 (nebo analogy);
    -dioda.

    Krok první. Zapojení desky časovače.
    Časovač obvod
    Jediné, co je potřeba, je připájet součástky podle schématu zapojení prkénko na krájení a připájejte dva vodiče z piezo emitoru hodin. Sbíráme nejjednodušší schéma s mezilehlým relé a tranzistorovým spínačem. Při prvním pulsu zvukový signál z hodin se sepne relé P1, spínací kontakt sepne a zapne zátěž a současně přes druhý spínací kontakt relé P1 a rozpínací kontakt časového relé relé P1 samočinně sepne zámky. Spolu se zátěží je sepnuto časové relé PB - začíná odpočítávání zadané provozní doby zátěže. Na konci této doby RV rozepne kontakt a relé P1 ztratí napájení, zátěž se vypne. Okruh je připraven na další cyklus. Dioda slouží k zamezení zpětného pulsu do hodinového obvodu (lze použít libovolnou nízkopříkonovou diodu). LED indikující aktivaci zátěže. V tomto obvodu potřebujete mezirelé se dvěma normálně otevřenými kontakty, ale já jsem neměl - použil jsem dvě čínská relé (cívky jsou zapojeny paralelně). Pokud je zátěž výkonnější, musíte podle toho použít relé s výkonnějšími kontakty. Měl jsem 12V adaptér a nainstaloval jeho obvod přímo na prkénko. V zásadě lze použít jakýkoli nízkopříkonový 12V zdroj.


    Stručně řečeno, hodiny sepnou zátěž a časové relé se po uplynutí prodlevy vypne.
    Pokud nemáte průmyslové časové relé, můžete si ho vyrobit sami pomocí jednoduchého schématu. Se zvyšující se kapacitou kondenzátoru C1 se zvyšuje provozní doba relé.


    Krok dva. Kontrola činnosti časovače.
    Můj obvod fungoval, když jsem ho poprvé zapnul.
    Zbývá pouze nastavit čas budíku. Moje hodinky mají dvě nastavení času budíku. V mém případě stačí zapnout zalévání např. ráno v 7 hodin na hodinu a večer ve 20 hodin zase zalévat. Když stisknete tlačítka hodin, zazní zvukové signály, takže při nastavování obvodu časovače jej musíte vypnout, abyste zabránili falešně pozitivní. Moje hodinky mají funkci „zvonění“ - každou hodinu od 8 do 20 hodin, to znamená, že kromě budíku můžete v případě potřeby použít tyto signály. Pokud to není nutné, je funkce „zvonění“ deaktivována.

    Takhle dopadl víkendový design. Bylo zajímavé testovat nové schéma takže vše proběhlo rychle. Do budoucna bude potřeba vyrobit pouzdro a umístit tam desku a časové relé. Začátečník si může takový časovač vyrobit sám, aniž by utrácel spoustu času a peněz. A kde je použít, je jen na vás.

    Veškerá práce trvala pár víkendových večerů a 75 rublů (

    Jak název napovídá, hlavní účel tohoto zařízení- zjistit aktuální čas a datum. Má toho ale mnohem víc užitečné funkce. Nápad na jeho vznik se objevil poté, co jsem narazil na polorozbité hodinky s poměrně velkým (na zápěstí) kovovým pouzdrem. Myslel jsem, že bych to tam mohl dát domácí hodinky, jehož možnosti jsou omezeny pouze vlastní fantazií a dovedností. Výsledkem bylo zařízení s následujícími funkcemi:

    1. Hodiny - kalendář:

      Počítání a zobrazování hodin, minut, sekund, dne v týdnu, dne, měsíce, roku.

      Dostupnost automatické nastavení aktuální čas, který se vyrábí každou hodinu ( maximální hodnoty+/-9999 jednotek, 1 jednotka. = 3,90625 ms.)

      Výpočet dne v týdnu z data (pro aktuální století)

      Automatický přechod na letní čas zimní čas(zakázáno)

    • Přestupné roky se berou v úvahu

    2. Dva nezávislé budíky (při spuštění zazní melodie)
    3. Časovač s přírůstky po 1 sekundě. (Maximální doba počítání 99h 59m 59s)
    4. Dvoukanálové stopky s rozlišením počítání 0,01 sec. ( maximální čas počítá 99h 59m 59s)
    5. Stopky s rozlišením počítání 1 sekunda. (maximální doba počítání 99 dní)
    6. Teploměr v rozsahu od -5°C. do 55°C (omezeno teplotním rozsahem normální operace zařízení) v krocích po 0,1°C.
    7. Čtečka a emulátor elektronické klíče- tablety typu DS1990 využívající protokol Dallas 1-Wire (paměť na 50 kusů, která již obsahuje několik univerzálních „terénních klíčů“) s možností zobrazení kódu klíče bajt po bajtu.
    8. Dálkový ovládání IR paprsků (implementován je pouze příkaz "Vyfotit") pro digitální fotoaparáty "Pentax", "Nikon", "Canon"
    9. LED svítilna
    10. 7 melodií
    11. Zvukový signál na začátku každé hodiny (lze vypnout)
    12. Zvukové potvrzení stisknutí tlačítka (lze vypnout)
    13. Monitorování napětí baterie s funkcí kalibrace
    14. Nastavení jasu digitálního indikátoru

    Možná je taková funkčnost nadbytečná, ale mám rád univerzální věci a plus morální spokojenost, že tyto hodinky budou vyrobeny vlastníma rukama.

    Schematické schéma hodin

    Zařízení je postaveno na mikrokontroléru ATmega168PA-AU. Hodiny tikají podle časovače T2, který pracuje v asynchronním režimu z hodinového quartz na 32768 Hz. Mikrokontrolér je téměř po celou dobu v režimu spánku (indikátor nesvítí), jednou za sekundu se probudí, aby se právě tato sekunda přidala k aktuálnímu času, a znovu usne. V aktivním režimu je MK taktován z interního RC oscilátoru na 8 MHz, ale interní předdělička to dělí 2, ve výsledku je jádro taktováno na 4 MHz. K indikaci slouží čtyři jednomístné LED digitální sedmisegmentové indikátory se společnou anodou a desetinnou tečkou. K dispozici je také 7 stavových LED diod, jejichž účel je následující:
    D1- Znaménko záporné hodnoty (mínus)
    D2- Znak běžících stopek (blikající)
    D3- Znamení zapnutí prvního budíku
    D4- Známka zapnutí druhého alarmu
    D5- Signál zvukového signálu na začátku každé hodiny
    D6- Značka běžícího časovače (blikající)
    D7- Znamení nízké napětí napájecí baterie

    R1-R8 - proud omezující odpory segmentů digitálních indikátorů HG1-HG4 a LED D1-D7. R12,R13 – dělič pro sledování napětí baterie. Vzhledem k tomu, že napájecí napětí hodin je 3V a bílá LED D9 vyžaduje při jmenovitém odběru proudu cca 3,4-3,8V, nesvítí plnou silou (ale stačí, aby ve tmě nezakopla) a je tedy zapojena bez proudu -omezovací odpor. Prvky R14, Q1, R10 jsou určeny k ovládání infračervené LED D8 (implement dálkové ovládání pro digitální fotoaparáty). R19, ​​​​R20, R21 se používají pro párování při komunikaci se zařízeními, která mají rozhraní 1-Wire. Ovládání se provádí třemi tlačítky, které jsem konvenčně nazval: MODE (režim), UP (nahoru), DOWN (dolů). První z nich je určen i k probuzení MK externím přerušením (v tomto případě se rozsvítí indikace), proto se připojuje samostatně na vstup PD3. Stisk zbývajících tlačítek je určen pomocí ADC a rezistorů R16, R18. Pokud nejsou tlačítka stisknuta do 16 sekund, MK přejde do režimu spánku a indikátor zhasne. Když je v režimu "Dálkové ovládání pro kamery" tento interval je 32 sekund a se zapnutou baterkou - 1 minuta. MK lze také uspat ručně pomocí ovládacích tlačítek. Když stopky běží s rozlišením počítání 0,01 sec. Zařízení nepřejde do režimu spánku.

    Tištěný spoj

    Zařízení je osazeno na oboustranné desce plošných spojů kulatého tvaru podle velikosti vnitřního průměru pouzdra náramkové hodinky. Ale při výrobě jsem použil dvě jednostranné desky o tloušťce 0,35 mm. Tato tloušťka byla opět získána odloupnutím z oboustranného sklolaminátu o tloušťce 1,5 mm. Poté byly desky slepeny dohromady. To vše bylo provedeno proto, že jsem neměl tenké oboustranné sklolaminát a každý ušetřený milimetr tloušťky v omezeném vnitřním prostoru pouzdra hodinek je velmi cenný a při výrobě tištěných vodičů pomocí LUT nebylo potřeba zarovnání. metoda. Výkres desky plošných spojů a umístění dílů jsou v přiložených souborech. Na jedné straně jsou indikátory a odpory R1-R8 omezující proud. Na zadní straně jsou všechny ostatní detaily. Jsou zde dva průchozí otvory pro bílé a infračervené LED.

    Tlačítkové kontakty a držák baterie jsou vyrobeny z pružného pružinového ocelového plechu o tloušťce 0,2...0,3 mm. a pocínované. Níže jsou fotografie desky z obou stran:

    Design, díly a jejich možná výměna

    Mikrokontrolér ATmega168PA-AU lze nahradit ATmega168P-AU, ATmega168V-10AU ATmega168-20AU. Digitální indikátory - 4 kusy KPSA02-105 supersvítivá červená záře s výškou číslic 5,08 mm. Lze dodat ze stejné řady KPSA02-xxx nebo KCSA02-xxx. (jen ne zelené - budou slabě svítit) Nevím o jiných analogech podobných velikostí se slušným jasem. U HG1, HG3 je zapojení katodových segmentů odlišné od HG2, HG4, protože mi to vyhovovalo pro zapojení plošného spoje. V tomto ohledu je pro ně v programu použita jiná tabulka generátoru znaků. Použité odpory a kondenzátory SMD pro povrchovou montáž standardních velikostí 0805 a 1206, LED D1-D7 standardní velikosti 0805. Bílé a infračervené LED o průměru 3 mm. Deska má 13 průchozích otvorů, do kterých je nutné nainstalovat propojky. Jako teplotní senzor se používá DS18B20 s 1-Wire rozhraním. LS1 je běžný piezoelektrický výškový reproduktor, vložený do víka. Jedním kontaktem je spojen s deskou pomocí na ní nainstalované pružiny, druhým je spojen s tělem hodinek samotným krytem. Quartzový rezonátor z náramkových hodinek.

    Programování, firmware, pojistky

    Pro in-circuit programování má deska pouze 6 kulatých kontaktních bodů (J1), protože plný konektor se nevejde na výšku. Připojil jsem je k programátoru pomocí kontaktního zařízení vyrobeného z kolíkové zástrčky PLD2x3 a na ně připájených pružin a jednou rukou jsem je přitlačil na místa. Níže je fotografie zařízení.

    Použil jsem to, protože během procesu ladění jsem musel mnohokrát přeformátovat MK. Při flashování jednorázového firmwaru je snazší připájet tenké vodiče připojené k programátoru k záplatám a poté je znovu odpájet. Je výhodnější flashovat MK bez baterie, ale tak, aby napájení pocházelo buď z vnější zdroj+3V, nebo z programátoru se stejným napájecím napětím. Program je napsán v assembleru v prostředí VMLAB 3.15. Zdrojové kódy, firmware pro FLASH a EEPROM v aplikaci.

    Bity FUSE mikrokontroléru DD1 musí být naprogramovány následovně:
    CKSEL3...0 = 0010 - taktování z interního RC oscilátoru 8 MHz;
    SUT1...0 =10 - Doba spouštění: 6 CK + 64 ms;
    CKDIV8 = 1 - dělič frekvence 8 je deaktivován;
    CKOUT = 1 - Výstupní hodiny na CKOUT zakázány;
    BODLEVEL2…0 = 111 - řízení napájecího napětí je zakázáno;
    EESAVE = 0 - vymazání EEPROM při programování krystalu je zakázáno;
    WDTON = 1 - Ne vždy na Watchdog Timer;
    Zbývající bity FUSE je nejlepší ponechat nedotčené. Bit FUSE je naprogramován, pokud je nastaven na „0“.

    Je vyžadováno flashování EEPROM s výpisem obsaženým v archivu.

    První buňky EEPROM obsahují počáteční parametry zařízení. Níže uvedená tabulka popisuje účel některých z nich, které lze v rozumných mezích změnit.

    Adresa buňky

    Účel

    Parametr

    Poznámka

    Velikost napětí baterie, při které se objeví signál nízké úrovně

    260 (104 USD) (2,6 V)

    koeficient pro korekci hodnoty naměřeného napětí baterie

    časový interval pro přepnutí do režimu spánku

    1 jednotka = 1 sec

    časový interval pro přepnutí do režimu spánku při zapnuté svítilně

    1 jednotka = 1 sec

    časový interval pro přepnutí do režimu spánku v režimu dálkového ovládání fotoaparátů

    1 jednotka = 1 sec

    Zde jsou uložena čísla klíčů IButton

    Malá vysvětlení k bodům:

    1 bod. Ta udává úroveň napětí na baterii, při které se rozsvítí LED dioda indikující její nízkou hodnotu. Nastavil jsem to na 2,6V (parametr - 260). Pokud potřebujete něco jiného, ​​například 2,4V, musíte napsat 240 ($ 00F0). Nízký bajt je uložen v buňce na adrese $0000 a horní bajt je uložen v $0001.

    2 bod. Protože jsem na desku neosadil proměnný rezistor pro úpravu přesnosti měření napětí baterie z důvodu nedostatku místa, zavedl jsem softwarovou kalibraci. Postup kalibrace pro přesné měření je následující: zpočátku je do této buňky EEPROM zapsán koeficient 1024 (400 $), musíte zařízení přepnout do aktivního režimu a podívat se na napětí na indikátoru a poté změřit skutečné napětí na baterie voltmetrem. Korekční faktor (K), který je nutné nastavit, se vypočítá podle vzorce: K=Uр/Ui*1024 kde Uр je skutečné napětí naměřené voltmetrem, Ui je napětí, které bylo naměřeno samotným zařízením. Po výpočtu koeficientu „K“ se zadá do zařízení (jak je uvedeno v návodu k obsluze). Po kalibraci moje chyba nepřesáhla 3 %.

    3 bod. Zde můžete nastavit čas, po kterém zařízení přejde do režimu spánku, pokud nestisknete žádné tlačítko. Můj stojí 16 sekund. Pokud například potřebujete usnout za 30 sekund, musíte si zapsat 30 (26 $).

    V bodech 4 a 5 totéž.

    6 bodů. Na adrese $0030 je uložen nulový kód rodiny klíčů (Dallas 1-Wire), poté jeho 48bitové číslo a CRC. A tak 50 kláves za sebou.

    Nastavení, provozní vlastnosti

    Nastavení zařízení spočívá v kalibraci měření napětí baterie, jak je popsáno výše. Dále je nutné detekovat odchylku taktu po dobu 1 hodiny, vypočítat a zadat příslušnou korekční hodnotu (postup je popsán v návodu k obsluze).

    Zařízení je napájeno z lithiová baterie CR2032 (3V) a spotřebuje přibližně 4 µA v režimu spánku a 5...20 mA v aktivním režimu, v závislosti na jasu indikátoru. Při každodenním pětiminutovém používání aktivní režim Baterie by měla vydržet přibližně 2...8 měsíců v závislosti na jasu. Pouzdro hodinek je připojeno k zápornému pólu baterie.

    Čtení klíče bylo testováno na DS1990. Emulace byla testována na interkomech METAKOM. Pod sériová čísla od 46 do 49 (poslední 4) blikají (všechny klíče jsou uloženy v EEPROM, lze je před blikáním změnit) univerzální klíče pro interkomy. Klíč registrovaný pod číslem 49 otevřel všechny interkomy METAKOM, na které jsem narazil, zbytek univerzálních klíčů jsem neměl šanci otestovat, vzal jsem jejich kódy ze sítě.

    Dálkové ovládání pro fotoaparáty bylo testováno na modelech Pentax optio L20 a Nikon D3000. Canon se nepodařilo získat ke kontrole.

    Uživatelská příručka zabírá 13 stran, proto jsem ji do článku nevložil, ale zařadil do přílohy ve formátu PDF.

    Archiv obsahuje:
    Schéma v a GIF;
    Kreslení desky plošných spojů a uspořádání prvků ve formátu;
    Firmware a zdrojový kód v assembleru;

    Seznam radioprvků

    Označení Typ Označení Množství PoznámkaProdejnaMůj poznámkový blok
    DD1 MK AVR 8bit

    ATmega168PA

    1 PA-AU Do poznámkového bloku
    U2 senzor teploty

    DS18B20

    1 Do poznámkového bloku
    Q1 MOSFET tranzistor

    2N7002

    1 Do poznámkového bloku
    C1, C2 Kondenzátor30 pF2 Do poznámkového bloku
    C3, C4 Kondenzátor0,1 uF2 Do poznámkového bloku
    C5 Elektrolytický kondenzátor47 uF1 Do poznámkového bloku
    R1-R8, R17 Rezistor

    100 ohmů

    9 Do poznámkového bloku
    R9 Rezistor

    10 kOhm

    1 Do poznámkového bloku
    R10 Rezistor

    8,2 Ohm

    1 Do poznámkového bloku
    R11 Rezistor

    300 ohmů

    1 Do poznámkového bloku
    R12 Rezistor

    2 MOhm

    1 Do poznámkového bloku
    R13 Rezistor

    220 kOhm

    1 Do poznámkového bloku
    R14 Rezistor

    30 kOhm

    1 Do poznámkového bloku
    R15, R19 Rezistor

    4,7 kOhm

    2 Do poznámkového bloku
    R16 Rezistor

    20 kOhm

    1

    Velké LED hodiny

    Úvod.

    Všechno to začalo takhle. Na chatě jsem měl starý mechanický budík (vyrobený v SSSR), který měl mechanické problémy. Rozhodl jsem se postavit elektronické hodinky. První problém je, jaký indikátor zvolit. VLI a GRI nejsou vhodné kvůli velkým teplotním rozdílům na chatě. LCD již ze stejného důvodu není potřeba. Zůstává led indikátor. Už mě nebaví dívat se na malá čísla na indikátorech a velké sedmisegmentové indikátory jsou vzácné a drahé. Bylo rozhodnuto vyrobit indikátor s výškou číslic 50 mm z jednotlivých zelených LED.

    Na ukazatel jsme přišli, ale je potřeba ho nějak řídit. V tomto případě by měly hodiny běžet i v případě, že není napájení delší dobu. Uděláme to na čipu ATTiny2313 MK a čipu RTC DS1307, který má také zabudovaný regulátor výkonu a umožňuje připojení baterie.

    1. Indikátor.

    Vyrobíme ho, jak jsem již řekl, z jednotlivých zelených LED o průměru 5mm. Zde je schéma indikátoru:

    Tady není moc co vysvětlovat. Pro krásné kreslení čísel jsou potřeba odpory omezující proud, diody. Každý obdélník v diagramu by měl mít jednu číslici (diagram je pro všechny stejný) s oddělovací dvojtečkou uprostřed.

    2. Hlavní část.

    Obvod, jak jsem již řekl, je založen na ATTiny2313 a DS1307. Tady je:

    To vyžaduje určité vysvětlení. Vpravo jsou dvě dvojitá sedmisegmentová světla a dvě LED - vnitřní obvod malého indikátoru s OA. Proč dva ukazatele? V noci je velký ukazatel jasná záře může rušit spánek (hodiny budou blízko postele), takže indikaci lze přepnout na malý indikátor pomocí přepínače SW1. V poloze "Noc". V poloze "Den" funguje malý indikátor. - velký. Mám tento malý indikátor od pračka, pinout je na sporáku. Baterie 3V, CR2032. Tranzistory Q1-Q4 lze nahradit jakýmikoli jinými tranzistory PNP s nízkým výkonem, například KT315. Q6-Q9 - na PNP s CE proudem minimálně 1A, Q5 - na NPN s kolektorovým proudem minimálně 0,4A. Zdroj může být libovolný s napětím 9-20V, polarita není důležitá, lze použít i střídavé napětí. Proud ne méně než 1A. Stabilizátor U4 musí být instalován na radiátor. Mimochodem, čím nižší je vstupní napětí, tím snazší je životnost stabilizátoru. Můj BP je takový:

    Nyní přejdeme k montáži.

    3. Montáž.

    Pojďme do obchodu a koupíme díly.

    Vyrobíme desky a začneme pájet. Připájet 88 LED, stejný počet rezistorů a 44 diod není jednoduché, ale stojí to za to.

    Nyní vše spojíme dráty. Používám PLS/PBS kabely a konektory. Tyto obrázky vám pomohou:

    Nyní blikáme MK. Tady jsou pojistky:

    A zapněte:

    Tlačítka a konektory, které jsem použil, jsou:

    4. Tělo.

    Korpus jsem vyrobil z překližky a špalíku 20*40, vybrousil a nalakoval. Nainstaloval jsem dva upevňovací prvky na zadní stranu pro montáž na stěnu.

    Mimochodem, k utěsnění indikátorových okének jsem použil fólii ze zelených lahviček, vypadá krásně a chrání před slunečním zářením.

    Teď pár fotek:

    Pamatuji si... Před třiceti lety bylo šest ukazatelů malý poklad. Každý, kdo pak dokázal vyrobit hodiny pomocí TTL logiky s takovými indikátory, byl považován za sofistikovaného odborníka ve svém oboru.

    Záře indikátorů vypouštění plynu se zdála teplejší. Po pár minutách jsem byl zvědavý, jestli tyto staré lampy budou fungovat, a chtěl jsem s nimi něco udělat. Nyní je velmi snadné takové hodinky vyrobit. Vše, co potřebujete, je mikrokontrolér...

    Od té doby jsem se zajímal o programování mikrokontrolérů v jazycích vysoká úroveň, rozhodl jsem se trochu hrát. Pokusil jsem se sestrojit jednoduché hodiny pomocí digitálních indikátorů výboje plynu.

    Účel designu

    Rozhodl jsem se, že hodiny by měly mít šest číslic a čas by měl být nastaven minimálním počtem tlačítek. Také jsem chtěl zkusit použít několik nejběžnějších rodin mikrokontrolérů různých výrobců. Chtěl jsem napsat program v C.

    Indikátory vybití plynu vyžadují k provozu vysoké napětí. Ale nechtěl jsem řešit nebezpečné síťové napětí. Hodinky měly být napájeny nezávadným napětím 12 V.

    Jelikož mým hlavním cílem byla hra, nenajdete zde žádný popis mechanického provedení ani nákresy těla. Pokud si přejete, můžete si hodinky sami vyměnit podle svého vkusu a zkušeností.

    Zde je to, co jsem dostal:

    • Zobrazení času: HH MM SS
    • Indikace alarmu: HH MM --
    • Režim zobrazení času: 24 hodin
    • Přesnost ±1 sekunda za den (v závislosti na křemenném krystalu)
    • Napájecí napětí: 12V
    • Spotřeba proudu: 100 mA

    Schéma hodin

    Pro zařízení s šestimístným digitálním displejem byl režim multiplex přirozeným řešením.

    Účel většiny prvků blokového diagramu (obrázek 1) je jasný bez komentáře. Do jisté míry nestandardním úkolem bylo vytvořit převodník úrovní TTL na řídicí signály vysokonapěťových indikátorů. Anodové budiče jsou vyrobeny na vysokonapěťové NPN a PNP tranzistory. Diagram je vypůjčen od Stefana Knellera (http://www.stefankneller.de).

    Čip 74141 TTL obsahuje dekodér BCD a vysokonapěťový ovladač pro každou číslici. Může být obtížné objednat jeden čip. (I když nevím, jestli je už někdo vyrábí). Ale pokud najdete indikátory vypouštění plynu, 74141 může být někde poblíž :-). V době TTL logiky neexistovala k čipu 74141 prakticky žádná alternativa. Tak zkus někde nějakou najít.

    Indikátory vyžadují napětí asi 170 V. Nemá smysl vyvíjet speciální obvod pro převodník napětí, protože existuje velké množství čipů převodníku boost. Vybral jsem si levný a široce dostupný IC34063. Obvod převodníku je téměř kompletně zkopírován technický popis MC34063. Právě k němu přibyl vypínač T13. K tomu vnitřní klíč vysokého napětí nesedí. Jako indukčnost pro převodník jsem použil tlumivku. Je znázorněn na obrázku 2; jeho průměr je 8 mm a jeho délka je 10 mm.

    Účinnost převodníku je poměrně dobrá a výstupní napětí je relativně bezpečné. Při zatěžovacím proudu 5 mA klesne výstupní napětí na 60 V. R32 funguje jako proudový rezistor.

    Pro napájení logiky je použit lineární regulátor U4. Na schématu a na desce je místo pro záložní baterie. (3,6 V - NiMH nebo NiCd). D7 a D8 jsou Schottkyho diody a rezistor R37 je navržen tak, aby omezoval nabíjecí proud podle vlastností baterie. Pokud stavíte hodinky jen pro zábavu, nebudete potřebovat baterii D7, D8 a R37.

    Konečný obvod je znázorněn na obrázku 3.

    Obrázek 3

    Tlačítka nastavení času jsou připojena pomocí diod. Stav tlačítek se kontroluje nastavením logické „1“ na příslušném výstupu. Jako bonus je k výstupu mikrokontroléru připojen piezo emitor. Chcete-li umlčet to ošklivé skřípání, použijte malý vypínač. K tomu by se docela hodilo kladivo, ale to je poslední možnost :-).

    Seznam součástek obvodu, nákres desky plošných spojů a schéma rozložení naleznete v sekci "Ke stažení".

    procesor

    Toto jednoduché zařízení může ovládat téměř každý mikrokontrolér s dostatečným počtem pinů, jejichž minimální požadovaný počet je uveden v tabulce 1.

    Stůl 1.
    Funkce závěry
    Výživa 2
    Quartzový rezonátor 2
    Řízení anody 6
    Ovladač 74141 4
    Vstup tlačítkem 1
    Piezo emitor 1
    Celkový 16

    Každý výrobce vyvíjí vlastní rodiny a typy mikrokontrolérů. Umístění čepů je u každého typu individuální. Snažil jsem se navrhnout univerzální desku pro více typů mikrokontrolérů. Deska má 20pinovou patici. Pomocí několika propojovacích vodičů jej můžete přizpůsobit různým mikrokontrolérům.

    Mikrokontroléry testované v tomto obvodu jsou uvedeny níže. Můžete experimentovat s jinými typy. Výhodou schématu je možnost použití různé procesory. Radioamatéři zpravidla používají jednu rodinu mikrokontrolérů a mají odpovídající programátor a softwarové nástroje. S mikrokontroléry jiných výrobců mohou být problémy, a tak jsem vám dal možnost vybrat si procesor z vaší oblíbené rodiny.

    Všechna specifika zapínání různých mikrokontrolérů jsou reflektována v tabulkách 2...5 a obrázcích 4...7.

    Tabulka 2
    Freescale
    Typ MC68HC908QY1
    Quartzový rezonátor 12 MHz
    Kondenzátory C1, C2 22 pF
    Program freescale.zip
    (viz sekce "Stahování")
    Nastavení

    Poznámka: Paralelně s křemenným rezonátorem je zapojen rezistor 10 MΩ.

    Tabulka 3
    Mikročip
    Typ PIC16F628A
    Quartzový rezonátor 32,768 kHz
    Kondenzátory C1, C2 22 pF
    Program pic628.zip
    (viz sekce "Stahování")
    Nastavení Int. 4 MHz generátor - I/O RA6,
    MCLR OFF, WDT OFF, LVP OFF,
    BROUT OFF, CP OFF, PWRUP OFF

    Poznámka: Mikroobvod musí být v zásuvce otočen o 180°.

    Tabulka 4.
    Atmel
    Typ ATtiny2313
    Quartzový rezonátor 12 MHz
    Kondenzátory C1, C2 15 pF
    Program attiny.zip
    (viz sekce "Stahování")
    Nastavení Sq. 8 MHz oscilátor, RESET ON

    Poznámka: Přidejte SMD součástky R a C na pin RESET (10 kΩ a 100 nF).

    Tabulka 5.
    Atmel
    Typ AT89C2051
    Quartzový rezonátor 12 MHz
    Kondenzátory C1, C2 22 pF
    Program at2051.zip
    (viz sekce "Stahování")
    Nastavení --

    Poznámka: Přidejte SMD součástky R a C na pin RESET (10 kΩ a 100 nF); připojte piny označené hvězdičkami k napájecí sběrnici +Ub přes 3,3 kOhm SMD odpory.

    Když porovnáte kódy pro různé mikrokontroléry, uvidíte, že jsou velmi podobné. Existují rozdíly v přístupu k portům a definici funkcí přerušení a také v tom, co závisí na hardwarových komponentách.

    Zdrojový kód se skládá ze dvou částí. Funkce hlavní() nakonfiguruje porty a spustí časovač, který generuje signály přerušení. Poté program prohledá stisknutá tlačítka a nastaví vhodné hodnoty času a alarmu. Tam se v hlavní smyčce porovná aktuální čas s budíkem a zapne se piezo emitor.

    Druhá část je podprogram pro obsluhu přerušení časovače. Podprogram, který se volá každou milisekundu (v závislosti na schopnostech časovače), zvyšuje časové proměnné a řídí číslice na displeji. Kromě toho se kontroluje stav tlačítek.

    Provozování okruhu

    Při instalaci komponent a nastavení začněte u zdroje napájení. Připájejte regulátor U4 a okolní součásti. Zkontrolujte napětí 5 V pro U2 a 4,6 V pro U1. Dalším krokem je sestavení měniče vysokého napětí. Pomocí trimovacího rezistoru R36 nastavte napětí na 170 V. Pokud rozsah nastavení nestačí, mírně změňte odpor rezistoru R33. Nyní nainstalujte čip U2, tranzistory a rezistory anody a obvodu digitálního ovladače. Vstupy U2 připojte ke sběrnici GND a jeden z rezistorů R25 - R30 zapojte do série k napájecí sběrnici +Ub. Čísla indikátorů by se měla rozsvítit v odpovídajících pozicích. V poslední fázi kontroly obvodu připojte kolík 19 mikroobvodu U1 k zemi - piezo emitor by měl pípnout.

    Zdrojové kódy a zkompilované programy lze nalézt v odpovídajících ZIP soubor v sekci "Ke stažení". Po flashování programu do mikrokontroléru pečlivě zkontrolujte každý pin v pozici U1 a nainstalujte potřebné drátové a pájecí propojky. Viz obrázky mikrokontroléru výše. Pokud je mikrokontrolér správně naprogramován a zapojen, jeho generátor by měl začít pracovat. Můžete nastavit čas a budík. Pozornost! Na desce je místo ještě na jedno tlačítko - to je náhradní tlačítko pro budoucí rozšíření :-).

    Zkontrolujte přesnost frekvence generátoru. Pokud není v očekávaném rozsahu, mírně změňte hodnoty kondenzátorů C1 a C2. (Pájejte malé kondenzátory paralelně nebo je nahraďte jinými). Přesnost hodinek by se měla zlepšit.

    Závěr

    Malé 8bitové procesory jsou docela vhodné pro jazyky na vysoké úrovni. C nebyl původně určen pro malé mikrokontroléry, ale jednoduché aplikace můžete ho dokonale využít. Assembler by se hodily lépe pro složité úlohy, které vyžadují kritické časy nebo maximální zatížení procesoru. Pro většinu radioamatérů jsou vhodné jak bezplatné, tak sharewarově omezené verze C kompilátoru.

    Programování v C je stejné pro všechny mikrokontroléry. Musíte znát hardwarové funkce (registry a periferie) zvoleného typu mikrokontroléru. Pozor na bitové operace – jazyk C není vhodný pro manipulaci s jednotlivými bity, jak je vidět na příkladu originálu pro ATtiny.

    Jsi hotov? Pak se nalaďte, uvažujte o elektronkách a sledujte...

    ...staré časy jsou zpět... :-)

    Poznámka redakce

    Úplným analogem SN74141 je mikroobvod K155ID1, vyrobený softwarem Minsk Integral.
    Mikroobvod lze snadno najít na internetu.