Sommario:

L'orologio non così schifoso: 4 passaggi
L'orologio non così schifoso: 4 passaggi

Video: L'orologio non così schifoso: 4 passaggi

Video: L'orologio non così schifoso: 4 passaggi
Video: 4 SITI PAZZESCHI CHE NON DOVRESTI MAI VISITARE 2024, Giugno
Anonim
L'orologio non così da schifo
L'orologio non così da schifo
L'orologio non così da schifo
L'orologio non così da schifo
L'orologio non così da schifo
L'orologio non così da schifo

Di davidjwattsdavidjwatts.comSegui di più dell'autore:

PiBot: calcolo del Pi con un Arduino Uno
PiBot: calcolo del Pi con un Arduino Uno
PiBot: calcolo del Pi con un Arduino Uno
PiBot: calcolo del Pi con un Arduino Uno

Primo, perché chiamarlo Crap Clock? Beh, abbassa le aspettative con la speranza di superarle:-) Scherzo ovviamente, l'orologio rappresenta molti dei miei fallimenti e successi in egual misura. La rappresentazione fisica del perdente in elettronica.

In secondo luogo, questo non è davvero un modo per rendere la "cosa" più una riflessione sulle scelte di design e su tutti i materiali di cui hai bisogno per costruire il tuo.

Il Crap Clock è un orologio che parte da un ATMEGA328 che pilota 82 LED tramite un 74HC595 che guida le righe e un TLC5940 che assorbe la corrente attraverso le colonne. Poiché DS3231 mantiene il tempo e può essere mantenuto in funzione con i terminali di ingresso della batteria. L'orologio ha diverse "modalità" per visualizzare l'ora, la data, l'anno, la temperatura e poi le modalità per impostare l'ora e la data con i due pulsanti. I LED possono essere oscurati con il TLC5940 e il display dei secondi (LED rosa sopra) può essere utilizzato per visualizzare una lettera contestuale accanto alla modalità in cui si trova l'orologio.

Ci sono un paio di funzioni che non ho usato o che ho tolto dal PCB come la ricarica della batteria agli ioni di litio, l'ho fatto in questa versione per ridurre il costo delle parti e perché il DS3231 assorbe davvero solo una piccola quantità di corrente. Sono ancora presenti pin per il pin INT/SQW dell'allarme DS3231 integrato e un pin del cicalino dell'ATMEGA. Il pin 10 è suddiviso per uso generale e c'è anche un pin analogico disponibile per una funzione come un LDR per alterare la luminosità in base alla luce ambientale.

Ho messo insieme una playlist di tutti i video in cui ricordo di aver parlato o progettato il Crap Clock.

Passaggio 1: Passaggio 1: il PCB e lo schema

Passaggio 1: il PCB e lo schema
Passaggio 1: il PCB e lo schema
Passaggio 1: il PCB e lo schema
Passaggio 1: il PCB e lo schema

Il layout e lo schema del PCB sono stati progettati in Eagle, ci è voluto molto tempo;-) ma è stato anche molto divertente e mi ha insegnato davvero molto sul design. Non preoccuparti, ci sono ancora molti errori se ogni altro progetto che ho fatto, inclusi tutti quelli che non conosco in questo.

Volevo che l'orologio avesse un display a matrice e che tutto esistesse su una scheda, quindi ho iniziato a creare una scheda rotonda per emulare un orologio analogico. Sì…. che non si attaccava, era una forma terribile da aggirare e richiedeva milioni (forse centinaia) di LED. Successivamente ho deciso di realizzare un display in stile matrice utilizzando i LED, originariamente tutti pilotati con registri a scorrimento (il venerabile 74HC595) ma alla fine ho deciso che il familiare driver LED TLC5940 sarebbe stato fantastico per assorbire la corrente da quei LED e dare il fantastico caratteristica dell'attenuazione PWM.

Ecco la distinta base:

1 x 16 MHz cristallo SM49

82 x 0603 LED (praticamente di qualsiasi colore ti piaccia)

1 x Mini USB di tipo B (non necessario, è solo per l'alimentazione che è comunque ripartita sui pin)

7 condensatori da 100nf 0805

9 x 10k 0805 resistori

Condensatori 2 x 10uf 0805 (non sono davvero necessari per essere onesti e quelli 0805 sono costosi)

5 x 1k 0805 resistori

1 x 2k 0805 resistori

5 x 2n3906 SOT23

2 x 22pf 1206 resistori

16 x 470 ohm 0805 resistori

1x74HC595D SO16

1 x ATMEGA328P-AU

1 x DS3231 SO16W

2 interruttori tattili SMD DTSM-3

1 x TLC5940PWP

Passaggio 2: Passaggio 2: il codice di merda

Passaggio 2: il codice di merda
Passaggio 2: il codice di merda

Il codice era un po' un incubo, si è scoperto che codificare un orologio con un display a matrice homebrew non è così facile anche quando si utilizzano un paio di librerie.

Ovviamente non è un gran codice, è un codice di merda. Ma è funzionante e facile da modificare, non ho idea di come creare una libreria, quindi è tutto un po' un disastro ferroviario. Ah ah, ma onestamente sto lavorando per migliorare il mio codice e imparare a creare le mie librerie.

È stato scritto nell'IDE di Arduino e utilizza alcune librerie (Shifter.h, MD_DS3231.h e Tlc5940.h) create da persone molto più intelligenti di me. Dovrai caricarlo con un programmatore, ho usato un Arduino come ISP e l'ho collegato al reset, 11, 12, 13 pin sulla scheda.

I pulsanti:

Ci sono due pulsanti, hanno più funzioni a seconda della modalità in cui si trova l'orologio. Puoi usarli per cambiare la modalità di visualizzazione avanti e indietro, attraverso l'ora, la data, l'anno, la temperatura e quindi per impostare l'ora.

Passaggio 3: Passaggio 3: il caso di merda

"loading="lazy" posso dire che è un po' una schifezza ma ne sono un po' innamorato. La nuova versione del design PCB non ha quegli attraenti cavi bodge;-) Quelli finiti che ho sono basati su le mie schede prototipo.

Sentiti libero di smontarlo, remixarlo e utilizzare tutte le parti che ritieni utili. Sono stato aiutato moltissimo dalle persone della community di YouTube per l'intera durata di questo progetto, quindi alla fine è per tutti.

Consigliato: