ENCICLOPEDIA DELLA RADIOELETTRONICA ED ELETTRICA Cronometro-orologio-termometro multiprogramma. Enciclopedia dell'elettronica radio e dell'ingegneria elettrica Enciclopedia della radioelettronica e dell'elettrotecnica / Regolatori di potenza, termometri, stabilizzatori di calore L'articolo descrive un dispositivo digitale universale basato su un controller PIC in grado di eseguire le funzioni di un timer multiprogramma in grado di controllare quattro carichi, un orologio, una sveglia, un termometro ad ampio raggio e un termostato che fornisce sia riscaldamento che raffreddamento dell'oggetto controllato. Un dispositivo digitale universale, il cui circuito è mostrato in Fig. 1, ha le seguenti specifiche:
Controlla il dispositivo utilizzando una tastiera a 16 pulsanti. È possibile attivare e disattivare il suono della pressione dei pulsanti, impostare la fornitura di segnali sonori, luminosi e di controllo, la possibilità di regolazione individuale del dispositivo per un'applicazione specifica modificando il programma di controllo MK. C'è un'alimentazione di backup dalla batteria ricaricabile integrata. Tutti i parametri impostati durante il lavoro con il dispositivo vengono salvati anche quando l'alimentazione di backup viene disattivata per più di 40 anni. Come si può vedere dallo schema, la base del dispositivo è il controller PIC DD1. Il registro a scorrimento DD2 e il decodificatore DD3 sono progettati per organizzare l'indicazione dinamica, il cui principio è il seguente. Innanzitutto, il codice 3 viene applicato al decodificatore DD1111, a seguito del quale i livelli di registro vengono impostati su tutte le sue uscite. 1 e nessuna delle cifre dell'indicatore HG1 è accesa. Successivamente, il codice del carattere richiesto viene inserito nel registro DD2, dopodiché il codice corrispondente al bit desiderato dell'indicatore viene inviato a DD3. Contemporaneamente all'aggiornamento dei dati per l'indicatore, viene scansionata la tastiera, di cui 16 pulsanti sono divisi in due gruppi, otto ciascuno. Le conclusioni generali dei pulsanti di questi gruppi sono collegate a due ingressi del MK (RB0 e RB1). Quando si preme un pulsante, un segnale di registro viene inviato a uno di questi ingressi. 0 dalla corrispondente uscita del decoder DD3, determinandone così il codice. Utilizzando la tastiera, è possibile avviare/arrestare uno qualsiasi dei timer del programma o tutti contemporaneamente, impostare la modalità di funzionamento del termostato, l'ora corrente, l'ora della sveglia, ecc. La maggior parte dei pulsanti ha un duplice scopo, a seconda delle informazioni fornite dall'utente. entra dalla tastiera: numerica o di controllo . Considera lo scopo dei pulsanti della tastiera in modo più dettagliato. "0", "Orologio" - cifra 0 quando si immettono informazioni numeriche o si passa alla modalità orologio, in cui è possibile modificare l'ora corrente, impostare l'ora di attivazione della sveglia, attivare la modalità sveglia della nuova ora, modificare l'ora coefficiente di correzione (vedi sotto). "1" - "9" - numeri da 1 a 9 quando si immettono informazioni numeriche o si seleziona il timer di programma appropriato. "Term" - passaggio alla modalità termostato, dove è possibile impostare il valore della temperatura corrente, modificare il valore della temperatura controllata, il tipo di regolazione (riscaldamento o raffreddamento) e i parametri del termistore. "Del" - segno "meno" quando si inserisce il valore della temperatura controllata, si accende / spegne il termostato, il termometro, la sveglia o l'orologio (quando sono spenti, vengono visualizzati i segni --- al posto delle letture corrispondenti), azzerando quando inserendo dati numerici. "Imposta" - passaggio/uscita alla modalità di modifica del valore di qualsiasi parametro (timer software, ora corrente, sveglia, termometro, termostato, impostazioni). "Opzioni": passa alla modalità di modifica delle impostazioni. Qui è possibile attivare / disattivare il suono dei pulsanti, la modalità di benvenuto, selezionare le fonti per l'emissione dei segnali di controllo, ecc. "Seleziona" - avvia/arresta il timer software corrente se il suo valore di ritardo è diverso da 0. "AH" - avvia/arresta tutti i timer software il cui valore di ritardo è diverso da 0. Il dispositivo è in grado di emettere quattro segnali di controllo, ognuno dei quali può essere utilizzato a discrezione dell'utente. È possibile impostare la sorgente di questi segnali:
Il dispositivo utilizza un LED bicolore HL1, che lampeggia in rosso se all'avvio di uno o più timer si è attivato almeno un segnale di controllo, e in verde se non ci sono segnali attivi. Al termine del ritardo di uno qualsiasi dei timer in funzione, l'indicatore HG1 inizia a lampeggiare e l'emettitore piezoelettrico HA1 con interruttore incorporato emette un segnale acustico. Ciò continua finché l'utente non preme un pulsante qualsiasi sulla tastiera o passa un certo tempo, il cui valore viene memorizzato nella memoria del MK e può essere modificato durante la sua programmazione. Il segnale sonoro emesso all'attivazione del timer è determinato da due parametri: la durata del suono e il numero di pacchetti sonori. Quando suona la sveglia, vengono emessi anche segnali sonori, ma solo i due simboli più a sinistra dell'indicatore - A e L (dall'inglese ALARM - sveglia) iniziano a lampeggiare. Il segnale sonoro della sveglia è descritto anche da due parametri archiviati nella memoria dell'MK. A seconda del risonatore al quarzo utilizzato, la precisione dell'orologio varia, quindi questo dispositivo implementa la correzione temporale del software. Il coefficiente di correzione viene impostato dall'utente dalla tastiera ed è anche memorizzato nella memoria del MK. Rappresenta infatti il numero di microsecondi che si sommano ai periodi di oscillazione generati dal timer interno del MK – nel nostro caso 1,92 ms. Utilizzando un fattore di correzione, questo tempo risulta pari a 2 ms (ogni 1 periodi di questo tipo viene registrato un periodo di tempo di 500 s). La temperatura viene misurata misurando la caduta di tensione sul termistore RK1. La sua resistenza in funzione della temperatura è determinata dalla seguente formula: dove R0 è una costante avente la dimensione della resistenza; B è una costante avente la dimensione della temperatura; T è la temperatura assoluta. Pertanto, questa dipendenza deve essere ridotta a una dipendenza lineare. Esiste un metodo noto di linearizzazione che utilizza un ponte termistore, ma questo approccio è scomodo perché quando si sostituisce il termistore è necessario modificare i parametri del ponte stesso, il che non è così semplice. Sarebbe più conveniente ottenere il valore della temperatura senza alcuna linearizzazione, ma per questo è necessario calcolare il valore della seguente espressione: dove Rd è la resistenza del resistore aggiuntivo; N - codice binario a 10 bit ottenuto dopo la conversione da analogico a digitale; Un - tensione di alimentazione. Nel dispositivo descritto, questa espressione viene calcolata dal programma di controllo MK e il risultato viene visualizzato sull'indicatore. Va notato che il suddetto intervallo di temperature misurate e controllate (-43 ... +470 ° C) può essere allungato, compresso o spostato in qualsiasi modo. L'intervallo indicato è stato scelto perché l'errore di misurazione della temperatura in esso contenuto non supera ±2 °С. In questo caso, la resistenza del resistore aggiuntivo R17 è di 300 ohm. Per ridurre l'errore, è possibile aumentarlo, tuttavia, di conseguenza, i limiti dell'intervallo di temperatura cambieranno. Per facilità di calcolo, puoi usare documento termine (10 bit).mcd per il sistema MathCAD 2001, che calcola l'intervallo di temperature misurate in base ai parametri specificati del termistore RK1, del resistore R17 e dell'errore richiesto. Per garantire che l'orologio in tempo reale non vada fuori strada quando si spegne l'alimentazione principale, lo strumento è dotato di un alimentatore di riserva MK. È costituito da una batteria GB1 da 3,6 V, un resistore R16 e diodi VD2, VD3. Quando l'alimentazione principale è accesa, il diodo VD3 si chiude e la batteria GB1 viene caricata tramite il resistore R16. Quando l'alimentazione principale è spenta, la tensione della batteria viene fornita tramite il diodo VD3 solo al MK (il diodo VD2 impedisce l'alimentazione di tensione ai restanti elementi del dispositivo). L'MK determina il fatto di un'interruzione di corrente poiché monitora costantemente il livello di tensione sul pin RB2. E quando diventa uguale a log. 0, l'MK smette di rigenerare l'indicatore e di interrogare la tastiera, interrompe tutti i timer software in esecuzione, interrompe la misurazione e la regolazione della temperatura e passa alla modalità orologio. Inoltre, se le impostazioni sono state modificate mentre si lavora con il dispositivo, dopo aver spento l'alimentazione, il LED rosso lampeggerà brevemente, se le impostazioni non sono state modificate, verde. Se si prevede che il dispositivo non verrà utilizzato per un lungo periodo (una settimana o più), per evitare che la batteria si scarichi completamente, è possibile disattivare l'alimentazione di backup utilizzando il ponticello S1. L'MK monitora costantemente lo stato dei contatti dei pulsanti sulla tastiera e, se non è stata effettuata una sola pressione durante il tempo specificato e non è stato avviato un solo programma timer, passa automaticamente alla modalità orologio. Il programma di controllo MK è scritto in C, quindi può utilizzare facilmente qualsiasi tipo di dati, compresi quelli reali. Il programma è stato sviluppato nel sistema di programmazione HT-PIC C (può essere "scaricato" dal sito ). Per il debug abbiamo utilizzato il più semplice emulatore in-circuit, ovvero un insieme di contatti che collegano le linee della porta parallela del computer alla presa sotto MK sulla scheda principale. La corrispondenza delle conclusioni della porta parallela del computer alle prese della presa MK sulla scheda del timer è riportata nella Tabella. 1. Per controllare l'emulatore, il programma di controllo MK è stato compilato con piccole modifiche nell'ambiente di programmazione Borland C++ 3.1. Sfortunatamente, un tale emulatore funziona su una scala temporale diversa da quella reale, ma senza un tale dispositivo sarebbe quasi impossibile eseguire il debug di un programma così complesso. Senza l'utilizzo di un emulatore è stata implementata solo la conversione da analogico a digitale, la cui descrizione relativa a questo MK può essere trovata sul sito (documento DS30292C - "Modulo ADC a 10 bit nei microcontrollori PIC16F87x"). Consideriamo brevemente i punti principali del programma di controllo MC. È scritto utilizzando la metodologia di programmazione strutturata, per cui ha un gran numero di subroutine. Dopo aver acceso l'alimentazione, l'MK configura le porte I/O, l'ADC e il timer interno. Quindi inizia l'esecuzione del ciclo principale, che è infinito. In esso, come già accennato, viene costantemente controllata la presenza della tensione di alimentazione principale e, se viene spenta, l'MK cessa di svolgere tutte le funzioni tranne la temporizzazione. Quando l'alimentazione principale è accesa, viene visualizzata la schermata iniziale e si torna alla modalità operativa. Le informazioni che dovrebbero essere visualizzate sull'indicatore nel momento corrente sono memorizzate nell'array d. Nel processo di rigenerazione dell'indicatore, l'MC riscrive il suo contenuto in un array intermedio e da esso legge in sequenza i codici dei caratteri di output e li visualizza sull'indicatore. Viene introdotto un array aggiuntivo per eliminare lo sfarfallio dell'indicatore derivante dalla scrittura di nuove informazioni nell'array d prima che quella vecchia non sia ancora completamente visualizzata. Ad esempio, supponiamo che l'array d inizialmente contenesse la stringa "ABCDEFHLP" e quando viene visualizzato il quarto carattere ("D"), nell'array viene inserita la stringa "FDA 2002". Quindi l'utente del dispositivo, a causa dell'inerzia della visione umana, ad un certo punto vedrà la riga "ABC 2002". Inoltre, se tali processi vengono ripetuti costantemente (e questo sarà il caso nel lavoro reale), la persona avrà l'impressione che le informazioni sull'indicatore tremolano. Come notato, la tastiera viene scansionata contemporaneamente all'aggiornamento dell'indicatore. Quando si preme un pulsante qualsiasi, viene richiamata la subroutine di soppressione del rimbalzo dei contatti, che ritarda di alcuni millisecondi (il valore di questo tempo è memorizzato nella memoria MK), durante i quali il dispositivo non risponde ad ulteriori pressioni dei pulsanti. Da notare inoltre che il tempo di esposizione dei timer, orologi e sveglie software è impostato in secondi (il contaore viene azzerato quando viene raggiunto il valore 24 x 60 x 60 = 86400), e prima di essere visualizzato sull'indicatore viene convertito al formato H: MM: SS per i timer o al formato HH: MM per orologio e sveglia. Questo viene fatto utilizzando le seguenti formule: C = tempo mod 60. Qui l'operazione ][ significa scartare la parte frazionaria, cioè la divisione è intera. I valori ottenuti di ore, minuti e secondi non sono ancora adatti per la visualizzazione diretta sull'indicatore, poiché sono presentati in codice binario. Per selezionare le cifre decimali più significative e quelle meno significative è necessario eseguire altre due operazioni su ciascun valore: LSB = valore mod 10. Considera un esempio. Sia necessario visualizzare il valore 8673 s sull'indicatore nel formato H: MM: SS. Noi abbiamo C = 8673 mod 60 = 33. Pertanto, l'indicatore visualizzerà 2 : 24 : 33 Dagli esempi forniti si può vedere quante operazioni devono essere eseguite solo per organizzare l'output verso l'indicatore. Sarebbe quasi impossibile implementare tale matematica nel linguaggio assembly. Nel linguaggio C ciò si realizza in poche righe, mentre, grazie all'alto livello di ottimizzazione, il codice del programma è abbastanza compatto e veloce. Ma la cosa più importante è che il programmatore possa concentrare la sua attenzione principale sull'algoritmo del programma, astraendo dalle caratteristiche specifiche dell'architettura del microcontrollore applicato. Tutto ciò contribuisce al facile trasferimento del programma da un MK all'altro. Il testo sorgente del programma MK e i codici "firmware" in formato Intel HEX si trovano in Internet all'indirizzo sopra indicato. Per programmare l'MK, l'autore ha utilizzato un programmatore assemblato secondo il circuito mostrato in Fig. 2, e il software PonyProg2000, la cui ultima versione può essere "scaricata" dal sito . La differenza principale tra il programmatore e quello descritto in [1] è l'aggiunta di un transistor in più (VT3) al circuito di generazione del segnale di sincronizzazione, che aumenta l'affidabilità della programmazione eliminando completamente la tensione negativa ai terminali MC. Il dispositivo descritto consente la programmazione MK sulla scheda, ovvero supporta la tecnologia ICSP (In-Circuit Serial Programming - programmazione seriale in-circuit). Per fare ciò è collegato tramite cinque fili al programmatore tramite il connettore X1 come segue: 7 - comune; 5,6 - 5 V; 2-SDA; 3 - SCL; 1 - Upprogr. È possibile utilizzare altri programmatori, compresi quelli che supportano la programmazione a bassa tensione. In quest'ultimo caso è necessario collegare inoltre il corrispondente contatto del programmatore al pin 4 del connettore X1. Un disegno della scheda a circuito stampato del dispositivo è mostrato in fig. 3, tastiere - in fig. quattro. Sulla scheda del timer sono presenti sette fori nei quali, prima di montare le parti, vengono inseriti pezzi di filo stagnato e saldati ai conduttori stampati su entrambi i lati della scheda. La funzione dei ponticelli viene eseguita anche dalle conclusioni di alcune parti. I fori attraverso i quali vengono realizzati tali collegamenti di conduttori stampati sono evidenziati in fig. 3 con quattro punti trasversali. I file sorgente del progetto e la libreria dei componenti utilizzati per CAD Accel EDA 15.0 si trovano nel sito sopra indicato. Il dispositivo utilizza resistori e condensatori fissi per il montaggio su superficie. L'eccezione sono i condensatori all'ossido C6, C7 (K50-35). MK PIC16F876 può avere qualsiasi frequenza operativa massima e intervallo di temperatura, l'importante è che sia in un pacchetto DIP (aveva un suffisso SP). L'emettitore piezoelettrico HRM14AX può essere sostituito da un'unità composta da tre elementi del microcircuito KR1533LAZ e un emettitore piezoelettrico ZP-18 [2]. Termistore RK1 - MMT-4 con resistenza nominale di 15 kOhm (R0 = 0,294 Ohm, V = 3176 K). Come connettori X1 - XZ vengono utilizzati blocchi divisi con perni diritti, che vengono utilizzati nella tecnologia informatica: per X1 viene utilizzato un blocco con una disposizione di perni a due file e per X2 e XZ - con una singola fila. L'ottavo contatto della spina XP1 e la terza spina XP2 sono stati rimossi e le spine sono state inserite nelle prese corrispondenti delle parti accoppiate dei connettori: pezzi di lenza spessa. Questa misura impedirà l'accoppiamento errato dei connettori. La presa del connettore X2 è costituita da un pannello da 20 slot per un microcircuito in un pacchetto DIP (ne viene utilizzata una parte, che ha 10 pin). Pulsanti SB1-SB16 - TS-A3PS-130. Il contenuto della EEPROM MK, che può essere modificato per impostare altri parametri di funzionamento, è presentato nella Tabella. 2. La colonna "Parametro" contiene il nome del parametro, che viene visualizzato sull'indicatore. Se in questa colonna è presente un trattino, questo parametro può essere modificato solo durante la programmazione del MK. Letteratura
Autore: D.Frolov, Ryazan Vedi altri articoli sezione Regolatori di potenza, termometri, stabilizzatori di calore. Leggere e scrivere utile commenti su questo articolo. Ultime notizie di scienza e tecnologia, nuova elettronica: Macchina per diradare i fiori nei giardini
02.05.2024 Microscopio infrarosso avanzato
02.05.2024 Trappola d'aria per insetti
01.05.2024
Altre notizie interessanti: ▪ Antiquark e rotazione protonica ▪ Pannelli solari sulle ali degli aerei News feed di scienza e tecnologia, nuova elettronica
Materiali interessanti della Biblioteca Tecnica Libera: ▪ sezione del sito Meraviglie della Natura. Selezione dell'articolo ▪ articolo Kapitsa Sergey Petrovich. Aforismi famosi ▪ articolo Quando e dove venivano usati i piccioni per la fotografia aerea? Risposta dettagliata ▪ articolo videocamera. Segreti di riparazione ▪ articolo Affinamento della guardia. Enciclopedia dell'elettronica radio e dell'ingegneria elettrica ▪ articolo Trucchi spettacolari e i loro indizi. Enciclopedia
Lascia il tuo commento su questo articolo: Tutte le lingue di questa pagina Homepage | Biblioteca | Articoli | Mappa del sito | Recensioni del sito www.diagram.com.ua |