Sommario:

Sveglia binaria Arduino fai da te: 14 passaggi (con immagini)
Sveglia binaria Arduino fai da te: 14 passaggi (con immagini)

Video: Sveglia binaria Arduino fai da te: 14 passaggi (con immagini)

Video: Sveglia binaria Arduino fai da te: 14 passaggi (con immagini)
Video: Come faccio?? 2024, Luglio
Anonim
Sveglia binaria Arduino fai da te
Sveglia binaria Arduino fai da te
Sveglia binaria Arduino fai da te
Sveglia binaria Arduino fai da te
Sveglia binaria Arduino fai da te
Sveglia binaria Arduino fai da te

È di nuovo il classico orologio binario! Ma questa volta con ancora più funzioni aggiuntive! In questo tutorial, ti mostrerò come costruire una sveglia binaria con Arduino che può mostrarti non solo l'ora, ma anche la data, il mese, anche con funzioni di timer e sveglia che possono essere utilizzate anche come lampada da comodino! Senza ulteriori indugi, iniziamo!

Nota: questo progetto non utilizza un modulo RTC, quindi la precisione dipende dalla scheda utilizzata. Ho incluso un meccanismo correttivo che correggerà la deriva del tempo in un certo periodo di tempo, ma dovrai sperimentare per trovare il valore corretto per il periodo di tempo (maggiori informazioni su questo sotto), e anche con il meccanismo correttivo andrà ancora alla deriva per lungo tempo (rispetto a senza uno). Se qualcuno è interessato si senta libero di implementare l'uso del modulo RTC in questo progetto

Forniture

LED da 5 mm (di qualsiasi colore, ho usato 13 LED bianchi con un LED RGB come indicatore) --- 14 pezzi

Arduino Nano (altri potrebbero funzionare) --- 1 pz

Microinterruttore --- 1 pz

Piccolo pezzo di foglio di alluminio

Scheda di montaggio (per custodia, ma sentiti libero di progettarne una tua)

Pezzo di carta bianca (o di qualsiasi altro colore)

Un po' di pellicola di plastica (quella usata come copertina del libro)

Mazzo di fili

Cicalino --- 1 pz

Transistor NPN --- 1 pz

Resistori 6k8 --- 14 pz, 500R --- 1 pz, 20R (10Rx2) --- 1 pz, 4k7 --- 1 pz

Alimentatore per il progetto (ho usato la batteria agli ioni di litio)

Striscia LED 5050 e interruttore a scorrimento (opzionale)

Passaggio 1: collega il circuito

Collega il circuito!
Collega il circuito!

Divido questo passaggio in:

1) La parte del cicalino

2) Il pannello LED

3) L'interruttore (pulsante)

4) Striscia LED

5) Il sensore di capacità

6) Alimentazione

7) Collegali tutti ad Arduino

Il più delle volte, questo è solo un passaggio "segui lo schema". Quindi controlla lo schema sopra o addirittura scaricalo e stampalo!

Passaggio 2: preparazione della parte del cicalino

Preparazione della parte del cicalino
Preparazione della parte del cicalino
Preparazione della parte del cicalino
Preparazione della parte del cicalino
Preparazione della parte del cicalino
Preparazione della parte del cicalino

Se hai già usato il buzzer con Arduino, saprai che se lo colleghiamo direttamente ad Arduino non sarà abbastanza rumoroso. Quindi abbiamo bisogno di un amplificatore. Per costruire l'amplificatore, abbiamo bisogno di un transistor NPN (in pratica qualsiasi NPN funzionerà, ho usato S9013 perché l'ho preso dal vecchio progetto) e un resistore per limitare la corrente. Per iniziare, identificare prima il collettore, l'emettitore e la base del transistor. Un po 'di ricerca su Google del foglio dati funzionerà per questo. Quindi, saldare il collettore del transistor al terminale negativo del cicalino. Al terminale positivo del cicalino, abbiamo solo saldato un pezzo di filo in modo da poterlo saldare al nostro Arduino in seguito. Dopo questo, saldare il resistore 500R (o qualsiasi valore simile di resistore) alla base del transistor e dal resistore, saldare un altro pezzo di filo per un uso futuro. Infine, saldare le due resistenze 10R in serie all'emettitore del transistor e collegare un altro filo dalle resistenze.

Davvero, fare riferimento allo schema.

p/s: non so ancora davvero come scegliere il resistore per il transistor al momento della stesura di questo. Il valore che ho usato è selezionato empiricamente.

Passaggio 3: preparazione del pannello LED

Preparazione del pannello LED
Preparazione del pannello LED
Preparazione del pannello LED
Preparazione del pannello LED
Preparazione del pannello LED
Preparazione del pannello LED

Collegare di conseguenza i LED e la resistenza nella scheda di prototipazione e saldare. Questo è tutto. Segui lo schema. Nel caso ti interessasse con la spaziatura che ho usato, 3 fori distanziati per ogni colonna e due fori distanziati per ogni riga (fare riferimento all'immagine). E l'indicatore LED? L'ho collegato a caso.

Dopo aver saldato i LED e la resistenza alla scheda, collegare insieme tutti i terminali positivi dei LED. Quindi, saldare i fili uno per uno a ciascuno dei resistori ai terminali negativi dei LED in modo da poterli saldare ad Arduino in un secondo momento.

NOTA: potresti confonderti in questo passaggio. Ricorda che invece di collegare tutta la massa insieme, colleghiamo tutti i terminali positivi insieme e il terminale negativo al singolo pin su Arduino. Quindi stiamo usando il pin GPIO di Arduino come massa, non Vcc. Nel caso in cui lo colleghi accidentalmente al contrario, non preoccuparti. È possibile modificare tutti i valori HIGH in LOW e LOW in HIGH nella funzione ledcontrol.

Passaggio 4: preparazione dell'interruttore (pulsante in realtà)

Preparazione dell'interruttore (pulsante in realtà)
Preparazione dell'interruttore (pulsante in realtà)
Preparazione dell'interruttore (pulsante in realtà)
Preparazione dell'interruttore (pulsante in realtà)
Preparazione dell'interruttore (pulsante in realtà)
Preparazione dell'interruttore (pulsante in realtà)

Per l'interruttore (lo chiamerò interruttore perché ho usato il microinterruttore, ma sai che è un pulsante), abbiamo bisogno di una resistenza di pull-down 4k7 e, naturalmente, dell'interruttore stesso. Ah, non dimenticare di preparare dei fili. Inizia saldando la resistenza e un pezzo di filo alla massa comune (COM) del microinterruttore. Quindi, saldare un altro pezzo di filo al normalmente aperto (NO) del microinterruttore. Infine, collega un altro filo al resistore. Fissalo con della colla a caldo.

Angolo della conoscenza: perché abbiamo bisogno di un resistore pull-down?

"Se si scollega il pin I/O digitale da tutto, il LED potrebbe lampeggiare in modo irregolare. Questo perché l'ingresso è "fluttuante", ovvero restituirà in modo casuale HIGH o LOW. Ecco perché è necessario un pull-up o resistenza di pull-down nel circuito." -- Fonte: sito web Arduino

Passaggio 5: preparazione della striscia LED

Preparazione della striscia LED
Preparazione della striscia LED
Preparazione della striscia LED
Preparazione della striscia LED

La striscia LED è per la lampada da comodino, che è opzionale. Basta collegare la striscia LED e l'interruttore a scorrimento insieme in serie, niente di speciale.

Passaggio 6: preparazione del sensore di capacità

Preparazione del sensore di capacità
Preparazione del sensore di capacità
Preparazione del sensore di capacità
Preparazione del sensore di capacità
Preparazione del sensore di capacità
Preparazione del sensore di capacità
Preparazione del sensore di capacità
Preparazione del sensore di capacità

Ok fare riferimento all'immagine. Fondamentalmente attaccheremo il filo a un piccolo pezzo di foglio di alluminio (perché il foglio di alluminio non può essere saldato), quindi lo attaccheremo a un piccolo pezzo di pannello di montaggio. Gentile promemoria, assicurati di non fissare completamente il foglio di alluminio. Lasciane una parte esposta per il contatto diretto.

Passaggio 7: preparazione dell'alimentatore

Preparazione dell'alimentatore
Preparazione dell'alimentatore
Preparazione dell'alimentatore
Preparazione dell'alimentatore
Preparazione dell'alimentatore
Preparazione dell'alimentatore

Dato che ho usato la batteria agli ioni di litio come alimentatore, ho bisogno di un modulo TP4056 per la ricarica e la protezione e un convertitore boost per convertire la tensione a 9v. Se hai deciso di utilizzare un adattatore a muro da 9 V, potresti aver bisogno di un jack CC o semplicemente collegarlo direttamente. Si noti che il valore del resistore per l'amplificatore è progettato per 9V e se si desidera utilizzare un'altra tensione, potrebbe essere necessario cambiare il resistore.

Passaggio 8: collegarli ad Arduino

Collegandoli ad Arduino
Collegandoli ad Arduino
Collegandoli ad Arduino
Collegandoli ad Arduino
Collegandoli ad Arduino
Collegandoli ad Arduino

Segui lo schema! Segui lo schema! Segui lo schema!

Non collegare il pin sbagliato o le cose diventeranno strane.

Passaggio 9: allegato

Allegato
Allegato
Allegato
Allegato
Allegato
Allegato
Allegato
Allegato

La dimensione del mio disegno è 6,5 cm * 6,5 cm * 8 cm, quindi è un po' ingombrante. Consiste in una finestra anteriore per il display a LED e una finestra superiore per la lampada da comodino. Per il mio design, fare riferimento alle immagini.

Passaggio 10: tempo di programmazione

Image
Image
Tempo di programmazione!
Tempo di programmazione!

Scarica il mio schizzo qui sotto e caricalo sul tuo Arduino. Se non sai come farlo, non preoccuparti di fare questo progetto! Nah sto scherzando, ecco un buon tutorial su di esso: carica lo schizzo su arduino

Quindi apri il monitor seriale e dovresti vederlo emettere l'ora corrente. Per impostare l'ora, ecco come fare.

Per impostare l'ora: h, XX -- dove xx è l'ora corrente

Per impostare i minuti: min, XX -- xx è il minuto corrente

Per impostare i secondi: s, XX

Per impostare la data: d, XX

Per impostare il mese: lun, XX

Quando il commento sopra viene eseguito, dovrebbe restituirti il valore che hai appena impostato. (Ad esempio quando si imposta l'ora con h, 15, dovrebbe restituire Ora: 15 nel monitor seriale.

Per il sensore di capacità, potrebbe essere necessario calibrarlo prima che funzioni. Per fare ciò, premere due volte il microinterruttore e guardare il monitor seriale. Dovrebbe produrre un mucchio di numeri. Ora metti il dito sul sensore di capacità e vedi prendere nota dell'intervallo del numero. Successivamente, modifica la variabile "captrigger". Diciamo che ottieni 20-30 quando viene premuto, quindi imposta captrigger su 20.

Lo schizzo usa la libreria ADCTouch, assicurati di averlo installato.

Passaggio 11: meccanismo correttivo

Il periodo di tempo per il meccanismo correttivo nel mio codice è impostato su quello che è accurato per me. Se l'ora non è ancora precisa, è necessario modificare il valore della variabile "corrdur"

Il valore predefinito di corrdur è 0 nell'ultimo aggiornamento.

Il valore di corrdur indica quanti millisecondi ci vogliono per rallentare di un secondo

Per scoprire il valore di corrdur, usa la formula:

2000/(y-x)/x)

dove x=durata effettiva del tempo trascorso e y=durata del tempo trascorso dell'orologio, entrambi in secondi

Per trovare il valore di xey, devi fare un piccolo esperimento.

Impostare l'ora dell'orologio sull'ora effettiva e registrare l'ora iniziale (l'ora iniziale effettiva e l'ora iniziale dell'orologio dovrebbero essere le stesse). Dopo un po' (poche ore), registrare l'ora effettiva finale e l'ora finale dell'orologio.

x=ora finale effettiva-ora iniziale e y=ora finale-ora iniziale dell'orologio

Quindi cambia il valore di corrdur nel codice e ricaricalo su Arduino.

Quindi ripeti il test e questa volta la formula è cambiata in:

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

Dove xey è la stessa cosa di prima, mentre z è il valore corrdur corrente.

Carica di nuovo e ripeti il test finché non è abbastanza preciso per te.

Nel caso in cui il tuo orologio stia ancora accelerando anche se corrdur è impostato su 0 (significa nessun meccanismo correttivo), devi cambiare il secondo ++ in secondo --- nella parte del codice del meccanismo correttivo (l'ho commentato), imposta corrdur su 0, poi trova il n. di millisecondi necessari per accelerare di un secondo.

Passaggio 12: come utilizzare tutte le funzioni

Image
Image

È possibile cambiare modalità premendo il microinterruttore.

Nella prima modalità, visualizza semplicemente l'ora. Se l'indicatore luminoso lampeggia 1 volta al secondo, l'allarme è disattivato. Se 2 volte al secondo, l'allarme è attivo. È possibile posticipare la sveglia per 10 minuti nella prima modalità premendo il sensore di capacità.

Nella seconda modalità, visualizza la data. Premendo il sensore di capacità non fa nulla.

Nella terza modalità, puoi impostare il timer. Premendo il sensore di capacità si accende il timer e si dovrebbe vedere la spia luminosa che inizia a lampeggiare. Il sensore di capacità viene utilizzato anche per impostare l'ora del timer. L'intervallo del timer va da 1 minuto a 59 minuti.

Nella quarta modalità, è possibile impostare l'ora della sveglia utilizzando il sensore di capacità

Nella quinta modalità, è possibile impostare i minuti dell'allarme utilizzando il sensore di capacità.

Nella sesta modalità, premendo il sensore di capacità si azzereranno i minuti a 30 e i secondi a 0 senza cambiare l'ora. Ciò significa che finché il tuo orologio non va alla deriva per più di 30 minuti, puoi ricalibrarlo usando questa modalità.

La settima modalità è la modalità non fare nulla nel caso in cui il sensore di capacità si guasti durante la ricarica.

Oh, per disattivare l'allarme, basta premere il microinterruttore. (ULTIMO AGGIORNAMENTO PER INCLUDERE SNOOZE ALLARME)

Bene, che ne dici di leggere l'orologio? È facile! Leggere l'orologio binario -- Wikihow All'inizio potresti sentirti strano, ma ti ci abituerai!

Passaggio 13: Conclusione

Conclusione
Conclusione
Conclusione
Conclusione

Perché ho iniziato questo progetto. Inizialmente è perché ho un vecchio orologio digitale in giro e voglio trasformarlo in una sveglia. Purtroppo il vecchio orologio risulta essere rotto. Quindi ero tipo perché non costruirne uno usando Arduino? Con un po' di ricerca su Google, ho trovato questo progetto di orologio binario senza RTC su istruibile da Cello62. Tuttavia, non ha la funzione sveglia che desidero, quindi prendo il codice e lo modifico da solo. E il progetto nasce. Inoltre, di recente ho visto il concorso dell'orologio in esecuzione su istruibile che mi ha dato ancora più motivazione per farlo. Ad ogni modo, questo è ancora il mio primo progetto con Arduino, quindi un sacco di possibili miglioramenti.

Miglioramento futuro:

1) Usa RTC

2) Imposta sveglia o ora o timer in modalità wireless!

3) Qualunque caratteristica mi venga in mente

