Taula de continguts:

Temporitzador múltiple amb control extern: 13 passos
Temporitzador múltiple amb control extern: 13 passos

Vídeo: Temporitzador múltiple amb control extern: 13 passos

Vídeo: Temporitzador múltiple amb control extern: 13 passos
Vídeo: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, Juliol
Anonim
Temporitzador múltiple amb control extern
Temporitzador múltiple amb control extern

Aquest projecte Instructable és una compilació d’un temporitzador multifunció

Aquest temporitzador pot funcionar com:

  1. Una alarma d’ús general amb temps seleccionables entre 1 segon i +90 hores. Tenir un compte enrere amb alarma sonora i / o control del dispositiu extern fins que hagi acabat, una indicació de compte enrere del temps transcorregut des de l'alarma.
  2. Un temporitzador de migdiada amb 7 vegades seleccionables, compte enrere i alarma en finalitzar.
  3. Un temporitzador de meditació amb 4 vegades seleccionables, amb compte enrere i un curt crit al finalitzar, compte enrere amb un altre crit al cap de 5 minuts.

Aquest projecte es pot construir tal com es descriu aquí o modificar-lo per adaptar-lo. Anteriorment he creat un temporitzador amb aquesta funcionalitat i l’he utilitzat al meu primer instructable per controlar la caixa d’exposició als UV.

Vaig pensar que només podia publicar el programa original i els dissenys de taulers. No obstant això, per alguna raó no he pogut trobar el codi. També volia fer millores al maquinari per fer més flexibles els circuits de control i reduir el consum de bateries. El redisseny resultant de la placa de circuit principal i la reescriptura del codi proporcionen l’oportunitat de discutir l’enfocament de programació i disseny de maquinari.

Sempre que creo una placa de circuit, sovint trobo que hi ha defectes en el disseny o la col·locació de components, les taules que construeixo també són una de les dues diferències. A més, només m’agrada participar en tots els aspectes d’un projecte de principi a fi. Aquestes són algunes de les raons per les quals faig les meves pròpies plaques de circuit en comptes d'enviar els fitxers Gerber a l'estranger per a la seva fabricació. Potser sóc vell i estic encallat en els meus camins. Aquest projecte reflecteix aquest biaix. Com que faig les meves pròpies plaques de circuit, els meus dissenys i els meus fitxers Gerber no compleixen els estàndards de fabricació, no he inclòs aquests fitxers. Aquells que no vulguin gravar i acabar les taules poden preparar els seus propis dissenys i publicar els fitxers Gerber a la secció de comentaris. Feu que es fabriquin i provin els vostres taulers abans de publicar-los.

Pas 1: Visió general dels elements de maquinari

El dispositiu funciona amb 4 piles AAA i està controlat per un Arduino Pro Mini 5V.

Un petit zumbador / altaveu proporciona una alarma sonora.

Un relé de 5 V en miniatura proporciona tensions de control a dispositius externs. La font d'aquesta sortida de tensió de control proporciona flexibilitat.

Un codificador rotatiu amb polsador proporciona selecció de menú.

Una pantalla OLED i un commutador d’inici / aturada momentània completen la interfície d’usuari.

El maquinari electrònic addicional consisteix en un interruptor d’alimentació SPDT i una presa de telèfon en miniatura per connectar-se a dispositius externs.

A més, es proporcionen fitxers per ajudar-vos en aquest projecte:

Fitxers STL per a una funda de projecte imprès en 3D.

Imatges de màscares de coure i soldadura per a la gravació i acabat de la placa de circuits de control i del codificador rotatiu.

Imatges esquemàtiques i de tauler com a referència per a aquells que vulguin modificar el meu disseny.

És possible que vulgueu revisar la meva instrucció sobre la creació de plaques de circuit de doble cara com a exemple de la producció de plaques de circuits.

Pas 2: Visió general del programari

Juntament amb els fitxers font d’Arduino, hi ha informació addicional que pot ser útil.

Les biblioteques de control de maquinari s’utilitzen quan estan disponibles (botó de rebot, control OLED, lectura del codificador rotatiu).

El programa implementa una senzilla màquina d'estats finits (FSM) per controlar l'execució de codi com a sentència de commutació a la funció de bucle.

Es defineix una classe de menú per permetre la selecció de les opcions mostrades a l'OLED i la selecció mitjançant el codificador rotatiu.

L'entrada s'implementa mitjançant un sondeig directe (sense interrupcions), ja que no és crític amb el temps i fa que el codi sigui més clar.

Les instruccions d'impressió a Serial s'utilitzen per ajudar a rastrejar l'execució i la depuració de codi

Diversos tipus d’elements d’estructura del programa, inclosos:

  • Diverses pestanyes de codi per aïllar algunes de les funcions i variables de control de maquinari.
  • Canvieu les sentències per establir el valor d'estat (FSM) i les variables de control.
  • Definició d’estructura
  • Enumeracions per permetre l'assignació de valors d'estat com a text.
  • #defineu les definicions del pre-processador per al pin de maquinari i els valors estàndard.

Pas 3: Llista de peces

Creeu el recinte
Creeu el recinte

No sabia on posar aquest pas, ja que es pot fer en gairebé qualsevol moment. He utilitzat una caixa de tancament impresa en 3D. És possible que no tingueu accés a una impressora 3D ni preferiu un altre tipus de recinte, com ara caixa d’alumini, plàstic tallat amb làser, fusta tallada a mà o un altre tipus que utilitzeu per als vostres projectes electrònics. He inclòs els fitxers STL per a la part superior, inferior, del comandament rotatiu del codificador i del bisell OLED. Utilitzeu aquests fitxers i la llesca que trieu per crear fitxers gcode per a la vostra impressora.

Imprimeixo totes les parts amb filament PLA, un color per a la part superior i inferior del recinte, un altre de contrast per al comandament i el bisell (que està enganxat a la part superior). No especificaré tots els meus paràmetres de talladora, però utilitzaré un Tri - Omplir hexàgon com a mínim un 35% per permetre tocar els cargols de les cantonades i configurar "sense suport" perquè es pugui llegir la lletra incisa. Vaig imprimir la caixa amb les meves impressores d'alçada de capa "normal".

Pas 9: dissenyar i escriure codi

Aquest pas és opcional però es suggereix per a una millor comprensió.

La major part de l’esforç en termes d’hores és la redacció del codi. Podeu ometre aquest pas si utilitzeu el programa adjunt com -is. Tanmateix, se us suggereix que preneu el temps per revisar el codi per comprendre-ho millor o modificar-lo per satisfer les vostres necessitats.

Els comentaris següents poden ser útils per entendre aquest procés.

  • Comentaris: comenteu extensament a mesura que avanceu: sovint escric els comentaris abans d’escriure el codi.
  • Dividir i conquerir: utilitzeu funcions, classes i mòduls (pestanyes). Utilitzeu compilacions freqüents (Verificar) per comprovar la sintaxi. Depuració: utilitzeu instruccions d'impressió per verificar els fluxos i provar els valors i les interfícies de maquinari. No tingueu por de solucionar els problemes a mesura que avanceu, ningú escriu codi que no contingui errors.
  • Constants: les instruccions precompiladores #define assignen noms als números de fixació. Les definicions de variables constants amb comentaris redueixen o eliminen els números "Magic". L'ús de constants situades a l'inici d'un programa o funció permet canviar els paràmetres sense reescriure el codi
  • Biblioteques predefinides: l'ús de biblioteques predefinides redueix la càrrega de programació i el temps de depuració.
  • Blocs de disseny: creats amb funcions, aïllant codi en pestanyes separades (programes associats i fitxers.hfiles), enumeracions, classes i estructures. Centreu-vos l’atenció en cadascun per entendre com funcionen en relació amb la resta del codi.
  • Màquines d'estat: es tracta d'un patró de programació que funciona molt bé amb Arduinos o qualsevol programa que s'utilitza per controlar les sortides o reaccionar les entrades. Existeixen diversos sabors de màquines estatals. Aquest codi utilitza una màquina d'estats basada en la sentència switch de la funció de bucle. Aquest formulari és fàcil d'entendre i depurar.
  • Pantalla i menús: la sortida OLED és concreta, però proporciona prou comentaris per a usuaris ocasionals i admet la selecció d’opcions. S'integra bé amb la màquina d'estats (gairebé tots els estats tenen una pantalla OLED associada). La classe del menú va ser útil per aïllar el codi per mostrar i seleccionar les opcions del menú

Llegiu el programa diverses vegades. Ajuda a prendre una funció o secció a la vegada. Sovint no entenc el codi que he escrit si no l’he llegit almenys dues vegades.

Pas 10: Instal·leu el programa

Copieu el fitxer adjunt a l'ordinador i descomprimiu-lo al directori Sketches

Connecteu l'Arduino a l'ordinador i descarregueu el codi del programa de la manera normal. Obriu el monitor sèrie Arduino IDE per verificar que el programa s’executa i us ajudarà a depurar.

Pas 11: munteu el temporitzador

Munteu el temporitzador
Munteu el temporitzador
Munteu el temporitzador
Munteu el temporitzador
Munteu el temporitzador
Munteu el temporitzador
Munteu el temporitzador
Munteu el temporitzador

Una vegada que les parts superior i inferior de la caixa s’imprimeixen i es netegen, els components es poden fixar mitjançant petits cargols de plàstic autorroscants. Primer, el suport de la bateria es fixa a la part posterior. La resta de peces s’uneixen a la part superior del recinte en l’ordre següent:

  1. OLED i cable
  2. Interruptor i cablejat d’inici / atura
  3. Codificador rotatiu i cable
  4. Altaveu / timbre i cablejat
  5. Presa de control extern i cablejat
  6. Interruptor corredís i cablejat (comproveu l'orientació de manera que l'encès estigui en la direcció que vulgueu)

Si esteu soldant els cables directament a la vostra placa de circuit, feu-ho després que totes les parts estiguin connectades a la carcassa per reduir el trencament del cable. Heu d’esperar fins que els cables es connectin a la placa principal abans de cargolar-la a la part posterior.

Si feu servir capçaleres de pin i connectors Dupont, primer fixeu la placa principal a la part posterior mitjançant cargols i endolleu els components. Aneu amb compte quan connecteu la bateria a la placa principal i observeu la polaritat correcta. En aquest moment, també heu de configurar els ponts de control de relés o el cablejat.

La part inferior del recinte es connecta a la part superior mitjançant cargols de màquina de 4-40 caps rodons, un a cada cantonada. Els quatre forats de la part superior s’han de colpejar amb un toc de 4/40 o, si utilitzeu insercions roscades de 4 a 40, haureu de perforar els forats per acceptar-los. També cal perforar els 4 forats per al muntatge de la placa de circuit principal a la part inferior. Col·loqueu aquest tauler al suport de la bateria complementària i marqueu la ubicació dels forats. Traieu el que correspongui per als cargols de muntatge.

Pas 12: proves d'integració

Proves d’integració
Proves d’integració
Proves d’integració
Proves d’integració
Proves d’integració
Proves d’integració

La prova final (d’integració) s’aconsegueix provant totes les opcions del menú i comprovant que funcionin amb el maquinari tal com s’ha dissenyat. Per al codi que he proporcionat, n’hi hauria prou. Si heu escrit el vostre propi codi o heu modificat el meu, les proves hauran de ser més extenses. No crec que s'hagin d'exercir totes les seleccions de temps, però heu de provar totes les opcions d'alarma estàndard i validar les alarmes de migdiada i meditació tal com s'han dissenyat.

Pas 13: Pensaments finals

Enhorabona pel vostre èxit del projecte, espero. Estic segur que heu trobat problemes pel camí que calia resoldre. També estic segur que algunes de les meves instruccions podrien haver estat més completes o més clares. Feu-me saber a través de la secció de comentaris quins van ser els vostres resultats i proporcioneu suggeriments sobre com es poden millorar aquestes instruccions.

Gràcies pel vostre temps per veure i / o construir aquest projecte.

Recomanat: