» elettronica » Arduino »Orologio con termometro su Attiny

Orologio termometro Attiny

Orologio termometro Attiny



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.


Guarda la valutazione
Voti totali: 13
10
10
10

Aggiungi un commento

    • sorrideresorrisiXaxabeneDONTKNOWyahoonea
      capozeroimbrogliaresìSì-sìaggressivosegreto
      scusaballaredance2dance3perdonoaiutobevande
      arrestoamicibuonogoodgoodfischiodeliquiolinguetta
      fumobattimanicraydeclarederisoriodon-t_mentionscaricare
      caloreadiratolaugh1mdaincontromoskingnegativo
      not_ipopcornpunireleggerespaventarespaventacerca
      schernirethank_youquestoto_clueumnikacutoconcordare
      cattivobeeeblack_eyeblum3arrossirevanterianoia
      censuratospiritosagginesecret2minacciarevittoriayusun_bespectacled
      ShokRespektlolPrevedbenvenutoKrutoyya_za
      ya_dobryiaiutantene_huliganne_othodiFludbandovicino
9 commento
L'autore
L'idea è fantastica. Ho fatto qualcosa al riguardo. Solo a portata di mano c'era una variabile di 5 kΩ. L'ho incluso nella parte inferiore della spalla. E poi sostituito dal permanente più adatto. Ma nelle istruzioni di produzione, penso, scriverlo non è necessario. Perché non fare queste misurazioni più volte.
Non ho visto la necessità di scrivere di prove noiose e lunghe.
Non c'è bisogno di fare nulla di lungo e noioso. Accendi il resistore (2.7 ... 3) kOhm nel braccio inferiore, in sequenza con esso un trimmer da 1 kOhm. Da una fonte di alimentazione regolabile, si immettono i valori estremi della tensione controllata all'ingresso, si regola il punto operativo, quindi, se lo si desidera, è possibile misurare la resistenza del trimmer e sostituirlo con una resistenza costante.
L'autore
A una frequenza di 8 MHz, non ho cercato di avviare l'orologio e di conseguenza misurare l'accuratezza del percorso. Tutte le misurazioni sono state effettuate a 16 dall'interno. Non posso dire neanche del mese. Finora, senza spegnersi, hanno lavorato per un massimo di una settimana. Esperimenti e miglioramenti sono ancora in corso.
L'autore
Per quanto riguarda il partitore di tensione, ci sono davvero molte sfumature ed errori. E la dispersione della resistenza dei resistori e la dispersione della tensione di riferimento. Ho provato di tutto in pratica. Quando si utilizza una resistenza da 3,6 kΩ, anche con una tensione della batteria di 3,9 V, la porta analogica Attiny mostra 1023 (se convertita al 100% in percentuale). Quando si utilizza una resistenza da 3,3 kΩ, il valore della porta analogica diminuisce anche a 4,1 V sulla batteria. Pertanto, ho scritto che la testimonianza è stata ottenuta in modo più accurato, non ho visto la necessità di scrivere su prove noiose e lunghe.
L'autore
Ho impostato l'orologio per una settimana, regolato i suoi progressi ogni giorno o più spesso. Di conseguenza, per un valore di 497343, si precipitano per circa 10 secondi a settimana.
La frequenza può essere ridotta. Non ho modificato il parametro, non c'era bisogno
Bene, e qual è la precisione dell'orologio RC a 8 MHz? Al mese?
e perché Clock: interno 16?
È meglio scegliere meno, quindi le letture sono più accurate.
Non più precisamente, ma semplicemente la tensione di ingresso dovrebbe essere inferiore al riferimento. Inoltre, nel tuo ragionamento non prendi assolutamente in considerazione la diffusione dei parametri: resistori, molto probabilmente, avrai il cinque percento, Vbg = (1,0 ... 1,2) V. Quindi 3,3 kOhm potrebbero rivelarsi troppo grandi, e forse 3,6 kOhm faranno.
L'autore
Se si utilizza la tensione di uscita 3,6, si ottiene 1,11. Anche se non molto, ma più tensione di riferimento. Quando si usano 3.3 - 1.04. È meglio scegliere meno, quindi le letture sono più accurate.
E per quanto riguarda Oh, hai ragione, non ho prestato attenzione a questo piccolo dettaglio.
Dopo aver incollato la custodia, è possibile accedere alla presa di ricarica e ai pulsanti dalla parte inferiore dell'orologio tagliando il coperchio inferiore o semplicemente non attaccandolo.
Quindi R2 otteniamo 3,55 KOhm, il più vicino dai valori standard di 3,3 KOhm,
Niente affatto. L'E24 più vicino nell'intervallo standard è 3,6 kOhm. E comunque, non "KOhm, ma" KOhm.
Fino a quando non viene configurato il corso esatto dell'orologio, è possibile chiudere la cassa utilizzando la gomma della banca. Al termine, puoi incollarlo.
Come ricaricheremo la batteria?
E come manipolare il pulsante?

Ti consigliamo di leggere:

Passalo per lo smartphone ...