Passaggio 14: aggiornamento: dopo una settimana di utilizzo

Aggiornamento: dopo una settimana di utilizzo
Aggiornamento: dopo una settimana di utilizzo
Aggiornamento: dopo una settimana di utilizzo
Aggiornamento: dopo una settimana di utilizzo
Aggiornamento: dopo una settimana di utilizzo
Aggiornamento: dopo una settimana di utilizzo

A parte l'ovvio problema: la deriva del tempo, il prossimo direi che è il consumo di energia. Per prima cosa, aumento la tensione fino a 9v, che poi verrà ridotta dal regolatore lineare in Arduino. Il regolatore lineare è molto inefficiente. L'orologio dura solo UN GIORNO. Questo significa che devo ricaricarlo ogni giorno. Questo non è il problema più grande finché non ti rendi conto che l'intero sistema è efficiente solo al 50% circa. Dato che la mia batteria è da 2000 mAh, sarei in grado di calcolare la potenza sprecata ogni giorno.

Potenza sprecata=(7.4Wh*10%)+(7.4Wh*90%*50%)=4.07Wh al giorno

Questo è 1.486kWh all'anno! Può essere usato per far bollire, uh, 283 g di acqua (da 25 C a 100 C)? Ma comunque, migliorerò l'efficienza dell'orologio. Il modo per farlo è non usare affatto il regolatore lineare. Ciò significa che dobbiamo regolare il convertitore boost per emettere 5V direttamente nel pin 5V su Arduino. Successivamente, per ridurre ulteriormente lo spreco di energia, devo rimuovere i due LED a bordo (pin13 e alimentazione), poiché sprecheranno 0,95 Wh al giorno. Sfortunatamente, sono totalmente noob con la saldatura SMD, quindi l'unico modo per farlo è tagliare il binario sulla scheda. Dopo questo, devo rimuovere la resistenza di emettitore sul cicalino e la lampada da comodino (la striscia LED non funziona a 5V). Ma questo significa che devi rinunciare a quella fantastica caratteristica? No! Hai due scelte qui: usa il normale diodo LED da 5 mm o usa una striscia LED da 5 V. Ma per quanto mi riguarda, mi sono già sentito stanco per aver fatto questo progetto per tutta la scorsa settimana, quindi ho deciso di rinunciare a questa funzione. Tuttavia, ho usato l'interruttore originariamente per la funzione di illuminazione per accendere o spegnere il pannello dell'orologio per risparmiare ulteriormente energia, ma alla fine il LED lampeggia quando lo spengo. Il bug diventa una caratteristica? Non lo so (qualcuno lo sa per favore me lo dica sotto).

Al termine della modifica, l'orologio ora dura più di 2 giorni!

Poi ho un problema meno serio con l'orologio. Durante la ricarica, il sensore di capacità impazzirebbe, quindi aggiungo un'altra modalità che non fa assolutamente nulla.

Per quanto riguarda la deriva del tempo, poiché è molto scomodo collegarsi al computer ogni giorno per ripristinarlo, ho aggiunto un'altra modalità che imposterà i minuti a 30 e i secondi a 0. Ciò significa che potresti ripristinarlo a mezz'ora qualsiasi!

Consigliato: