Ciao a tutti e buona giornata o serata. Questa volta condividerò le istruzioni per realizzare un orologio da camera con un termometro. Il centro di calcolo dell'orologio sarà Attiny85, assemblato su una scheda di Digispark. Per visualizzare l'orologio - Display Oled. Termometro: il noto ds18b20. Per l'alimentazione, prendiamo gli ioni di litio 18650 (possono essere ottenuti da una vecchia batteria da un laptop). E aggiungi un display del livello della batteria. Come in tutti i miei orologi precedenti, faremo a meno del modulo RTC (real time clock).
Raccogliamo tutto ciò che è necessario:
- Digispark Attiny85 (versione micro USB)
- ds18b20 (in una custodia di plastica)
- Schermo Oled con una risoluzione di 128x64, I2C
- 2 batterie 18650 o una vecchia batteria Li-ion per laptop
- Resistori (3,3 kΩ, 4,7 kΩ, 10 kΩ)
- Plastica sottile (per alloggiamento)
- Collegamento di fili di diversi colori
- Programmatore ISP (o qualsiasi Arduino a pagamento)
- Pulsante
- Connettori Dupont 2,54 mm "madre", "padre"
- Coltello da cancelleria, nastro biadesivo, nastro elettrico, hotmelt
- Tutto per la saldatura (saldatore, colofonia, saldatura)
Passaggio 1 Caso.
La futura cassa dell'orologio sarà realizzata in plastica sottile. Puoi acquistare un foglio di tale plastica in un negozio specializzato o ordinare su aliexpress. E puoi (non aspettare e non guardare) per andare in ufficio e comprare una cartella di carta di plastica del tuo colore preferito. Dimensioni del futuro orologio: larghezza - 40 mm, spessore - 30 mm, altezza - 70 mm. Secondo lo schema seguente, tagliamo una scansione dalla plastica:
Tagliamo lungo linee spesse, pieghiamo delicatamente lungo linee sottili. Ritagliamo il rettangolo nel mezzo usando un coltello clericale, questa è una finestra per la visualizzazione. Di conseguenza, otteniamo una scansione della plastica:
Passiamo ad Attiny.
Step 2 Attiny + Oled.
Come ho detto, nel nostro cuore fatto in casa sarà Attiny 85. È meglio acquistare questo chip, saldato immediatamente alla scheda insieme a un regolatore di tensione e un cablaggio. Digispark Attiny85 è adatto. Scegli la versione con micro-USB sulla scheda. Altre modifiche alla scheda non si adattano alle dimensioni. Succede che questa scheda è venduta con connettori "maschio" Dupon già saldati. In tal caso, saldare tutti i connettori. Raccogliamo fili colorati. Abbiamo bisogno di 10 centimetri in diversi colori. Li abbiamo saldati in Attiny e annotiamo a quale filo corrisponde la conclusione. I fili P0 e P2 devono essere saldati su due fili. La seconda coppia è necessaria per collegare lo schermo Oled. Otteniamo quanto segue:
Ho scritto il seguente diagramma sul filo:
Lo schermo è piccolo (per abbinare il controller), ma sembra bello. OLED (diodo organico a emissione di luce) è un display grafico. Non c'è retroilluminazione e invece ogni pixel è un LED indipendente. Dimensioni dello schermo - 0,96 pollici.Risoluzione 128x64. Collegato tramite bus I2C. Utilizza solo due fili per connettersi con Attiny. Sono disponibili in diversi colori, scegli a tuo gusto. Mi è piaciuto il blu con una striscia gialla nella parte superiore. Agiamo in modo simile a Digispark. Se sono presenti connettori saldati, saldarli. Saldare, per ora, solo i cavi di alimentazione:
Fare attenzione durante la saldatura, non danneggiare il cavo con un saldatore sul display:
Colleghiamo le schede usando nastro biadesivo:
Abbiamo saldato insieme i display Digispark Attiny e Oled secondo lo schema (i colori dei fili possono variare, l'importante è non confondere con le conclusioni):
Per comodità e ordine raccogliamo tutti i fili insieme. Puoi attorcigliarli con del nastro isolante per non confonderti:
Alla fine di tutti i fili, colleghiamo il connettore “femmina” Dupont, lo inseriamo negli isolanti e lo avvolgiamo insieme con del nastro isolante per realizzare il connettore. Registriamo anche la piedinatura del connettore:
La piedinatura dovrebbe essere così, poiché in futuro collegheremo un filo per il firmware o altri elementi dell'orologio al connettore.
Incolliamo la struttura risultante nel caso e non dimentichiamo di incollare il caso stesso, lasciando un gemito non incollato, per ulteriori manipolazioni:
Durante l'incollaggio, prestare attenzione che lo schermo sia uniforme:
Passo 3 Potenza.
Per il potere useremo due elementi agli ioni di litio. Digita 18650. Puoi acquistarli separatamente. In questo caso, saldarli in parallelo, isolare ed emettere il connettore per il collegamento e la successiva ricarica:
Molti hanno laptop più vecchi. Sia che non lavorino più né lavorino nel tempo. Anche se la batteria del laptop è già scarica e non è adatta all'uso previsto, può essere utilizzata per tutti i tipi di prodotti fatti in casa. Nel nostro caso, per un orologio. Prendiamo la batteria dal laptop:
La cosa principale è che è Li-ion. Lo smontiamo con cura, è necessario aprire la custodia in plastica, in modo da non danneggiare l'elemento interno. Molto spesso, la batteria è divisa in due elementi collegati in parallelo. Li estraiamo e separiamo una coppia dal resto:
È meglio saldare ai cuscinetti di contatto:
Incolla questa coppia sul retro dell'orologio:
Passaggio 4 Determinazione della carica della batteria.
Una comoda funzione dell'orologio è quella di indicare la carica della batteria. Determineremo il grado di carica in base alla tensione. La tensione minima per queste batterie è di 2,4 V. Non può essere ulteriormente scaricata. La tensione massima è di 4,2 V.
La misurazione della tensione sulla porta analogica è sempre relativa ad un'altra tensione. Non è possibile utilizzare il pin AREF del microcontrollore, che serve per impostare la tensione di riferimento. È anche impossibile misurare la tensione rispetto alla tensione di alimentazione (il rapporto sarà sempre lo stesso). Pertanto, determineremo la tensione in relazione alla tensione di riferimento interna o Vbg (tensione di riferimento di Bandgap). È 1,1 V. Ora dobbiamo calcolare il divisore di tensione per la nostra batteria, in modo che alla massima carica (4,2 V) il divisore avesse (1,1 V). Puoi calcolare con la formula:
Oppure usa
R1 assume un valore nominale di 10 kOhm. Quindi R2 otteniamo 3,55 KOhm, il più adatto adatto dai valori standard di 3,3 KOhm, e lo prendiamo. Vengono misurate tra la tensione interna e GND, quindi la resistenza da 3,3 KΩ è saldata al meno e 10 KΩ al positivo. Posizioniamo i resistori sulla batteria, ritiriamo il filo dal divisore.
Isoliamo tutti i contatti per evitare cortocircuiti:
Il filo del divisore verrà collegato al PB4.
Passaggio 5 Misurare la temperatura.
Un eccellente complemento all'orologio è la misurazione della temperatura ambiente. Useremo il sensore di temperatura integrato DS18B20. Per funzionare con esso, è necessario solo un filo (molto utile quando si utilizza Attiny 85). Tutte le misurazioni vengono eseguite da solo, il controller centrale non dà fastidio (Attiny 85 ha anche una memoria eccellente e così poco), dobbiamo solo dare comandi e ottenere risultati. Esistono diversi schemi per il collegamento di questo sensore, utilizzeremo l'opzione ottimale per questo caso, secondo me.Uso dell'alimentazione esterna e una resistenza da 4,7 kΩ:
Saldare i fili piccoli e fissare i connettori
Il filo proveniente dal sensore DQ è collegato al PB 3.
Passaggio 6 Pulsante.
Abbiamo poche conclusioni, ma ci sono molti requisiti per gli orologi. Useremo un pulsante per impostare l'ora. Non possiamo contare di più. Saldare i fili sul pulsante, un contatto da esso a GND. Combina con il nostro sensore di temperatura:
Il secondo contatto dal pulsante è collegato al PB 1.
Passaggio 7 Preparazione dell'ambiente di sviluppo
Per ulteriore lavoro con lo schizzo, oltre alla sua modifica e riempimento, abbiamo bisogno dell'IDE di Arduino. Scarica questo programma da:
Ora aggiungi supporto per Attiny 85 mercoledì. Apri l'IDE di Arduion e segui il percorso:
File - Impostazioni - "URL Gestione schede aggiuntive" inserisci il link:
https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json
Clicca OK.
Vai a:
Strumenti - Board - Board Manager entra in Attiny e clicca su "attiny di David A. Mellis". Fai clic su "Installa" e lascia mettere il caffè.
E ora sulle biblioteche. Ne hanno bisogno di due:
Per lavorare con il display Oled
Controllo del sensore di temperatura
Dopo aver scaricato questi archivi, scompattali nella cartella "librerie", che è facile da trovare seguendo il percorso di installazione dell'IDE di Arduino.
Passaggio 8 Programmatore.
Digispark Attiny 85 è un'ottima tavola. Progettato per la connessione a un computer USB. E può essere programmato attraverso di esso. Ma Attiny utilizza un software USB, che a sua volta occupa 2 KB di 8 KB di memoria. Questo non ci va bene, e quindi faremo lampeggiare Attiny 85 attraverso l'interfaccia ISP. E qui abbiamo bisogno di un programmatore ISP. Se non c'è, non importa. Prendi l'Arduino. Nel mio caso, Arduino UNO:
Puoi prendere qualsiasi altra scheda compatibile dalla linea Arduino. Ci colleghiamo al computer, apriamo l'IDE di Arduino, selezioniamo la porta com a cui è connessa la scheda Arduino, apriamo lo schizzo negli esempi, Arduino ISP e lo riempiamo nella scheda. Abbiamo anche bisogno di un filo per connetterci rapidamente ad Attiny.
La connessione è la seguente:
D11 - P0
D12 - P1
D13 - P2
D10 - P5
Non dimenticare la nutrizione Attiny.
Passaggio 9 Modificare e riempire lo schizzo.
Scarica lo schizzo
Prima di riempire, è necessario modificare lo schizzo.
Il sensore integrato ds18b20, come accennato in precedenza, funziona utilizzando il protocollo One Wire. Ogni sensore ha il suo indirizzo univoco a 64 bit. Devi trovare l'indirizzo del tuo sensore e scriverlo in uno schizzo. Apri l'IDE di Arduino, segui il percorso:
File - Esempi - Temperatura di Dallas - OneWireSearch.
Riempi lo schizzo in Arduino. Apri il monitor della porta. Dovresti vedere gli indirizzi di tutti i sensori collegati e le loro letture della temperatura. Annotiamo il tuo indirizzo. Apri il mio schizzo e modifica l'indirizzo per il tuo nella riga:
byte addr [8] = {0x28, 0xFF, 0x75, 0x4E, 0x87, 0x16, 0x5, 0x63};
Per regolare l'avanzamento dell'orologio, utilizzare la seguente costante:
if (micros () - prevmicros & gt; [b] 497000 [/ b])
Maggiore è questo valore, più lento è l'orologio.
Per controllo, i secondi vengono visualizzati sullo schermo:
OzOled.printNumber ((long) sek, 0, 7); // uscita secondi per una messa a punto accurata
Commenta questa riga per rimuovere i secondi.
Ora colleghiamo il programmatore o Arduino come programmatore, selezioniamo la porta com, selezioniamo la nostra scheda nel menu Strumenti e impostiamo i seguenti parametri:
Consiglio di amministrazione: Attiny 25/45/85
Processore: Attiny 85
Orologio: interno 16
Quindi seleziona nello stesso menu:
Strumenti - Programmatore - "Arduino come ISP".
E infine:
Schizzo: scarica tramite il programmatore
Step 10 Assemblaggio finale e lancio.
Spegni il programmatore e collega il sensore, l'alimentazione e il pulsante:
Fino a quando non viene configurato il corso esatto dell'orologio, è possibile chiudere la cassa utilizzando la gomma della banca. Al termine, puoi incollarlo.