Taula de continguts:

Rellotge despertador binari Arduino de bricolatge: 14 passos (amb imatges)
Rellotge despertador binari Arduino de bricolatge: 14 passos (amb imatges)

Vídeo: Rellotge despertador binari Arduino de bricolatge: 14 passos (amb imatges)

Vídeo: Rellotge despertador binari Arduino de bricolatge: 14 passos (amb imatges)
Vídeo: Часы Nixie IN-18 в гранитном корпусе, GPS-синхронизация. Температура, игровой автомат, защита от отравлений GRA и AFCH 2024, De novembre
Anonim
Rellotge despertador binari Arduino
Rellotge despertador binari Arduino
Rellotge despertador binari Arduino
Rellotge despertador binari Arduino
Rellotge despertador binari Arduino
Rellotge despertador binari Arduino

Torna a ser el clàssic rellotge binari. Però aquesta vegada amb una funció addicional encara més! En aquest instructiu, us mostraré com construir un despertador binari amb Arduino que us pugui mostrar no només l’hora, sinó la data, el mes, fins i tot amb funcions de temporitzador i alarma que també es poden utilitzar com a làmpada de nit. Sense més, comencem!

Nota: Aquest projecte no utilitza cap mòdul RTC, de manera que la precisió depèn de la placa que hàgiu fet servir. He inclòs un mecanisme corrector que corregirà la deriva del temps durant un període determinat de temps, però haureu d’experimentar per trobar el valor correcte per al període de temps (més informació a continuació), i fins i tot amb el mecanisme correctiu seguirà derivant durant molt de temps (en comparació amb sense un). Si algú està interessat, no dubteu a implementar l’ús del mòdul RTC en aquest projecte

Subministraments

LED de 5 mm (de qualsevol color, he utilitzat 13 LEDs blancs amb un LED RGB com a indicador) --- 14 unitats

Arduino Nano (pot ser que altres funcionin) --- 1 unitat

Microinterruptor --- 1 unitat

Peça petita de paper d'alumini

Tauler de muntatge (per al recinte, però no dubteu a dissenyar-ne el vostre)

Tros de paper blanc (o qualsevol altre color)

Alguna pel·lícula de plàstic (la que s’utilitza com a portada del llibre)

Un munt de cables

Zumbador --- 1 unid

Transistor NPN --- 1pc

Resistències 6k8 --- 14 unitats, 500R --- 1 unitat, 20R (10Rx2) --- 1 unitat, 4k7 --- 1 unid

Font d'alimentació per al projecte (he utilitzat bateria li-on)

Tira LED 5050 i un interruptor lliscant (opcional)

Pas 1: connecteu el circuit

Connecteu el circuit
Connecteu el circuit

Dividiré aquest pas en:

1) La part del brunzidor

2) El panell LED

3) L'interruptor (polsador)

4) tira LED

5) El sensor de capacitat

6) Font d'alimentació

7) Connecteu-los tots a Arduino

La majoria de les vegades, això és només un pas "segueix l'esquema". Mireu l’esquema anterior o fins i tot descarregueu-lo i imprimiu-lo.

Pas 2: Preparació de la part del brunzidor

Preparació de la part del brunzidor
Preparació de la part del brunzidor
Preparació de la part del brunzidor
Preparació de la part del brunzidor
Preparació de la part del brunzidor
Preparació de la part del brunzidor

Si ja heu utilitzat buzzer amb Arduino, sabreu que si el connectem directament a Arduino no serà prou fort. Per tant, necessitem un amplificador. Per construir l'amplificador, necessitem un transistor NPN (bàsicament qualsevol NPN funcionarà, he utilitzat S9013 perquè el vaig obtenir del projecte antic) i alguna resistència per limitar el corrent. Per començar, primer identifiqueu el col·lector, l’emissor i la base del transistor. Una mica de google del full de dades funcionarà. Després, soldeu el col·lector del transistor al terminal negatiu del brunzidor. Al terminal positiu del brunzidor, acabem de soldar-ne un tros de fil per poder soldar-lo al nostre Arduino més endavant. Després d'això, soldeu la resistència 500R (o qualsevol valor similar de resistència) a la base del transistor i, a partir de la resistència, soldeu un altre tros de filferro per a un ús futur. Finalment, soldeu les dues resistències 10R en sèrie amb l’emissor del transistor i connecteu un altre cable de les resistències.

Realment, consulteu l'esquema.

p / s: encara no sé com triar la resistència per al transistor en el moment d’escriure això. El valor que he utilitzat es selecciona empíricament.

Pas 3: Preparació del tauler LED

Preparació del tauler LED
Preparació del tauler LED
Preparació del tauler LED
Preparació del tauler LED
Preparació del tauler LED
Preparació del tauler LED

Connecteu els LEDs i la resistència a la placa de prototipatge en conseqüència i soldeu-los. Això és. Seguiu l'esquema. Per si us interessa l’espai que he utilitzat, hi ha 3 forats separats per a cada columna i dos forats separats per a cada fila (consulteu la imatge). I el LED indicador? L’he endollat a l’atzar.

Després de soldar els LED i la resistència a la placa, connecteu tots els terminals positius dels LED. Després, soldeu els cables un a un a cadascuna de les resistències als terminals negatius dels LED perquè puguem soldar-los a Arduino més endavant.

NOTA: Us podeu confondre aquest pas. Recordeu que en lloc de connectar tots els connectors de terra, connectem tots els terminals positius i negatius al pin individual d’Arduino. Per tant, fem servir el pin GPU Arduino com a terra, no Vcc. En cas que, si el connecteu accidentalment cap enrere, no us preocupeu. Podeu modificar tots els ALT a BAIX i BAIX a ALT a la funció ledcontrol.

Pas 4: Preparació del commutador (polsador en realitat)

Preparació del commutador (polsador en realitat)
Preparació del commutador (polsador en realitat)
Preparació del commutador (polsador en realitat)
Preparació del commutador (polsador en realitat)
Preparació del commutador (polsador en realitat)
Preparació del commutador (polsador en realitat)

Per a l’interruptor (l’anomenaré interruptor perquè he utilitzat un microinterruptor, però ja sabeu que és un polsador), necessitem una resistència desplegable 4k7 i, per descomptat, l’interruptor en si. Ah, no us oblideu de preparar alguns cables. Comenceu soldant la resistència i un tros de fil a la terra comuna (COM) del microinterruptor. A continuació, soldeu un altre tros de filferro al normalment obert (NO) del microinterruptor. Finalment, fixeu un altre cable a la resistència. Assegureu-lo amb una mica de cola calenta.

Racó del coneixement: per què necessitem una resistència desplegable?

"Si desconnecteu el pin d'E / S digital de tot, el LED pot parpellejar de manera erràtica. Això es deu al fet que l'entrada és" flotant ", és a dir, que tornarà aleatòriament ALTA o BAIXA. És per això que necessiteu un pull-up o resistència desplegable al circuit. " - Font: lloc web Arduino

Pas 5: Preparació de la tira LED

Preparació de la tira LED
Preparació de la tira LED
Preparació de la tira LED
Preparació de la tira LED

La tira LED és per a làmpada lateral del llit, que és opcional. Simplement connecteu la tira LED i l'interruptor lliscant junts en sèrie, res especial.

Pas 6: Preparació del sensor de capacitat

Preparació del sensor de capacitat
Preparació del sensor de capacitat
Preparació del sensor de capacitat
Preparació del sensor de capacitat
Preparació del sensor de capacitat
Preparació del sensor de capacitat
Preparació del sensor de capacitat
Preparació del sensor de capacitat

D'acord, consulteu la imatge. Bàsicament, anem a fixar el cable a un petit tros de paper d'alumini (perquè el paper d'alumini no es pot soldar) i, a continuació, enganxeu-lo en un tros petit de tauler de muntatge. Recordatori, assegureu-vos de no enganxar completament el paper d'alumini. Deixeu-ne alguns exposats per al contacte directe.

Pas 7: Preparació de la font d'alimentació

Preparació de la font d'alimentació
Preparació de la font d'alimentació
Preparació de la font d'alimentació
Preparació de la font d'alimentació
Preparació de la font d'alimentació
Preparació de la font d'alimentació

Com que he utilitzat la bateria li-on com a font d’alimentació, necessito un mòdul TP4056 per carregar i protegir, i un convertidor d’augment per convertir el voltatge a 9v. Si heu decidit utilitzar un adaptador de paret de 9 V, és possible que necessiteu una presa de corrent continu o simplement connecteu-la directament. Tingueu en compte que el valor de la resistència de l'amplificador és de 9V i, si voleu utilitzar una altra tensió, potser haureu de canviar la resistència.

Pas 8: connectar-los a Arduino

Connectant-los a Arduino
Connectant-los a Arduino
Connectant-los a Arduino
Connectant-los a Arduino
Connectant-los a Arduino
Connectant-los a Arduino

Seguiu l'esquema! Seguiu l'esquema! Seguiu l'esquema!

No connecteu el pin equivocat, ja que les coses seran estranyes.

Pas 9: recinte

Recinte
Recinte
Recinte
Recinte
Recinte
Recinte
Recinte
Recinte

La mida del meu disseny és de 6,5 cm * 6,5 cm * 8 cm, de manera que és una mica voluminosa. Consisteix en una finestra frontal per a pantalla LED i una finestra superior per a la làmpada de nit. Per al meu disseny, consulteu les imatges.

Pas 10: temps de programació

Image
Image
Temps de programació!
Temps de programació!

Descarregueu el meu esbós a continuació i pengeu-lo al vostre Arduino. Si no sabeu com fer-ho, no us molesteu a fer aquest projecte. No és broma, aquí teniu un bon tutorial: Pengeu esbossos a arduino

A continuació, obriu el monitor sèrie i hauríeu de veure com surt l'hora actual. Per definir l’hora, aquí teniu com fer-ho.

Per definir l’hora: h, XX, on xx és l’hora actual

Per definir el minut: min, XX - xx és el minut actual

Per definir el segon: s, XX

Per definir la data: d, XX

Per definir el mes: dilluns, XX

Quan s’executa el comentari anterior, us hauria de retornar el valor que acabeu d’establir. (Per exemple, quan definiu l'hora amb h, 15, hauria de tornar Hora: 15 al monitor sèrie.

Per al sensor de capacitat, és possible que hàgiu de calibrar-lo abans que funcioni. Per fer-ho, premeu el microinterruptor dues vegades i mireu el monitor sèrie. Hauria de generar un munt de números. Ara poseu el dit sobre el sensor de capacitat i vegeu prendre nota del rang del número. A continuació, modifiqueu la variable "captrigger". Suposem que obtingueu 20-30 quan es prem i, a continuació, configureu captrigger a 20.

L’esbós utilitza la biblioteca ADCTouch, assegureu-vos que l’heu instal·lat.

Pas 11: Mecanisme correctiu

El període de temps per al mecanisme correctiu del meu codi s’estableix en el que és més adequat per a mi. Si l'hora encara no és precisa, heu de canviar el valor de la variable "corrdur"

Ara el corrdur per defecte és 0 en la darrera actualització.

El valor de corrdur significa quants mil·lisegons es triga a frenar un segon

Per esbrinar el valor de corrdur, utilitzeu la fórmula:

2000 / (y-x) / x)

on x = durada real del temps transcorregut y = durada del temps transcorregut del rellotge, tots dos en segon

Per trobar el valor de x i y, heu de fer un petit experiment.

Estableix l’hora del rellotge a l’hora real i registra l’hora inicial (l’hora inicial real i l’hora inicial del rellotge haurien de ser iguals). Al cap d'una estona (poques hores), anoteu l'hora real final i l'hora final del rellotge.

x = hora final real-hora inicial i y = hora final del rellotge-hora inicial

A continuació, canvieu el valor de corrdur al codi i torneu a carregar-lo a l'Arduino.

A continuació, repetiu la prova i aquesta vegada la fórmula ha canviat a:

2000 / ((2 / z) + (y-x / x))

On x i y són el mateix que abans, mentre que z és el valor corrdur actual.

Torneu a carregar-la i feu la prova una i altra vegada fins que us sigui prou precisa.

Si el rellotge encara s’accelera, fins i tot corrdur està definit a 0 (vol dir que no hi ha cap mecanisme correctiu), heu de canviar el segon ++ a segon: a la part del codi del mecanisme correctiu (ho he comentat), configureu corrdur a 0, llavors trobeu el núm. de mil·lisegons es triga a accelerar un segon.

Pas 12: Com utilitzar totes les funcions

Image
Image

Podeu canviar de mode prement el microinterruptor.

Al primer mode, simplement mostra l'hora. Si el llum indicador parpelleja 1 cop per segon, l'alarma està desactivada. Si es fa 2 vegades per segon, l'alarma està activada. Podeu posposar l’alarma durant 10 minuts en el primer mode prement el sensor de capacitat.

En el segon mode, mostra la data. Prémer el sensor de capacitat no fa res.

En el tercer mode, podeu configurar el temporitzador. Si premeu el sensor de capacitat, s’encén el temporitzador i hauríeu de veure que el llum indicador començava a parpellejar. El sensor de capacitat també s’utilitza per configurar el temps del temporitzador. El rang del temporitzador és d’1 minut a 59 minuts.

En el quart mode, podeu configurar l’hora de l’alarma mitjançant el sensor de capacitat

En el cinquè mode, podeu configurar el minut d'alarma mitjançant el sensor de capacitat.

En el sisè mode, si premeu el sensor de capacitat es restablirà el minut a 30 i el segon a 0 sense canviar l'hora. Això significa que, sempre que el rellotge no vagi més de 30 minuts, podeu tornar-lo a calibrar mitjançant aquest mode.

El setè mode és el mode de no fer res en cas que el sensor de capacitat es produeixi un error quan es carrega.

Ah, per desactivar l'alarma, només cal prémer el microinterruptor. (ÚLTIMA ACTUALITZACIÓ PER INCLORAR ALARM SNOOZE)

Bé, què tal llegir el rellotge? És fàcil! Llegir el rellotge binari: Wikihow Al principi us podeu sentir estrany, però ja us en fareu servir!

Pas 13: Conclusió

Conclusió
Conclusió
Conclusió
Conclusió

Per què vaig començar aquest projecte. Inicialment és perquè tinc un rellotge digital antic que estic estirat i el vull convertir en un despertador. Malauradament, el rellotge antic es va trencar. Per tant, era com per què no en construïa un amb Arduino? Amb una mica de cerca a Google, he trobat aquest projecte de rellotge binari sense RTC a Cello62 instructable. Tot i això, no té la funció de despertador que vull, de manera que prenc el codi i el modifico jo mateix. I el projecte neix. A més, he vist que el concurs de rellotges funcionava de forma instructiva recentment, cosa que em va donar encara més motivació per fer-ho. De totes maneres, aquest és encara el meu primer projecte amb Arduino, així que un munt de possibles millores.

Millora futura:

1) Utilitzeu RTC

2) Configureu l'alarma o l'hora o el temporitzador sense fils.

3) Qualsevol característica que pensi

Pas 14: actualització: després d'una setmana d'ús

Actualització: després d'una setmana d'ús
Actualització: després d'una setmana d'ús
Actualització: després d'una setmana d'ús
Actualització: després d'una setmana d'ús
Actualització: després d'una setmana d'ús
Actualització: després d'una setmana d'ús

A part de l’evident problema: la deriva del temps, el següent diria que és el consum d’energia. Primer de tot, passo el voltatge fins a 9v, que després serà reduït pel regulador lineal a Arduino. El regulador lineal és molt poc eficient. El rellotge només dura un dia. Això significa que l’he de recarregar cada dia. Això no és l’oferta més gran fins que no us adoneu que tot el sistema només té un 50% d’eficiència. Tenint en compte que la meva bateria és de 2000 mAh, seria capaç de calcular la potència que es malgasta cada dia.

Potència desaprofitada = (7,4 Wh * 10%) + (7,4 Wh * 90% * 50%) = 4,07 Wh al dia

És a dir, 1.486kWh a l'any. Es pot fer servir per bullir, uh, 283 g d'aigua (des de 25 ° C fins a 100 ° C)? Però, de totes maneres, milloraré l’eficiència del rellotge. La manera de fer-ho és no fer servir en absolut el regulador lineal. Això significa que hem d’ajustar el convertidor d’impulsió a la sortida de 5V directament al pin de 5V d’Arduino. A continuació, per minimitzar encara més la potència malgastada, he de treure els dos LED de bord (pin13 i alimentació), ja que malgastaran 0,95 Wh al dia. Malauradament, no sóc absolutament capaç de soldar SMD, de manera que l'única manera de fer-ho és tallar el carril al tauler. Després d'això, he de treure la resistència de l'emissor del brunzidor i la làmpada de nit (la tira LED no funciona a 5V). Però vol dir que heu de renunciar a aquesta característica sorprenent? No! Aquí teniu dues opcions: feu servir el díode LED normal de 5 mm o feu servir una tira LED de 5 V. Però per a mi, ja em sentia cansat de fer aquest projecte durant tota la setmana passada, així que vaig decidir renunciar a aquesta funció. Tot i això, vaig utilitzar l’interruptor originalment per a la funció de llum per encendre o apagar el tauler del rellotge per estalviar encara més energia, però el LED parpelleja quan l’apago. S'ha convertit en un error? No ho sé (algú ho sap, si us plau digueu-ho a continuació).

Al final de la modificació, el rellotge dura més de 2 dies.

A continuació, tinc un problema menys greu amb el rellotge. Durant la càrrega, el sensor de capacitat es tornaria boig, de manera que afegeixo un altre mode que no fa res.

Pel que fa a la deriva del temps, ja que és molt incòmode connectar-lo a l'ordinador cada dia per restablir-lo, he afegit un altre mode que establirà el minut 30 a 30 i el segon a 0. Això vol dir que el podreu restablir a qualsevol hora i mitja.

Recomanat: