Tartalomjegyzék:

Multi-Timer W/ külső vezérlés: 13 lépés
Multi-Timer W/ külső vezérlés: 13 lépés

Videó: Multi-Timer W/ külső vezérlés: 13 lépés

Videó: Multi-Timer W/ külső vezérlés: 13 lépés
Videó: Home Automation: How to use 7 Program 0.1s to 9999 minutes Relay Timer XY-LJ02 2024, Július
Anonim
Multi-Timer W/ Külső vezérlés
Multi-Timer W/ Külső vezérlés

Ez az Instructable projekt egy többfunkciós időzítő felépítése

Ez az időzítő a következőképpen tud működni:

  1. Általános riasztás 1 másodperc és +90 óra közötti választható idővel. A visszaszámlálás hallható riasztással és/vagy a külső eszköz vezérlése a befejezésig, majd a riasztás óta eltelt idő visszaszámlálása.
  2. Alvásidőzítő 7 választható idővel, visszaszámlálással és riasztással a befejezéskor.
  3. Meditációs időzítő 4 választható idővel, visszaszámlálással és rövid csipogással a befejezés után, visszaszámlálás egy másik csipogással 5 perc múlva.

Ez a projekt az itt leírtak szerint épülhet, vagy az igényeknek megfelelően módosítható. Korábban építettem egy időzítőt ezzel a funkcióval, és az első Instructable -ban használtam az UV expozíciós doboz vezérléséhez.

Azt hittem, csak közzé tudom tenni az eredeti programot és a táblaterveket. Azonban valamiért nem találtam a kódot. Továbbá fejleszteni akartam a hardvert, hogy rugalmasabbá tegyem a vezérlőáramköröket és csökkentsem az akkumulátor lemerülését. A fő áramköri lap átalakítása és a kód újraírása lehetőséget ad a programozás és a hardver tervezés megközelítésének megvitatására.

Amikor létrehozok egy áramköri lapot, gyakran azt tapasztalom, hogy az alkatrészek kialakításában vagy elhelyezésében vannak hibák. Ráadásul csak szeretek részt venni a projekt minden területén az elejétől a végéig. Ez néhány oka annak, hogy saját áramköri lapokat készítek, ahelyett, hogy elküldeném a Gerber fájlokat a tengerentúlra gyártásra. Lehet, hogy csak öreg vagyok, és elakadtam az utamban. Ez a projekt tükrözi ezt az elfogultságot. Mivel saját áramköri lapokat készítek, a terveim és a Gerber -fájljaim nem felelnek meg a gyártási szabványoknak, ezért ezeket a fájlokat nem vettem bele. Azok, akik nem akarják maratni és befejezni a táblákat, szívesen elkészítik saját terveiket, és közzéteszik a Gerber -fájlokat a megjegyzések részben. Kérjük, készítse el és tesztelje tábláit a közzététel előtt.

1. lépés: A hardverelemek áttekintése

A készülék 4 AAA elemmel működik, és Arduino Pro Mini 5V vezérli.

Egy kis hangjelző/hangszóró hangjelzést ad.

A miniatűr 5 voltos relé vezérlőfeszültséget biztosít a külső eszközök számára. Ennek a vezérlőfeszültség -kimenetnek a rugalmassága biztosított.

A nyomógombbal ellátott forgó kódoló biztosítja a menü kiválasztását.

Az OLED kijelző és a pillanatnyi start/stop kapcsoló kiegészíti a felhasználói felületet.

A kiegészítő elektronikus hardver egy SPDT tápkapcsolóból és egy miniatűr telefoncsatlakozóból áll, amely külső eszközökhöz csatlakoztatható.

Ezenkívül a projekthez segítséget nyújtó fájlok is rendelkezésre állnak:

STL fájlok 3D nyomtatott projekt tokhoz.

Réz és forrasztómaszk képek a vezérlő áramkör és a forgó jeladó maratásához és befejezéséhez.

Vázlatos és táblaképek referenciaként azok számára, akik módosítani szeretnék a tervemet.

Érdemes áttekinteni a kétoldalas áramköri lapok létrehozásáról szóló utasításomat, amely példaként szolgál az áramköri lapok gyártásához.

2. lépés: A szoftver áttekintése

Az Arduino forrásfájlok mellett néhány további információ is hasznos lehet.

Hardvervezérlő könyvtárakat használnak, ha rendelkezésre állnak (gombok visszapattanása, OLED vezérlés, forgó kódoló leolvasása).

A program egy egyszerű véges állapotú gépet (FSM) valósít meg a kódfuttatás vezérlésére kapcsoló utasításként a hurokfüggvényben.

A menüosztály úgy van definiálva, hogy lehetővé teszi az OLED kijelzőn megjelenő opciók kiválasztását és a forgó kódolóval történő kiválasztást.

A bemenet közvetlen lekérdezéssel valósul meg (nem megszakítás vezérelt), mivel nem időkritikus, és világosabbá teszi a kódot.

A soros nyomtatási utasításokat a kód végrehajtásának és a hibakeresésnek a nyomon követésére használják

Különféle típusú programszerkezeti elemek, beleértve:

  • Több kódlap a hardvervezérlő funkciók és változók elkülönítéséhez.
  • Állítások váltásával állítsa be az állapotértéket (FSM) és a vezérlőváltozókat.
  • Szerkezetdefiníció
  • Felsorolás, amely lehetővé teszi az állapotértékek szövegként való hozzárendelését.
  • #define előfeldolgozó definíciók hardver pin és szabványos értékekhez.

3. lépés: Alkatrészlista

Hozza létre a szekrényt
Hozza létre a szekrényt

Nem tudtam hova tenni ezt a lépést, mivel szinte bármikor megtehető. 3D nyomtatott szekrényt használtam. Előfordulhat, hogy nem fér hozzá 3D nyomtatóhoz, vagy más típusú házat részesít előnyben, például alumíniumdobozt, lézerrel vágott műanyagot, kézzel faragott fát vagy más, az elektronikus projektekhez használt típust. Mellékeltem az STL fájlokat a felső, alsó, forgó kódológombhoz és az OLED előlaphoz. Használja ezeket a fájlokat és a választott szeletelőt gcode fájlok létrehozásához a nyomtatóhoz.

Minden alkatrészt PLA izzószállal nyomtatok ki, az egyik szín a ház felső és alsó része, egy másik kontrasztos a gomb és a keret (amely a tetejére van ragasztva). Nem fogom megadni az összes szeletelőbeállításomat, hanem Tri -Hatszögletöltés legalább 35%, hogy lehetővé tegye a sarokcsavarok megütését, és a "nincs támasz" beállítást a bemetszett betűk olvasásához. A dobozt a nyomtatóim "normál" rétegmagasságával kinyomtattam.

9. lépés: Tervezési és írási kód

Ez a lépés nem kötelező, de a jobb megértés érdekében javasolt.

Az erőfeszítések nagy része az órák tekintetében a kód megírása. Ezt a lépést kihagyhatja, ha a mellékelt programot -is -ként használja. Javasoljuk azonban, hogy szánjon időt a kód felülvizsgálatára, hogy jobban megértse vagy módosítsa az igényeit.

Az alábbi megjegyzések segíthetnek megérteni ezt a folyamatot.

  • Megjegyzések - Kommentáljon széles körben menet közben - gyakran írom le a megjegyzéseket, mielőtt megírom a kódot.
  • Osztás és meghódítás - függvények, osztályok és modulok (lapok) használata. Gyakori fordítások (Verify) használata a szintaxis ellenőrzéséhez. Hibakeresés - Nyomtatási utasításokkal ellenőrizheti az áramlási és tesztelési értékeket, valamint a hardver interfészeket. Ne féljen menet közben megoldani a problémákat, senki nem ír hibakódot!
  • Konstansok - #define előfordító utasítások neveket rendelnek a pin számokhoz. A Const változó definíciók megjegyzésekkel csökkentik vagy megszüntetik a "Magic" számokat. A program vagy függvény elején található konstansok használata lehetővé teszi a paraméterek megváltoztatását a kód átírása nélkül
  • Előre meghatározott könyvtárak - Az előre meghatározott könyvtárak használata csökkenti a programozási terheket és a hibakeresési időt.
  • Tervezőblokkok - Funkciók használatával hozhatók létre, kódok elkülönítése külön füleken (kapcsolódó programok és.hfiles), felsorolások, osztályok és struktúrák. Fókuszáljon mindenkire, hogy megértse, hogyan működnek a kód többi részéhez képest.
  • Állapotgép (ek) - Ez egy olyan programozási minta, amely kiválóan működik az Arduinos programokkal vagy bármely olyan programmal, amelyet a kimenetek vezérlésére vagy a bemenetek reagálására használnak. Az állami gépek többféle ízben léteznek. Ez a kód egy állapotgépet használ a ciklusfüggvény kapcsoló utasításai alapján. Ez az űrlap könnyen érthető és hibakereshető.
  • Kijelző és menük - Az OLED kimenet szűk, de elegendő visszajelzést ad az alkalmi felhasználóknak, és támogatja az opciók kiválasztását. Jól integrálható az állapotgéppel (szinte minden államhoz tartozik OLED képernyő). A menüosztály hasznos volt a kódok elkülönítéséhez a megjelenítéshez és a menüopciók kiválasztásához

Kérjük, olvassa el többször a programot. Segít egyszerre egy funkció vagy szakasz végrehajtásában. Gyakran nem értem az általam írt kódot, hacsak nem olvastam el legalább kétszer!

10. lépés: Telepítse a programot

Másolja a csatolt fájlt a számítógépére, majd bontsa ki a Sketches könyvtárba

Csatlakoztassa az Arduino -t a számítógépéhez, és töltse le a programkódot a szokásos módon. Nyissa meg az Arduino IDE soros monitort, hogy ellenőrizze, hogy a program fut -e, és segíti a hibakeresést.

11. lépés: Szerelje össze az időzítőt

Szerelje össze az időzítőt
Szerelje össze az időzítőt
Szerelje össze az időzítőt
Szerelje össze az időzítőt
Szerelje össze az időzítőt
Szerelje össze az időzítőt
Szerelje össze az időzítőt
Szerelje össze az időzítőt

Miután kinyomtatta és megtisztította a tok felső és alsó részét, az alkatrészeket kis önmetsző műanyag csavarokkal rögzítheti. Először az elemtartót a hátlapra kell pattintani. A többi alkatrész a burkolat tetejéhez van rögzítve a következő sorrendben:

  1. OLED és kábel
  2. Start/Stop kapcsoló és huzalozás
  3. Rotációs kódoló és kábel
  4. Hangszóró / hangjelző és vezetékek
  5. Külső vezérlő csatlakozó és vezetékek
  6. Be/Ki csúszó kapcsoló és huzalozás (ellenőrizze kétszer az irányt, hogy a bekapcsolás a kívánt irányban legyen

Ha a kábeleket közvetlenül az áramköri lapjához forrasztja, tegye ezt, miután az összes alkatrészt a házhoz rögzítette, hogy csökkentse a vezetékek törését. Várja meg, amíg a kábelek be vannak kötve az alaplapba, mielőtt visszacsavarja a táblát.

Ha tüskés fejléceket és Dupont csatlakozókat használ, először az alaplapot csavarokkal rögzítse a hátlapra, majd csatlakoztassa az alkatrészeket. Legyen óvatos, amikor az akkumulátort az alaplaphoz csatlakoztatja, és ügyeljen a helyes polaritásra. A relévezérlő átkötőket vagy vezetékeket is ebben az időben kell beállítani.

A szekrény alja 4-40 kerekfejű csavar segítségével csatlakozik a tetejéhez, minden sarokban egyet. A tetején lévő négy lyukat vagy 4/40 csappal kell megérinteni, vagy ha 4-40 menetes betétet használ, akkor lyukakat kell fúrnia, hogy elfogadja őket. A fő áramköri lap aljára szereléséhez szükséges 4 lyukat is ki kell fúrni. Csatlakoztassa ezt a táblát a beépíthető elemtartóhoz, és jelölje meg a lyukak helyét. Fúrjon a rögzítőcsavaroknak megfelelően.

12. lépés: Integrációs tesztelés

Integrációs tesztelés
Integrációs tesztelés
Integrációs tesztelés
Integrációs tesztelés
Integrációs tesztelés
Integrációs tesztelés

A végső (integrációs) tesztelés úgy érhető el, hogy kipróbálja az összes menüopciót, és ellenőrzi, hogy működnek -e a tervezett hardverrel. Az általam megadott kódhoz ez elegendő. Ha saját kódot írt vagy módosította az enyémet, a tesztelésnek szélesebb körűnek kell lennie. Nem hiszem, hogy az összes időzítést ki kell választani, de ki kell próbálnia az összes szabványos riasztási lehetőséget, és érvényesítenie kell a szundi és meditációs riasztásokat.

13. lépés: Utolsó gondolatok

Gratulálok a sikeres, remélem, projekthez. Biztos vagyok benne, hogy az út során olyan problémákkal találkozott, amelyeket meg kellett oldania. Biztos vagyok abban is, hogy néhány utasításom teljesebb vagy világosabb lehetett. Kérjük, tudassa velem a megjegyzések részben, hogy milyen eredményeket ért el, és javaslatokat tett az utasítások javítására.

Köszönjük, hogy időt fordított a projekt megtekintésére és/vagy építésére.

Ajánlott: