» elettronica » Arduino »Orologio Arduino con sensore di temperatura e senza RTS

Orologio Arduino con sensore di temperatura e senza RTS

Orologio Arduino con sensore di temperatura e senza RTS

Buon pomeriggio, oggi condividerò le istruzioni su come realizzare un orologio con un termometro ambiente. L'orologio funziona Arduino Lo schermo grafico UNO, WG12864B viene utilizzato per visualizzare il tempo e la temperatura. Come sensore di temperatura - ds18b20. A differenza della maggior parte degli altri orologi, non userò RTS (Real Time Clock), ma proverò a fare a meno di questo modulo aggiuntivo.

Per questo fatto in casa Sono richiesti i seguenti componenti:
- Arduino UNO (o qualsiasi altra scheda compatibile Arduino)
- Schermo grafico WG12864B
- sensore di temperatura ds18b20
- Resistenza 4.7 Kom 0.25 W.
- Resistenza 100 ohm 0,25 W.
- Vano batteria per 4 batterie AA "tipo dito"
- Scatola adatta
- Piccolo file
- Smalto per unghie (nero o colorato)
- Un po 'di plastica sottile o cartone
- nastro elettrico
- fili di collegamento
- circuito stampato
- Pulsanti
- saldatore
- Saldatura, colofonia
- Nastro biadesivo

Passaggio 1 Preparazione del contenitore.
Quindi, i nostri orologi dovrebbero trovarsi da qualche parte. Devi trovare una scatola adatta. La cosa principale è che lo schermo WG12864B, Arduino e un piccolo circuito stampato per i pulsanti si adattano al suo interno. La dimensione minima della scatola è 7 x 7 x 10 cm Se si utilizza una piccola scheda Arduino, è possibile inserirla in una scatola e una più piccola, ma descriverò il processo utilizzando Arduino UNO come esempio. Il materiale di cui è composta la scatola è preferibilmente di plastica, se, come il mio, è di ferro, vale la pena prendersi cura dell'isolamento in modo che non ci sia nulla da "girare" all'interno. La plastica è preferibile perché è più facile da tagliare. Con una scatola, è il caso dei nostri orologi, ha deciso. Ora è necessario tagliare una finestra sotto lo schermo di 6,5x4 cm. Se la scatola è di ferro, è estremamente difficile farlo con cura. Non importa come ci provi, ci saranno vernice scheggiata e rugosità vicino al taglio. Pertanto, per prima cosa lo tagliamo, per questo puoi usare il "macinino", un trapano con un ugello per il taglio o una fresa, in generale, di tua scelta, con ciò che è a portata di mano. Successivamente, puliamo i bordi con un file. Dipingiamo tutta la vernice scheggiata con smalto, colore adatto. Il risultato dovrebbe essere il seguente:


Passaggio 2 Preparare la schermata grafica.
Con la connessione dello schermo, a prima vista, sorgono molti problemi e difficoltà. Ma se ti occupi prima dei loro tipi, diventerà molto più facile e comprensibile. Esistono molte varianti e tipi di schermate sul controller ks0107 / ks0108.Tutti gli schermi sono generalmente divisi in 4 tipi:
Opzione A: HDM64GS12L-4, Crystalfontz CFAG12864B, Sparkfun LCD-00710CM, NKC Electronics LCD-0022, WinStar WG12864B-TML-T
Opzione B: HDM64GS12L-5, Lumex LCM-S12864GSF, Futurlec BLUE128X64LCD, display AZ AGM1264F, Displaytech 64128A BC, Adafruit GLCD, DataVision DG12864-88, Topway LM12864LDW, Digitron SG12864JJ64, QY64
Opzione C: Shenzhen Jinghua Display Co Ltd. JM12864
Opzione D: Wintek-Cascades WD-G1906G, Wintek-GEN / WD-G1906G / KS0108B, Wintek / WD-G1906G / S6B0108A, TECDIS / Y19061 / HD61202, Varitronix / MGLS19264 / HD61202

L'elenco non è completo, ce ne sono molti. Il più comune e, a mio avviso, conveniente WG12864B3 V2.0. Il display può essere collegato ad Arduino tramite una porta seriale o parallela. Se utilizzato con Arduino UNO, è meglio scegliere una connessione con porta seriale, quindi sono necessarie solo 3 uscite del microcontrollore, anziché un minimo di 13 linee quando collegate tramite una porta parallela. Tutto è collegato abbastanza semplicemente. C'è un'altra sfumatura, in vendita puoi trovare due versioni di display, con un potenziometro incorporato (per regolare il contrasto) e senza di esso. Ho scelto e ti consiglio di fare lo stesso con il built-in.


Ciò riduce il numero di parti e i tempi di saldatura. Vale anche la pena mettere un resistore limitatore di corrente di 100 Ohm per la retroilluminazione. Collegando direttamente 5 volt, esiste il rischio di bruciare la retroilluminazione.
WG12864B - Arduino UNO
1 (GND) - GND
2 (VCC) - + 5 V.
4 (RS) - 10
5 (R / W) - 11
6 (E) - 13
15 (PSB) - GND
19 (BLA) - attraverso la resistenza - + 5V
20 (BLK) - GND

La cosa più conveniente è raccogliere tutto dietro lo schermo ed emettere 5 fili da esso per collegarsi all'Arduino UNO. Il risultato dovrebbe essere qualcosa del genere:


Per coloro che scelgono ancora una connessione parallela, fornirò una tabella delle connessioni.


E il layout per le schermate dell'opzione B:


Passaggio 3 Collegare il sensore di temperatura.
Come ho già detto, utilizzeremo il sensore integrato DS18B20 per misurare la temperatura. L'ho scelto per la sua elevata precisione di misura, l'errore non è superiore a 0,5 ° C. Il sensore è calibrato al momento della produzione; non sono necessarie ulteriori impostazioni. Intervallo di misurazione della temperatura -55 ... + 125 ° C. Esistono due modalità di funzionamento: con una fonte di alimentazione esterna e "alimentazione spuria". Quando si opera in modalità di alimentazione esterna, la connessione è la seguente:


Quando si utilizza "alimentazione spuria" il sensore riceve energia dalla linea di comunicazione. In questa modalità, sono sufficienti due fili per collegare il ds18b20 al microcontrollore. Il condensatore interno del sensore viene caricato a causa di energia sulla linea di comunicazione a un livello basso sul bus. La modalità "nutrizione parassitaria" ha molte caratteristiche e quindi non consiglio di usarla. Ma se decidi ancora di usarlo, ecco il diagramma:


Oppure puoi usare uno schema elettrico migliorato quando usi "potere spurio":


Diversi sensori possono essere inclusi su una linea di comunicazione. Per i nostri orologi uno è abbastanza. Colleghiamo il filo dal pin "DQ" ds18b20 al "pin 5" Arduino UNO.

Passaggio 4 Preparazione di una lavagna con pulsanti.
Per impostare l'ora e la data sull'orologio, utilizzeremo tre pulsanti. Per comodità, saldare i tre pulsanti sul circuito stampato e cablare.


Colleghiamo come segue: il filo comune a tutti e tre i pulsanti è collegato all'Arduino “GND”. Il primo pulsante, serve per accedere alla modalità di impostazione dell'ora e cambiare ora e data, connettersi a "Pin 2". Il secondo, il pulsante per aumentare il valore, è "Pin 3", e il terzo, il pulsante per diminuire il valore, è "Pin 4".

Passaggio 5 Mettere tutto insieme.
Per evitare cortocircuiti, isolare lo schermo. In un cerchio avvolgiamo con del nastro adesivo e sul retro fissiamo un nastro biadesivo, tagliato a misura, una striscia di materiale isolante. È adatto cartone spesso o plastica sottile. Ho usato la plastica da una tavoletta di carta. Si è scoperto quanto segue:


Sulla parte anteriore dello schermo lungo il bordo incolliamo un nastro biadesivo su una base di schiuma, preferibilmente nero.


Colleghiamo lo schermo ad Arduino:


Inoltre ci colleghiamo dal vano batteria all'Arduino “VIN”, meno a “GND”. Lo posizioniamo dietro l'Arduino. Prima di installare nella custodia, non dimenticare di collegare il sensore di temperatura e la scheda con i pulsanti.


Passaggio 6 Preparare e riempire lo schizzo.
Un sensore di temperatura necessita della libreria OneWire.
onewire.rar [16.75 Kb] (download: 154)


L'output sullo schermo è tramite la libreria U8glib:
u8glib.rar [906.95 Kb] (download: 156)


Per modificare e riempire lo schizzo, installare queste due librerie. Ci sono due modi per farlo. Basta decomprimere questi archivi e inserire i file decompressi nella cartella "librerie" situata nella cartella con l'IDE Arduino installato.Oppure la seconda opzione è installare la libreria 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, seleziona 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.

Il sensore di temperatura funziona secondo il protocollo One Wire e ha un indirizzo univoco per ciascun dispositivo: un codice a 64 bit. Ogni volta, cercare questo codice è impraticabile. Pertanto, è necessario innanzitutto collegare il sensore ad 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 sketch Arduino_WG12864B_Term, cerca la riga:

byte addr [8] = {0x28, 0xFF, 0xDD, 0x14, 0xB4, 0x16, 0x5, 0x97}; // indirizzo del mio sensore 


Annotiamo l'indirizzo del tuo sensore tra parentesi graffe, sostituendo l'indirizzo del mio sensore.

Photo:

//u8g.setPrintPos (44, 64); u8g.print (sek); // Stampa i secondi per verificare la correttezza del corso


Visualizza i secondi accanto a "Dati". Ciò è necessario per impostare con precisione l'andamento del tempo.
Se l'orologio ha fretta o è in ritardo, è necessario modificare il valore nella riga:

if (micros () - prevmicros> 494000) {// modifica in un altro per la regolazione era 500.000


Ho determinato sperimentalmente il numero con cui l'orologio procede in modo abbastanza preciso. Se il tuo orologio ha fretta, dovresti aumentare questo numero; se sono indietro, diminuiscilo. Per determinare l'accuratezza del corso e aver bisogno di una conclusione secondi. Dopo aver calibrato con precisione il numero, i secondi possono essere commentati e quindi rimossi dallo schermo.

Riempi lo schizzo.
arduino_wg12864b_term.rar [3.64 Kb] (download: 314)

7
9
5.3

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

Ti consigliamo di leggere:

Passalo per lo smartphone ...