Sommario:

Orologio meccanico con display a sette segmenti: 7 passi (con immagini)
Orologio meccanico con display a sette segmenti: 7 passi (con immagini)

Video: Orologio meccanico con display a sette segmenti: 7 passi (con immagini)

Video: Orologio meccanico con display a sette segmenti: 7 passi (con immagini)
Video: Display 4 digit a 7 segmenti con Arduino e SN7447 - Video 521 2024, Dicembre
Anonim
Orologio meccanico con display a sette segmenti
Orologio meccanico con display a sette segmenti
Orologio meccanico con display a sette segmenti
Orologio meccanico con display a sette segmenti

Un paio di mesi fa ho costruito un display meccanico a 7 segmenti a due cifre che ho trasformato in un conto alla rovescia. È uscito abbastanza bene e un certo numero di persone ha suggerito di raddoppiare il display per creare un orologio. Il problema era che stavo già esaurendo l'IO PWM sul mio Arduino Mega e non avevo abbastanza disponibili per la seconda o la terza cifra. Sono stato quindi indicato nella direzione di questi driver PWM a 16 canali PCA9685 che operano su un'interfaccia I2C. Questi hanno permesso di pilotare i 28 servi di cui avevo bisogno tutti usando i due pin I2C su un Arduino. Quindi mi sono messo al lavoro per costruire un orologio che ora utilizza un modulo orologio in tempo reale DS1302 per mantenere l'ora e due servoazionamenti a 16 canali per controllare i 28 servi utilizzati per comporre il display, tutti alimentati da un Arduino Uno.

Se ti piace questo Instructable, per favore considera di votarlo nel concorso Clocks

Forniture:

Per costruire il tuo orologio, avrai bisogno dei seguenti materiali di consumo oltre ad alcuni strumenti di base:

  • Arduino Uno - Acquista qui
  • Modulo orologio DS1302 - Acquista qui
  • 2 x servoazionamenti PCA9685 16 canali - Acquista qui
  • 28 x micro servi - Acquista qui
  • Cavo a nastro - Acquista qui
  • Strisce di intestazione pin maschio - Acquista qui
  • Strisce di intestazione pin femmina - Acquista qui
  • MDF da 3 mm - Acquista qui
  • Vernice spray nera - Acquista qui
  • Circuito di eliminazione della batteria 5V 5A - Acquista qui
  • Alimentatore 12V - Acquista qui

Per questo progetto avrai anche bisogno di alcune parti stampate in 3D. Se non hai già una stampante 3D e ti piace fare cose, dovresti assolutamente considerare di acquistarne una. Il Creality Ender 3 Pro utilizzato qui è conveniente e produce stampe di qualità piuttosto buona per il suo prezzo.

  • Stampante 3D usata - Acquista qui
  • Filamento - Acquista qui

Passaggio 1: stampa 3D dei componenti in plastica

Stampa 3D dei componenti in plastica
Stampa 3D dei componenti in plastica
Stampa 3D dei componenti in plastica
Stampa 3D dei componenti in plastica
Stampa 3D dei componenti in plastica
Stampa 3D dei componenti in plastica

Ho progettato i display a 7 segmenti per essere il più semplice possibile. Il servo è anche la staffa di supporto per sostenere il segmento sopra di esso. Sono necessari due componenti stampati in 3D per ciascun segmento, un blocco spaziatore per supportare il lato inferiore del servo e il segmento del display che si incolla direttamente sul braccio del servo.

Scarica i file di stampa 3D - Orologio meccanico con display a 7 segmenti File di stampa 3D

Stampa i segmenti e i punti del servo utilizzando un PLA di colore brillante. Ho usato il verde traslucido, ma anche il rosso, l'arancione o il giallo dovrebbero andare bene. Ho usato PLA nero per i blocchi distanziatori e i supporti dei punti in modo che non siano visibili quando i segmenti vengono ruotati in posizione off.

Se non hai accesso a una stampante 3D, prova uno dei servizi di stampa online. Sono disponibili numerosi servizi a prezzi accessibili che stamperanno i componenti e li consegneranno a casa tua in pochi giorni.

Passaggio 2: prepara le schede di controllo e il cablaggio

Prepara le tue schede di controllo e il cablaggio
Prepara le tue schede di controllo e il cablaggio
Prepara le tue schede di controllo e il cablaggio
Prepara le tue schede di controllo e il cablaggio
Prepara le tue schede di controllo e il cablaggio
Prepara le tue schede di controllo e il cablaggio
Prepara le tue schede di controllo e il cablaggio
Prepara le tue schede di controllo e il cablaggio

Dovrai usare due driver PWM a 16 canali PCA9685 per pilotare i tuoi 28 servocomandi di clock. Ho separato i servi nelle cifre dell'ora e dei minuti, con ogni coppia di cifre guidata da una scheda. Quindi ho una scheda che controlla i servi per le due cifre delle ore e la seconda che controlla i servi per le due cifre dei minuti.

Per concatenare i due, dovrai creare un connettore per cavo a nastro a 6 fili e saldare una seconda striscia di intestazione sull'altra estremità della prima scheda di controllo del servo. Dovrai anche modificare l'indirizzo I2C sulla seconda scheda in modo che sia diverso dalla prima e identificabile in modo univoco.

Dovrai anche realizzare il cablaggio per collegare le tre schede (due schede servo e il modulo orologio) al tuo Arduino. Avrai bisogno di 5 V e GND su ciascuna scheda, nonché delle connessioni I2C ai pin A4 e A5 di Arduino (I2C su Arduino Uno) e dei pin del modulo orologio CLK, DAT e RST ai pin 6, 7 e 8 del tuo Arduino rispettivamente.

L'alimentazione viene fornita all'Arduino direttamente dall'alimentatore 12V e ai servi utilizzando il BEC 5V 5A che viene quindi collegato ai due terminali sulla parte superiore del driver PWM. Hai solo bisogno di collegare un servoazionamento all'alimentazione e alimenterà il secondo tramite la connessione del cavo a nastro a 6 fili.

Passaggio 3: assemblare i servi

Assemblare i servi
Assemblare i servi
Assemblare i servi
Assemblare i servi
Assemblare i servi
Assemblare i servi

Una volta stampati i segmenti, dovrai spruzzare il retro e i lati di nero in modo che siano meno visibili quando vengono ruotati di 90 gradi in posizione off.

È quindi necessario incollare i segmenti sui bracci del servo con colla a caldo. Aiuta incollarli sul servo con il braccio già sul servo, in questo modo puoi controllare che li stai incollando dritti e livellati.

Dovrai anche incollare un blocco distanziatore sul fondo di ciascun servo.

Assemblare i punti incollando un piccolo tassello o un bastoncino da kebab nella parte posteriore dei punti e poi nei blocchi di base. Ho spruzzato anche questi bastoncini neri in modo che siano meno visibili se visti da un'angolazione.

Passaggio 4: configurazione e test

Configurazione e test
Configurazione e test
Configurazione e test
Configurazione e test

Ho numerato tutti i servi e ho scritto il numero su ogni cavo in modo che fosse più facile tenerne traccia. Ho iniziato con il segmento superiore sulla cifra delle unità e ho lavorato intorno al segmento centrale sulla cifra delle decine. Questo è anche l'ordine con cui li ho collegati alle schede servocomando, ricordando che gli identificatori sulle schede contano da 0 a 13 e non da 1 a 14.

Ho quindi impostato i segmenti su un tavolo con spazio sufficiente tra di loro per i test in modo che non si spostassero l'uno nell'altro durante l'impostazione dei limiti di viaggio e delle direzioni. Se provi a metterli vicini, probabilmente avrai uno o due tentativi di muoversi nella direzione sbagliata o di superare la corsa ad un certo punto e colpirne un altro che potrebbe danneggiare il segmento, il braccio del servo o mettere a nudo gli ingranaggi sul servo.

Passaggio 5: caricamento del codice

Caricamento del codice
Caricamento del codice
Caricamento del codice
Caricamento del codice
Caricamento del codice
Caricamento del codice

Il codice sembra complicato a prima vista, ma in realtà è relativamente semplice grazie alle due librerie utilizzate. C'è anche molta ripetizione perché ci sono quattro diversi display a 7 segmenti che devono essere aggiornati.

Ecco una descrizione sintetica del codice, dai un'occhiata alla guida completa per una spiegazione più dettagliata e un link per scaricare il codice - Orologio meccanico con display a 7 segmenti

Iniziamo importando due librerie, virtuabotixRTC.h per il modulo clock e Adafruit_PWMServoDriver.h per i servo driver. La libreria Adafruit può essere scaricata e installata direttamente tramite il gestore della libreria nell'IDE.

Creiamo quindi un oggetto per ogni centrale con il relativo indirizzo, uno per le cifre delle ore e uno per le cifre dei minuti.

Abbiamo quindi quattro array per memorizzare le posizioni di accensione e spegnimento per ciascun servo. Dovrai apportare modifiche a questi numeri nei prossimi passaggi per assicurarti che i tuoi servi siano in posizione verticale quando sono accesi, ruotati di 90 gradi quando sono spenti e non superino la corsa.

Un array di cifre memorizza le posizioni di ciascun segmento per ciascuna cifra da visualizzare.

Quindi impostiamo il modulo orologio e creiamo variabili per memorizzare le singole cifre attuali e passate.

Nella funzione di configurazione avviamo e impostiamo le schede di controllo PWM e aggiorniamo l'ora se necessario. Quindi eseguiamo un ciclo per impostare il display su 8 8: 8 8 in modo da conoscere la posizione iniziale di tutti i servi. Questo è anche usato per impostare i servi in modo che siano tutti rivolti correttamente verso l'alto.

Nel ciclo principale otteniamo l'ora aggiornata dal modulo orologio, la versiamo nelle quattro cifre e poi controlliamo se l'ora è cambiata dall'ultimo controllo. Se l'ora è cambiata, aggiorniamo il display e quindi aggiorniamo le cifre precedenti.

Nella funzione di visualizzazione degli aggiornamenti, spostiamo prima i segmenti centrali. Questo viene fatto prima perché è necessaria una logica per spostare leggermente i due segmenti superiori adiacenti al segmento centrale prima di spostare il segmento centrale, altrimenti li urterà. Una volta spostati i segmenti centrali, i segmenti rimanenti vengono spostati nelle posizioni corrette.

Passaggio 6: assemblaggio dell'orologio sul pannello posteriore

Assemblaggio dell'orologio sul pannello posteriore
Assemblaggio dell'orologio sul pannello posteriore
Assemblaggio dell'orologio sul pannello posteriore
Assemblaggio dell'orologio sul pannello posteriore
Assemblaggio dell'orologio sul pannello posteriore
Assemblaggio dell'orologio sul pannello posteriore

Una volta terminato il test, ho assemblato i servi sulla scheda posteriore utilizzando il layout sopra come guida.

L'area bianca è la dimensione complessiva della scheda, il grigio più chiaro è l'area che circonda ogni cifra in cui si muovono i segmenti del servo e il contorno sull'area grigio scuro è la linea centrale per i 6 segmenti esterni per ogni cifra.

Ho tagliato il tabellone, segnato il layout e poi incollato le cifre in posizione per comporre il quadrante dell'orologio.

Quindi ho praticato dei fori vicino a ciascun servo e ho fatto passare i fili sul retro della scheda in modo che fossero meno visibili.

Ho montato l'elettronica sul retro dell'orologio con del nastro biadesivo.

Passaggio 7: configurazione e funzionamento finali

Configurazione e funzionamento finali
Configurazione e funzionamento finali
Configurazione e funzionamento finali
Configurazione e funzionamento finali
Configurazione e funzionamento finali
Configurazione e funzionamento finali
Configurazione e funzionamento finali
Configurazione e funzionamento finali

Una volta che i servi erano tutti pronti, ho rimosso tutti i bracci dei servi per le ultime regolazioni alle posizioni dei segmenti. Dovresti accendere l'Arduino in questo stato in modo che 8 8: 8 8 sia visualizzato e quindi scollegare l'alimentazione, questo ricentra tutti i tuoi servi in modo che tu possa rimettere i bracci del servo con i segmenti rivolti il più vicino possibile alla verticale il più possibile.

Dovrai quindi accendere in sequenza il tuo Arduino e apportare modifiche alle posizioni di attivazione e disattivazione del segmento nei quattro array in modo che i servi siano perfettamente verticali quando sono accesi e ruotino di 90 gradi quando sono spenti senza viaggiare eccessivamente. Questo passaggio richiede molto tempo e richiede un po' di pazienza, ma il risultato finale ne vale la pena!

L'orologio può essere lasciato alimentato utilizzando l'alimentatore 12V e 5V BEC ad esso collegato. Se l'alimentazione si interrompe, la batteria del modulo RTC manterrà l'ora in modo che quando l'alimentazione viene ripristinata, l'orologio si reimposti automaticamente all'ora corretta.

Se ti è piaciuto questo Instructable, per favore votalo nel concorso Orologio e fammi sapere eventuali miglioramenti o suggerimenti che puoi fornire nella sezione commenti qui sotto.

Concorso di orologi
Concorso di orologi
Concorso di orologi
Concorso di orologi

Secondo Premio al Concorso Orologi

Consigliato: