Obsah:

Multi-Timer W/ Externí ovládání: 13 kroků
Multi-Timer W/ Externí ovládání: 13 kroků

Video: Multi-Timer W/ Externí ovládání: 13 kroků

Video: Multi-Timer W/ Externí ovládání: 13 kroků
Video: Home Automation: How to use 7 Program 0.1s to 9999 minutes Relay Timer XY-LJ02 2024, Červenec
Anonim
Multi-Timer W/ Externí ovládání
Multi-Timer W/ Externí ovládání

Tento projekt Instructable je sestavením multifunkčního časovače

Tento časovač může fungovat jako:

  1. Univerzální alarm s volitelnými časy od 1 sekundy do +90 hodin. Odpočítávání se zvukovým alarmem a/nebo ovládáním externího zařízení do dokončení, poté odpočítávání indikace času od alarmu.
  2. Časovač spánku se 7 volitelnými časy, odpočítáváním a alarmem po dokončení.
  3. Meditační časovač se 4 volitelnými časy, s odpočítáváním a krátkým cvrkotem po dokončení, odpočítávání s dalším cvrkotem 5 minut poté.

Tento projekt může být postaven, jak je zde popsáno, nebo upraven tak, aby vyhovoval. Předtím jsem postavil časovač s touto funkcí a použil jsem ho ve svém prvním Instructable k ovládání pole expozice UV záření.

Myslel jsem, že mohu jen zveřejnit původní program a návrhy desek. Z nějakého důvodu jsem však kód nemohl najít. Také jsem chtěl provést vylepšení hardwaru, aby byly řídicí obvody flexibilnější a omezilo se vybíjení baterie. Výsledný redesign hlavního obvodu a přepis kódu poskytuje příležitost diskutovat o přístupu k programování a návrhu hardwaru.

Kdykoli vytvářím desku s obvody, často zjistím, že jsou nedostatky v konstrukci nebo umístění součástí. Desky, které stavím, jsou také jednou ze dvou offs. Navíc se rád účastním všech aspektů projektu od začátku do konce. To jsou některé z důvodů, proč vyrábím vlastní desky plošných spojů, než abych odeslal soubory Gerbera do zámoří k výrobě. Možná jsem jen starý a uvízl ve svých cestách. Tento projekt odráží tuto předpojatost. Protože vyrábím vlastní desky s obvody, moje návrhy a mé soubory Gerber nesplňují výrobní standardy, tyto soubory jsem nezahrnul. Ti, kteří nechtějí leptat a dokončovat desky, si mohou připravit vlastní návrhy a zveřejnit Gerberovy soubory v sekci komentáře. Před zveřejněním nechte své desky vyrobit a vyzkoušet.

Krok 1: Přehled hardwarových prvků

Zařízení je napájeno 4 bateriemi AAA a je ovládáno Arduino Pro Mini 5V.

Malý bzučák/reproduktor poskytuje zvukový alarm.

Miniaturní relé 5 V poskytuje ovládací napětí externím zařízením. Flexibilita je zajištěna ve zdroji tohoto výstupu řídicího napětí.

Otočný snímač s tlačítkem umožňuje výběr z nabídky.

Uživatelské rozhraní doplňuje OLED displej a momentální spínač start/stop.

Další elektronický hardware se skládá z vypínače SPDT a miniaturního telefonního konektoru pro připojení k externím zařízením.

Kromě toho jsou k dispozici soubory, které vám pomohou v tomto projektu:

Soubory STL pro případ 3D vytištěného projektu.

Obrázky masky mědi a pájky pro leptání a konečnou úpravu řídicí desky a rotačního kodéru.

Schematické a nástěnkové obrázky jako reference pro ty, kteří chtějí upravit můj design.

Možná si budete chtít přečíst můj Instructable o vytváření oboustranných obvodových desek jako příklad postupu výroby obvodových desek.

Krok 2: Přehled softwaru

Spolu se zdrojovými soubory Arduino mohou pomoci i další informace …

Používají se hardwarové řídicí knihovny, jsou-li k dispozici (de-bounce tlačítka, ovládání OLED, čtení rotačního kodéru).

Program implementuje jednoduchý konečný stavový stroj (FSM) pro řízení provádění kódu jako příkaz přepínače ve funkci smyčky.

Třída Menu je definována tak, aby umožňovala výběr zobrazených možností na OLED a výběr pomocí rotačního kodéru.

Vstup je implementován přímým dotazováním (bez přerušení), protože není časově kritický a činí kód jasnějším.

Tiskové příkazy do Serial se používají k pomoci při sledování provádění kódu a ladění

Různé typy prvků struktury programu, včetně:

  • Několik záložek kódu k izolování některých funkcí a proměnných ovládání hardwaru.
  • Přepnutím příkazů nastavíte hodnotu stavu (FSM) a řídicí proměnné.
  • Definice struktury
  • Výčty umožňující přiřazení stavových hodnot jako text.
  • #define předprocesorové definice hardwarových pinů a standardních hodnot.

Krok 3: Seznam dílů

Vytvořte přílohu
Vytvořte přílohu

Nebyl jsem si jistý, kam tento krok zařadit, protože jej lze provést téměř v každém bodě. Použil jsem krabici s 3D tiskem. Možná nemáte přístup k 3D tiskárně nebo upřednostňujete jiný typ skříně, jako je hliníková krabice, laserem řezaný plast, ručně vyřezávané dřevo nebo jiný typ, který používáte pro své elektronické projekty. Zahrnul jsem soubory STL pro horní, dolní, otočný knoflík kodéru a rámeček OLED. Použijte tyto soubory a kráječ podle vašeho výběru k vytvoření souborů gcode pro vaši tiskárnu.

Vytisknu všechny části pomocí vlákna PLA, jedné barvy pro horní a dolní část skříně, další kontrastní pro knoflík a lunetu (která je nalepena nahoře.) Nebudu specifikovat všechna svá nastavení kráječe, ale použiji Tri -Šestihranná výplň nejméně 35%, aby bylo možné číst závitové rohové šrouby a nastavení „žádná podpora“pro vyřezávané písmo. Krabici jsem vytiskl pomocí „normální“výšky vrstvy mých tiskáren.

Krok 9: Návrh a psaní kódu

Tento krok je volitelný, ale je navržen pro lepší pochopení.

Převážnou část úsilí, pokud jde o hodiny, je psaní kódu. Tento krok můžete přeskočit, pokud používáte připojený program jako -is. Navrhuje se však, abyste si našli čas a zkontrolovali kód, abyste jej lépe porozuměli nebo upravili, aby vyhovoval vašim potřebám.

Následující komentáře mohou být užitečné pro pochopení tohoto procesu.

  • Komentáře - Komentujte rozsáhle za pochodu - často píšu komentáře, než napíšu kód.
  • Divide & conquer - používejte funkce, třídy a moduly (záložky.) Ke kontrole syntaxe používejte časté kompilace (Ověřit). Ladění - použijte tiskové příkazy k ověření tokových a testovacích hodnot a hardwarových rozhraní. Nebojte se problémy řešit za pochodu, nikdo nepíše kód bez chyb!
  • Konstanty - #define instrukce předkompilovače přiřadí názvy číslům pinů. Definice konstantních proměnných s komentáři snižují nebo eliminují „magická“čísla. Použití konstant umístěných na začátku programu nebo funkce umožňuje změnu parametrů bez přepisování kódu
  • Předdefinované knihovny - Použití předdefinovaných knihoven snižuje programovou zátěž a ladicí čas.
  • Design Blocks - Vytvořeno pomocí funkcí, Izolace kódu na samostatných záložkách (přidružené programy &.hfiles), výčty, třídy a struktury. Na každého zaměřte svou pozornost, abyste pochopili, jak fungují ve vztahu ke zbytku kódu.
  • State Machine (s) - Toto je programovací vzor, který funguje skvěle u Arduinosu nebo jakýchkoli programů, které se používají k ovládání výstupů nebo reagování na vstupy. Existuje několik příchutí stavových strojů. Tento kód používá stavový stroj založený na příkazu switch ve funkci smyčky. Tento formulář je snadno pochopitelný a laditelný.
  • Zobrazení a nabídky - Výstup OLED je strohý, ale poskytuje dostatečnou zpětnou vazbu pro příležitostné uživatele a podporuje výběr možností. Dobře se integruje se stavovým strojem (téměř všechny státy mají přidruženou obrazovku OLED). Třída Menu byla užitečná při izolování kódu pro zobrazení a výběr možností nabídky

Přečtěte si prosím program několikrát. Pomáhá převzít jednu funkci nebo sekci najednou. Často nerozumím kódu, který jsem napsal, pokud jsem ho nečetl alespoň dvakrát!

Krok 10: Nainstalujte program

Zkopírujte připojený soubor do počítače a poté jej rozbalte do adresáře Sketches

Připojte Arduino k počítači a normálním způsobem si stáhněte programový kód. Otevřete sériový monitor Arduino IDE, abyste ověřili, že program běží, a pomohlo při ladění.

Krok 11: Sestavte časovač

Sestavte časovač
Sestavte časovač
Sestavte časovač
Sestavte časovač
Sestavte časovač
Sestavte časovač
Sestavte časovač
Sestavte časovač

Jakmile jsou horní a spodní části skříně vytištěny a vyčištěny, lze součásti připevnit pomocí malých samořezných plastových šroubů. Nejprve je držák baterie zacvaknutý do zadní části. Zbývající části jsou připevněny k horní části skříně v následujícím pořadí:

  1. OLED a kabel
  2. Spínač/zapojení start/stop
  3. Rotační kodér a kabel
  4. Reproduktor / bzučák a zapojení
  5. Externí ovládací konektor a kabeláž
  6. Posuvný vypínač a zapojení (dvakrát zkontrolujte orientaci, aby bylo zapnuto ve vámi požadovaném směru

Pokud pájíte kabely přímo k desce s obvody, proveďte to poté, co jsou všechny součásti připojeny k vaší skříni, aby se omezilo přetržení vodiče. Než přišroubujete desku k zadní straně, musíte počkat, až budou kabely připojeny k hlavní desce.

Pokud používáte konektory pinů a konektory Dupont, nejprve připevněte základní desku k zadní straně pomocí šroubů a poté zapojte součásti. Při připojování baterie k základní desce buďte opatrní a dodržujte správnou polaritu. V tuto chvíli byste také měli nastavit propojky ovládání nebo relé.

Spodní část skříně se připojuje k horní části pomocí 4-40 šroubů s kulatou hlavou, po jednom v každém rohu. Čtyři otvory v horní části by měly být poklepány závitníkem 4/40 nebo pokud použijete vložky se závitem 4-40, budete muset otvory vyvrtat, abyste je přijali. Je také nutné vyvrtat 4 otvory pro upevnění základní desky na spodní straně. Přilepte tuto desku k držáku snap-in baterie a označte umístění otvorů. Vyvrtejte podle potřeby montážní šrouby.

Krok 12: Testování integrace

Testování integrace
Testování integrace
Testování integrace
Testování integrace
Testování integrace
Testování integrace

Konečné (integrační) testování se provádí vyzkoušením všech možností nabídky a ověřením, zda fungují s hardwarem, jak byl navržen. Pro kód, který jsem poskytl, by to mělo stačit. Pokud jste napsali svůj vlastní kód nebo upravený důl, vaše testování bude muset být rozsáhlejší. Nevěřím, že je nutné procvičovat všechny volby časování, ale musíte vyzkoušet všechny standardní možnosti alarmu a ověřit, zda alarmy v režimu Nap a Meditace fungují tak, jak byly navrženy.

Krok 13: Závěrečné myšlenky

Blahopřeji k vašemu úspěšnému, doufám, projektu. Jsem si jistý, že jste na cestě narazili na problémy, které jste potřebovali vyřešit. Jsem si také jistý, že některé mé pokyny mohly být úplnější nebo jasnější. Sdělte mi prosím v sekci komentáře, jaké byly vaše výsledky, a poskytněte návrhy, jak lze tyto pokyny zlepšit.

Děkujeme za váš čas prohlížení a/nebo budování tohoto projektu.

Doporučuje: