» elettronica » Arduino »Orologi Oled su Attiny85

Orologi Oled su Attiny85

Buon pomeriggio e di nuovo sono con i miei giocattoli. Oggi vi presento le istruzioni per realizzare orologi piccoli ma carini con un sensore di temperatura ambiente.
Orologi Oled su Attiny85


Elenco di ciò di cui abbiamo bisogno:
- Digispark Attiny85
- Display Oled 128x64 I2C
- sensore di temperatura ds18b20
- Resistenza 4.7 Kom 0.25 W.
- Programmatore ISP o Arduino Scheda firmware Digispark Attiny85
- Tavoletta di plastica con graffetta o foglio di plastica sottile
- fili
- Connettori Dupont “femmina” da 2,54 mm
- Pulsanti 2 pezzi
- Piccolo circuito stampato o piccolo rivestimento
- saldatore
- Saldatura, colofonia
- forbici
- coltello clericale
- Pistola per colla a caldo
- Colla a caldo

Passaggio 1 Selezione dei componenti.
Come controller principale useremo Digispark Attiny85. Ce ne sono diversi tipi. Abbiamo bisogno di una scheda con un connettore micro USB. Il resto non si adatta alla cassa dell'orologio.

Per visualizzare, è necessario un display I2C Oled 128x64. Sono disponibili in diversi colori: bianco, blu, blu con giallo. Attiro la tua attenzione! Il termine "due colori" nella descrizione o nel titolo di questa schermata indica una striscia di un colore nella parte superiore dello schermo e il secondo colore dell'intero schermo rimanente, e non la possibilità di visualizzare due colori con questo schermo! Tutte le schermate di questo tipo mostrano solo un colore, o nella parte superiore una striscia di un colore nella parte inferiore - un altro. Come, ad esempio, quello che userò. La barra in alto è gialla; il resto dello schermo è blu. Puoi scegliere qualsiasi colore ti piaccia.
Abbiamo anche bisogno del sensore di temperatura integrato DS18B20. Non è stato scelto per caso. Innanzitutto, il DS18B20 comunica con il microcontrollore tramite una linea di comunicazione a filo singolo utilizzando il protocollo di interfaccia a 1 filo. Nel nostro caso, questo è importante, poiché le conclusioni di Attiny85 senza sensore sono poche. In secondo luogo, questo sensore è una cifra, ovvero prende tutte le misurazioni e trasmette semplicemente i dati di temperatura senza spendere le risorse di calcolo di Attiny85.

Per il resto, penso che non ci saranno domande, quindi passiamo alla produzione del caso.

Passaggio 2 Montaggio dell'alloggiamento.
La cassa dell'orologio sarà realizzata in plastica sottile. Avevo una tavoletta di plastica con una graffetta sulle mani. È abbastanza duro da mantenere la sua forma e allo stesso tempo può essere tagliato con normali forbici e un coltello da ufficio. È venuto perfettamente.Se non è a portata di mano, è possibile acquistare un tablet in un negozio di articoli per ufficio o trovare la plastica giusta per sostituire il tablet. Facciamo marcature su plastica secondo lo schema:


Taglia tutte le linee continue. Punteggiato - leggermente tagliato con un coltello clericale. Le linee tratteggiate sono pieghe. Come hai già capito, questo è il solito layout del cubo. Successivamente, è necessario saldare i fili sullo schermo, è meglio prendere multicolori e scrivere ciò che porta a cosa. Incollare lo schermo sull'adesivo hot-melt nel mezzo, in modo che il lato anteriore esca dal retro. Come puoi vedere, abbiamo chiuso le designazioni dei pin dello schermo. Pertanto, è stato necessario scriverli. Ho consegnato leggermente il coltello e quindi ho tagliato la parte inferiore del corpo. Non c'è niente di sbagliato in questo, tutto può essere incollato. Ma è meglio non ripetere i miei errori.



Il risultato dovrebbe essere così:


In questo caso è pronto. Puoi comunque tagliare la cover posteriore dalla stessa plastica, ma questo è facoltativo.

Step 3 Abbiamo saldato.
Il nostro caso è piccolo e dobbiamo stiparci molto lì. Pertanto, prendiamo un pezzo di circuito non più grande di 2,8 x 2,8 mm e saldiamo in due pulsanti, un sensore ds18b20, una resistenza e diversi contatti. Secondo il seguente schema:


Non è necessario saldare i fili direttamente su Attiny, poiché è necessario scollegare tutto per il firmware. Il risultato dovrebbe essere qualcosa del genere:



I pulsanti sono necessari per impostare l'ora. L'alimentazione può essere prelevata dalla porta USB del computer. Combinando il più e il meno, rispettivamente:


Se vuoi fare a meno dei cavi, devi trovare una piccola batteria agli ioni di litio. Eccone uno, ad esempio:


Questa batteria si inserisce all'interno della custodia. È solo necessario fornire conclusioni per la carica della batteria.

Passaggio 4 Preparazione del programmatore.
Digispark Attiny85 può essere programmato tramite il connettore micro USB sulla scheda, utilizzando l'IDE Arduino come ambiente di programmazione. Ma allo stesso tempo devi sacrificare 2 KB di memoria per il bootloader. Attiny 85 ha un totale di 8 KB Flash. Il mio schizzo non si adatta al bootloader, quindi devo programmare tramite il programmatore ISP. Non ho un programmatore del genere, ma esiste una scheda Arduino Uno, che userò come programmatore. Se si dispone di un programmatore ISB, è possibile saltare questo elemento. Apri l'IDE di Arduino e compila il nostro schizzo chiamato ArduinoISP nel nostro Arduino Uno. Puoi trovarlo come questo File - Esempi - Arduino ISP. Lo schizzo inizia con un suggerimento su come collegare Arduino al controller programmabile. Invece di Arduino Uno, ci può essere qualsiasi altra scheda Arduino.
// 10: ripristino slave
// 11: MOSI
// 12: MISO
// 13: SCK


Schema di collegamento a Digispark Attiny85:
Arduino UNO - Digispark Attiny85
D11 - P0
D12 - P1
D13 - P2
D10 - P5


Passaggio 5 Preparazione dell'ambiente di programmazione.
Per modificare il firmware e riempire lo schizzo in Attiny 85, è necessario preparare non solo il programmatore, ma anche l'ambiente di programmazione stesso. Per fare ciò, installare l'IDE Arduino dal sito Web ufficiale Arduino.cc e installare anche il componente aggiuntivo Attiny per i microcontrollori tramite il Board Manager.

Avvia l'IDE Arduino, quindi File - Impostazioni - nel campo URL Gestione schede aggiuntive, incolla il collegamento:

https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json


fai clic su OK (puoi inserire diversi collegamenti separati da una virgola in questo campo). Strumenti successivi - Board - Board Manager nel campo filtro, inserire Attiny e fare clic su "attiny di David A. Mellis". Fai clic su Installa e attendi il completamento del download. Ora nel menu Strumenti, seleziona:
Consiglio di amministrazione - Attiny 25/45/85
Processore - Attiny 85
Orologio - interno 16
e selezionare la porta seriale a cui il programmatore ISP o Arduino è collegato come programmatore.
Ho provato molte librerie diverse per lavorare con lo schermo. Secondo me il più conveniente e funzionante su Attiny85: TinyOzOLED.
tinyozoled-master.rar [15.99 Kb] (download: 477)


Un sensore di temperatura necessita della libreria OneWire.
onewire.rar [16.75 Kb] (download: 263)


Installa queste due librerie. È possibile installare librerie di terze parti direttamente nell'ambiente di programmazione. Senza decomprimere gli archivi scaricati, nell'IDE di Arduino, selezionare il menu Sketch - Connect Library. Nella parte superiore dell'elenco a discesa, selezionare la voce Aggiungi libreria .zip. Nella finestra di dialogo che appare, seleziona la libreria che desideri aggiungere. Apri di nuovo il menu Sketch - Connect Library. In fondo all'elenco a discesa dovresti vedere una nuova libreria. Ora la libreria può essere utilizzata nei programmi. Non dimenticare di riavviare l'IDE di Arduino dopo tutto questo.Se ciò non aiuta, decomprimere gli archivi nella cartella "librerie" situata nella cartella con l'IDE di Arduino installato.

Passaggio 6 Modificare e riempire lo schizzo.
Il sensore di temperatura funziona secondo il protocollo One Wire e ha un indirizzo univoco per ciascun dispositivo: un codice a 64 bit. Risorse accurate non sono sufficienti per cercare questo codice ogni volta. Pertanto, è necessario prima collegare il sensore a qualsiasi scheda Arduino, compilare lo schizzo situato nel menu File - Esempi - Temperatura di Dallas - OneWireSearch. Quindi, esegui Strumenti - Port Monitor. Arduino dovrebbe trovare il nostro sensore, scrivere il suo indirizzo e le letture attuali della temperatura. Copiamo o semplicemente scriviamo l'indirizzo del nostro sensore. Apri lo schizzo Attiny85_Oled_SPI_Term_2, cerca la riga:

byte addr [8] = {0x28, 0xFF, 0x75, 0x4E, 0x87, 0x16, 0x5, 0x63}; 


Annotiamo l'indirizzo del tuo sensore tra parentesi graffe, sostituendo l'indirizzo del mio sensore. Successivamente, collega Attiny al programmatore o Arduino come programmatore (questo è descritto nel passaggio 4) e compila lo schizzo. Resta da disconnettere il programmatore e collegare tutto secondo lo schema in 3 passaggi. L'assemblea si presenta in questo modo:


Lo schermo è piccolo, è impossibile impostare sia il tempo che la temperatura in modo che sia visibile. Pertanto, l'orologio cambia l'ora con una lettura della temperatura ogni 10 secondi.
attiny85_oled_spi_term_2.rar [2.33 Kb] (download: 574)

Attiny 85
Votanti totali: 118
9.3
10
8.7

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
13 commento
Vseslav
Grazie, grazie!
L'autore
Buona sera Non ho usato la libreria di Digispart. Hanno un bootloader troppo grande, con esso lo schizzo dell'orologio non si adattava. Ho usato la libreria TinyOzOLED. Lei non ha il russo. In generale, con Attiny 85 è difficile, c'è poca memoria.
Vseslav
Ben pensato e fatto, un piccolo difetto: le iscrizioni in Aglitsky. Possono semplicemente essere scambiati con il russo o è difficile per Digispark farlo?
L'autore
Buon pomeriggio Gli orologi in tempo reale occupano abbastanza spazio, non si adatteranno a questo caso.
Hmm .. perché non mettere un orologio in tempo reale invece di un sensore di temperatura?
L'autore
Un altro suggerimento, un LED è collegato al Digispar Attiny 85 P1, se si utilizza questo pin, considerare la sua presenza. Ho doppiato questo diodo sulla mia scheda, poiché secondo me interferisce solo.
L'autore
Buon pomeriggio Non è necessario eseguire un pull-up con un resistore, poiché la sospensione incorporata in Attiny è inclusa nello schizzo. Porta via la bretella e riprova.
Puoi anche provare un altro schizzo dai miei altri orologi, hanno lo stesso controller e lo stesso schermo e la configurazione viene eseguita con un pulsante:
https://itm.imdmyself.com/14217-chasy-s-termometrom-na-attiny.html
Ospite romano
Buona giornata Grazie per l'idea e il lavoro. Solo le mie mani non sono così o non capisco. I pulsanti di impostazione dell'ora non funzionano normalmente. Ho provato sia il tuo skech che il mio, nel mio ho solo aggiunto la modalità pin dei pulsanti di input e ho passato da 10k a 5V. E in quello e in quello il pulsante non capiva come premere per cambiare. Oppure subisco ritardi o c'è qualcosa che non va nei pulsanti, nel solito orologio.
schermo bello. Ma goloso. La RAM mangia molto.
Sei un maestro! spremere in un tinku85 tale.
L'autore
Hai ragione, fatto un refuso, 2,8 x 2,8 cm
Citazione: maxim0512
Non si adatta più solo alla custodia.
Per area, puoi cento volte più di quanto hai proposto.
L'autore
Non si adatta più solo alla custodia. Ci sono solo due pulsanti, una resistenza e un sensore di temperatura. È tutto perfetto.
... scheda a circuito stampato non più grande di 2,8 x 2,8 mm
Non sarà abbastanza. ))

Ti consigliamo di leggere:

Passalo per lo smartphone ...