INHOUDSOPGAWE:

Multi-timer met eksterne beheer: 13 stappe
Multi-timer met eksterne beheer: 13 stappe

Video: Multi-timer met eksterne beheer: 13 stappe

Video: Multi-timer met eksterne beheer: 13 stappe
Video: Multi-function DC/AC 5V - 24V Forward Reverse Motor Controller Timer I053A02 2024, November
Anonim
Multi-timer met eksterne beheer
Multi-timer met eksterne beheer

Hierdie projek Instructable is 'n samestelling van 'n multifunksionele timer

Hierdie timer kan funksioneer as:

  1. 'N Algemene alarm met kiesbare tye tussen 1 sekonde en +90 uur. Met 'n aftelling met 'n hoorbare alarm en/of beheer van die eksterne toestel totdat dit klaar is, dan 'n aftelling van die tyd sedert die alarm.
  2. 'N Slaaptyd met 7 kiesbare tye, aftelling en alarm na voltooiing.
  3. 'N Meditasie-timer met 4 kiesbare tye, met aftel en 'n kort tjirp na voltooiing, tel op met nog 'n tjirp na 5 minute daarna.

Hierdie projek kan eter gebou word soos hier beskryf of aangepas word. Ek het voorheen 'n timer met hierdie funksie gebou en dit gebruik in my eerste Instructable om die UV -blootstellingskas te beheer.

Ek het gedink ek kan net die oorspronklike program en bordontwerpe publiseer. Om een of ander rede kon ek egter nie die kode vind nie. Ek wou ook die hardeware verbeter om die beheerkringe buigbaarder te maak en die battery leeg te maak. Die gevolglike herontwerp van die hoofbord en die herskryf van die kode bied 'n geleentheid om die benadering tot programmering en hardeware-ontwerp te bespreek.

Elke keer as ek 'n stroombaan skep, vind ek gereeld foute in die ontwerp of plasing van komponente. Boonop hou ek daarvan om van begin tot einde by alle aspekte van 'n projek betrokke te wees. Dit is 'n paar van die redes waarom ek my eie kringplate maak eerder as om die Gerber -lêers oorsee te stuur vir vervaardiging. Miskien is ek net oud en vas in my weë. Hierdie projek weerspieël hierdie vooroordeel. Aangesien ek my eie printplate maak, my ontwerpe en my Gerber -lêers nie aan die vervaardigingsstandaarde voldoen nie, het ek hierdie lêers nie ingesluit nie. Diegene wat nie die borde wil ets en afwerk nie, is welkom om hul eie ontwerpe voor te berei en die Gerber -lêers in die kommentaarafdeling te plaas. Laat u bordjies vervaardig en getoets word voordat u dit plaas.

Stap 1: Oorsig van hardeware -elemente

Die toestel word aangedryf deur 4 AAA -batterye en word bestuur deur 'n Arduino Pro Mini 5V.

'N Klein gonser/luidspreker sorg vir 'n hoorbare alarm.

'N Miniatuur 5v -relais bied beheerspannings aan eksterne toestelle. Buigsaamheid word verskaf in die bron van hierdie stuurspanningsuitset.

'N Draaikodeerder met drukknop bied spyskaartkeuse.

'N OLED -skerm en 'n kort begin/stop -skakelaar voltooi die gebruikerskoppelvlak.

Bykomende elektroniese hardeware bestaan uit 'n SPDT -skakelaar en 'n miniatuur -telefoonaansluiting om aan eksterne toestelle te koppel.

Daarbenewens word lêers voorsien om u te help met hierdie projek:

STL -lêers vir 'n 3D -gedrukte projekkas.

Koper- en soldeermaskerbeelde vir die ets en afwerking van die stuurbord en draaikodeerder.

Skematiese en bordafbeeldings as verwysing vir diegene wat my ontwerp wil aanpas.

U kan my instruksies oor die skep van dubbelzijdige printplate hersien as 'n voorbeeld van die vervaardiging van printplate.

Stap 2: Sagteware -oorsig

Saam met die Arduino -bronlêers, 'n paar ekstra inligting wat nuttig kan wees.

Hardeware-beheerbiblioteke word gebruik wanneer dit beskikbaar is (knoppie-weerkaatsing, OLED-beheer, roterende enkodeerder lees).

Die program implementeer 'n eenvoudige eindige toestand masjien (FSM) om die uitvoering van kode as 'n skakelstelling in die lusfunksie te beheer.

'N Menu -klas word gedefinieer om die opsies wat op die OLED vertoon word, te selekteer en die roterende encoder te kies.

Invoer word geïmplementeer deur direkte peiling (nie-onderbrekingsgedrewe), aangesien dit nie tydskritiek is nie en die kode duideliker maak.

Drukverklarings na Serial word gebruik om die uitvoering van kode en ontfouting op te spoor

Verskillende tipes programstruktuurelemente, insluitend:

  • Veelvuldige kode -oortjies om sommige van die hardeware -beheerfunksies en veranderlikes te isoleer.
  • Skakel state om die staatswaarde (FSM) en beheer veranderlikes in te stel.
  • Struktuur definisie
  • Opsommings om toewysing van staatswaardes as teks toe te laat.
  • #definieer voorafverwerkerdefinisies vir hardeware-pen en standaardwaardes.

Stap 3: Onderdele lys

Skep die omhulsel
Skep die omhulsel

Ek was nie seker waar ek hierdie stap moes plaas nie, aangesien dit byna op enige tydstip gedoen kan word. Ek het 'n 3D -gedrukte omhulselkas gebruik. U het moontlik nie toegang tot 'n 3D -drukker nie, of verkies 'n ander tipe omhulsel, soos aluminiumkas, lasergesnyde plastiek, handgemaakte hout of 'n ander tipe wat u vir u elektroniese projekte gebruik. Ek het die STL -lêers vir die boonste, onderste, draaiknopknop en OLED -omhulsel ingesluit. Gebruik hierdie lêers en die snyer van u keuse om gcode -lêers vir u drukker te skep.

Ek druk alle dele uit met PLA -filament, een kleur vir die omhulsel bo en onder, nog 'n kontrasterende een vir die knop en die ring (wat aan die bokant vasgeplak is). Ek gaan nie al my snyinstellings spesifiseer nie, maar gebruik 'n Tri -Heksagon vul ten minste 35% om die hoekskroewe af te tik en 'n "geen ondersteuning" -instelling om die ingeslote letters te lees. Ek het die boks gedruk met my "normale" laaghoogte van die drukkers.

Stap 9: Ontwerp- en skryfkode

Hierdie stap is opsioneel, maar word voorgestel vir 'n beter begrip.

Die grootste deel van die moeite in terme van ure is die skryf van die kode. U kan hierdie stap oorslaan as u die aangehegte program as -is gebruik. Dit word egter aanbeveel dat u die tyd neem om die kode te hersien vir 'n beter begrip of aanpassing om aan u behoeftes te voldoen.

Die volgende opmerkings kan nuttig wees om hierdie proses te verstaan.

  • Opmerkings - lewer uitgebreide kommentaar soos u wil - ek skryf gereeld die kommentaar voordat ek die kode skryf.
  • Verdeel en oorwin - gebruik funksies, klasse en modules (tabs.) Gebruik gereelde kompilering (verifieer) om die sintaksis na te gaan. Ontfout - gebruik afdrukstate om vloei- en toetswaardes en hardeware -koppelvlakke te verifieer. Moenie bang wees om die probleme op te los nie; niemand skryf kode wat foutloos is nie!
  • Konstante - #define vooraf samesteller instruksies ken name toe aan speldnommers. Konstante veranderlike definisies met kommentaar verminder of skakel 'magiese' getalle uit. Deur konstante aan die begin van 'n program of funksie te gebruik, kan u die parameters verander sonder om kode te herskryf
  • Vooraf gedefinieerde biblioteke - Die gebruik van vooraf gedefinieerde biblioteke verminder die programmeringslas en ontfouttyd.
  • Ontwerpblokke - Geskep met behulp van funksies, isolerende kode in aparte oortjies (gepaardgaande programme en.hfiles), opsommings, klasse en strukture. Vestig u aandag op elkeen om te verstaan hoe dit werk in verhouding tot die res van die kode.
  • Staatsmasjien (e) - Dit is 'n programmeerpatroon wat goed werk met Arduinos of enige programme wat gebruik word om uitsette te beheer of insette te reageer. Daar bestaan verskillende geure van staatsmasjiene. Hierdie kode gebruik 'n staatsmasjien wat gebaseer is op die skakelaarverklaring in die lusfunksie. Hierdie vorm is maklik om te verstaan en te ontfout.
  • Vertoon en spyskaarte - Die OLED -uitset is stewig, maar bied genoeg terugvoer vir informele gebruikers en ondersteun die keuse van opsies. Dit kan goed geïntegreer word met die staatsmasjien (byna alle state het 'n gepaardgaande OLED -skerm). Die spyskaartklas was nuttig om die kode te isoleer om te wys en kieslysopsies te kies

Lees die program verskeie kere. Dit help om een funksie of afdeling op 'n slag te neem. Ek verstaan dikwels nie die kode wat ek geskryf het nie, tensy ek dit ten minste twee keer gelees het!

Stap 10: Installeer die program

Kopieer die aangehegte lêer na u rekenaar en pak dit dan uit in u Sketches -gids

Koppel die Arduino aan op u rekenaar en laai die programkode op die normale manier af. Maak die Arduino IDE -seriële monitor oop om te verifieer dat die program werk en help met ontfouting.

Stap 11: Monteer die timer

Monteer die timer
Monteer die timer
Monteer die timer
Monteer die timer
Monteer die timer
Monteer die timer
Monteer die timer
Monteer die timer

Sodra die boonste en onderste dele van die omhulsel gedruk en skoongemaak is, kan die komponente vasgemaak word met klein plastiekskroewe. Eers word die batteryhouer in die rug vasgemaak. Die res van die dele word in die volgende volgorde aan die bokant van die omhulsel vasgemaak:

  1. OLED en kabel
  2. Begin/stop skakelaar en bedrading
  3. Draaikodeerder en kabel
  4. Luidspreker / gonser en bedrading
  5. Eksterne beheer -aansluiting en bedrading
  6. Skuifskakelaar en bedrading aan/af (kontroleer die oriëntasie dubbel, sodat dit in die gewenste rigting is

As u die kabels direk aan u printplaat soldeer, doen dit nadat al die dele aan u omhulsel geheg is om die draadbreuk te verminder. U moet wag totdat die kabels aan die hoofbord gekoppel is voordat u die bord aan die agterkant vasskroef.

As u penkoppe en Dupont -verbindings gebruik, moet u eers die hoofbord met skroewe aan die agterkant koppel en dan die komponente inprop. Wees versigtig as u die battery aan die hoofbord koppel en die korrekte polariteit waarneem. U moet ook op hierdie tydstip die relais -beheerspringers of bedrading instel.

Die onderkant van die omhulsel kan aan die bokant verbind word met behulp van 4-40 ronde kopskroewe, een in elke hoek. Die vier gate aan die bokant moet met 'n 4/40 kraan getik word, of as u 4-40 skroefdraad-insetsels gebruik, moet u die gate boor om dit te aanvaar. Die 4 gate vir die hoofbord wat aan die onderkant gemonteer word, moet ook geboor word. Maak hierdie bord vas aan die snap-in-batterymontering en merk die liggings van die gate. Boor soos toepaslik vir u monteerskroewe.

Stap 12: Integrasietoetsing

Integrasie toets
Integrasie toets
Integrasie toets
Integrasie toets
Integrasie toets
Integrasie toets

Die finale (integrasie) toets word uitgevoer deur al die menu -opsies te probeer en te verifieer dat dit met die hardeware werk soos dit ontwerp is. Vir die kode wat ek verskaf het, behoort dit voldoende te wees. As u u eie kode geskryf of myne aangepas het, moet u toetsing meer uitgebreid wees. Ek glo nie dat al die keuses vir tydsberekening uitgeoefen moet word nie, maar u moet alle standaardalarmopsies probeer en val- en meditasie -alarms bevestig soos dit ontwerp is.

Stap 13: Laaste gedagtes

Baie geluk met die suksesvolle projek, hoop ek. Ek is seker dat u probleme ondervind het wat u moes oplos. Ek is ook seker dat sommige van my instruksies meer volledig of duideliker kon gewees het. Laat weet my asseblief deur die kommentaar -afdeling wat u resultate was en voorstelle oor hoe hierdie instruksies verbeter kan word.

Dankie vir u tyd om hierdie projek te besigtig en/of te bou.

Aanbeveel: