ENCICLOPEDIA DELLA RADIOELETTRONICA ED ELETTRICA Funzionamento ADC con porta COM, semplice sistema di acquisizione dati. Enciclopedia dell'elettronica radio e dell'ingegneria elettrica Enciclopedia della radioelettronica e dell'elettrotecnica / Компьютеры Questo articolo è rivolto principalmente ai principianti. Per coloro che hanno deciso di cimentarsi nella creazione di un sistema di acquisizione dati, immettendo segnali analogici in un computer, elaborandoli, ecc. Questo sarà discusso in questo articolo e proveremo a fare tutto da soli. In generale, ci sono poche informazioni su questo argomento su Internet e in letteratura ... Soprattutto se usi il linguaggio Visual Basic. Pertanto, cercherò di colmare, almeno in parte, questa lacuna. Allora, cominciamo... Qualunque sia il tuo obiettivo, devi prima acquistare l'attuale convertitore analogico-digitale (ADC). Inoltre, installa l'ambiente di sviluppo Visual Basic 6.0 sul tuo computer. Devi anche essere in grado di navigare in questo ambiente di sviluppo in modo elementare ... perché. L'articolo è progettato per garantire che il lettore abbia almeno una conoscenza di base della programmazione in Visual Basic. Raccomando anche di leggere la letteratura [1], [3]. Come ADC, consiglio di acquistare TLC549IP. Si tratta di un ADC seriale a 8 bit con un semplice protocollo di comunicazione. Se ne parlerà nell'articolo. Naturalmente, puoi utilizzare altri ADC con le opportune modifiche al circuito e al codice. Puoi leggere di più a riguardo in [1]. Dopo aver esplorato l'ADC, è necessario assemblare l'hardware del nostro sistema di acquisizione dati, vale a dire il circuito mostrato in Fig. 1. Lo schema è stato preso in prestito da [1] con piccole modifiche. Diodi VD1, VD2, VD6 - KD521, eventuali diodi zener per una tensione di stabilizzazione di 3 ... 5 V. Invece di 78L05, è possibile utilizzare KREN5A. Resistori R1, R2 con una tolleranza dell'1% o una selezione tra diversi con il valore di resistenza più vicino possibile. La precisione delle misurazioni dipenderà da loro. Il resistore R3 è preferibilmente multigiro. registrazione: dopo aver alimentato la scheda, misuriamo la tensione al terminale Out dello stabilizzatore DA1. Annotiamo il valore di tensione ottenuto con 3 cifre decimali, ne avremo bisogno in futuro. Al pin 1 del microcircuito DD1, utilizzando il resistore R3, impostiamo la tensione pari esattamente alla metà dello stabilizzatore misurato sul pin Out. Ora affrontiamo la parte software vera e propria. In generale, utilizzare inizialmente interfacce di comunicazione come RS-232, I2C, Micro Ware, ecc. Lo considero inappropriato, perché con una leggera complicazione del codice del programma, la parte hardware può diventare seriamente complicata. Pertanto, utilizzeremo il protocollo di scambio più semplice tratto dal "foglio dati" sull'ADC. Vale a dire, la sua semplice implementazione. Ovviamente non è possibile ottenere un'elevata velocità con un tale protocollo, in questo caso lo stesso Visual Basic impone delle restrizioni, ma è abbastanza adatto per ottenere i primi risultati con un minimo di tempo e fatica, oltre a misurare processi che cambiano relativamente lentamente. Il protocollo di comunicazione dell'ADC TLC549IP è mostrato in Fig. 2. Durante un singolo stato, la conversione effettiva avviene al pin CS (chip select) del convertitore analogico-digitale. L'uscita dei dati inizia a CS basso con l'avvento dell'impulso di clock, un bit per ogni impulso. Per emettere un codice a 8 bit, sono necessari rispettivamente 8 impulsi di clock. Successivamente, CS può essere trasferito in un singolo stato e può essere eseguita la trasformazione successiva. Maggiori dettagli sul funzionamento dell'ADC possono essere trovati in [1]. Da tutto ciò possiamo concludere che è necessario scrivere un programma driver che generi le necessarie sequenze di impulsi al momento giusto, dopodiché possiamo solo ricevere dati. Avviare l'ambiente di sviluppo Visual Basic e creare un progetto EXE standard. Aggiungere un controllo MSComm. Puoi aggiungerlo al pannello dei componenti in questo modo Progetto-->Componenti-->selezionare dall'elencoMicrosoft Comm Controllo 6.0. Posizionalo sul modulo, oltre a 2 etichette e 2 timer. Lascia i nomi come predefiniti. Ora puoi iniziare a scrivere il codice per un semplice voltmetro. Impostiamo le variabili: Dim b1, b2, b3, b4, b5, b6, b7, b8, somma, Ud come singolo Inserisci il codice seguente nella procedura di caricamento del modulo: Private Sub Form_Load () MSComm1.DTREnable = True 'valore iniziale - SC alto Timer1.Interval = intervallo timer 100 ' 1ms Timer2.Interval = intervallo timer 1 ' 100ms MSComm1.Settings = "1200,N,8,1" ' impostazioni di comunicazione MSComm1.CommPort = 1 ' Numero di porta COM MSComm1.PortOpen = True 'apri la porta com End Sub In procedura Timer1 metti il codice: Timer secondario privato1_Timer() MSComm1.DTREnable = False 'Crea CS basso Label2.Caption = "" 'spazzatura per il ritardo iniziale MSComm1.RTSEnable = True '1° clock a impulsi di clock alto If MSComm1.CDHolding = True Allora b1 = 1 Else b1 = 0 'Poll per uno o zero valore all'ingresso CD (uscita ADC) MSComm1.RTSEnable = Falso 'orologio del primo impulso di clock basso MSComm1.RTSEnable = Vero Se MSComm1.CDHolding = True Allora b2 = 1 Altrimenti b2 = 0 MSComm1.RTSEnable = Falso MSComm1.RTSEnable = Vero Se MSComm1.CDHolding = True Allora b3 = 1 Altrimenti b3 = 0 MSComm1.RTSEnable = Falso MSComm1.RTSEnable = Vero Se MSComm1.CDHolding = True Allora b4 = 1 Altrimenti b4 = 0 MSComm1.RTSEnable = Falso MSComm1.RTSEnable = Vero Se MSComm1.CDHolding = True Allora b5 = 1 Altrimenti b5 = 0 MSComm1.RTSEnable = Falso MSComm1.RTSEnable = Vero Se MSComm1.CDHolding = True Allora b6 = 1 Altrimenti b6 = 0 MSComm1.RTSEnable = Falso MSComm1.RTSEnable = Vero Se MSComm1.CDHolding = True Allora b7 = 1 Altrimenti b7 = 0 MSComm1.RTSEnable = Falso MSComm1.RTSEnable = Vero Se MSComm1.CDHolding = True Allora b8 = 1 Altrimenti b8 = 0 MSComm1.DTREnable = True 'Crea CS elevato MSComm1.RTSEnable = Falso 'orologio del primo impulso di clock basso 'traduce i bit in formato decimale utilizzando la formula di scomposizione somma = (b1 * 2^7) + (b2 * 2^6) + (b3 * 2^5) + (b4 * 2^4) + (b5 * 2^3) + (b6 * 2^2) + (b7*2^1) + (b8*2^0) Ud = Format(sum * 5.083 / 255, "##0.000") 'calcola valore proporzionale Label1.Caption = CStr(Ud) & "Volt" 'visualizza il valore ricevuto End Sub Il codice in Timer1 è il driver stesso. Che si ripete periodicamente, genera impulsi di clock e riceve bit di dati. Ud - tensione all'ingresso dell'ADC, se si applicano ADC a 10, 12 bit, il numero 225 verrà sostituito rispettivamente da 1024, 4096. Per ADC a 10, 12 bit, è necessario aggiungere i bit mancanti al codice, guidati dalle loro "schede tecniche". Il valore 5.083 è il valore di tensione che ho ottenuto all'uscita Out dello stabilizzatore. Inserisci qui il tuo valore. Per alimentare la scheda, è possibile utilizzare una fonte separata o alimentarla direttamente dalla porta COM. Per fare ciò, inseriamo il seguente codice nella procedura Timer2: Timer secondario privato2_Timer() MSComm1.Output = Chr(0) & Chr(0) 'creiamo impulsi sul pin TX (3) per alimentare la scheda ADC End Sub Va ricordato che la porta COM non può essere caricata pesantemente ... il massimo su cui puoi contare è 20 mA. In modalità operativa, il circuito consuma una corrente non superiore a 5 mA. Ora collega la scheda alla porta COM ed esegui il progetto. Misurare la tensione al terminale IN dello stabilizzatore DA1, deve essere di almeno 6.5 V. In caso contrario, è necessario utilizzare un alimentatore separato. Modificando la tensione all'ingresso dell'ADC, assicurati che il programma funzioni e mostri la tensione sullo schermo. La precisione della lettura della tensione quando si utilizza un ADC a 8 bit è 20 mV, con un ADC a 10 bit - 5 mV, 12-1.2 mV Un po' di lavoro in Visual Basic e l'applicazione creata con una porta com Come probabilmente hai già capito, per lavorare con la porta com, hai bisogno di un componenteMicrosoft Comm Control ovvero il file MSCOMM32.ocx che, dopo aver installato Visual Basic, si trova nella directory C:\Windows\system32. Perché lo sto facendo, ma al fatto che se copi il tuo programma, senza creare un programma di installazione, su un altro computer che non ha Visual Basic, non funzionerà. Devi anche copiare questo file nella stessa directory del tuo computer, ad es. nel sistema32. Oppure crea un programma di installazione. Ora per alcuni comandi: Il comando che imposta il tasso di scambio dei dati: MSComm1.Settings = "1200,N,8,1" Comando che specifica il numero della porta com MSComm1.PortaComm = 1 Comandi per aprire e chiudere una porta com MSComm1.PortOpen = Vero MSComm1.PortOpen = falso Comandi in uscita + 12V alla gamba corrispondente del connettore com: MSComm1.RTSEnable = True RTS (7) - nome pin e numero pin MSComm1.DTREnable = Vero DTR(4) Comandi in uscita -12V MSComm1.RTSEnable = Falso MSComm1.DTREnable = Falso È possibile eseguire il polling per la presenza di uno stato singolo o zero uscite CD (1), CTS (8), DSR (6). Se MSComm1.CDHolding = True Allora (se uno allora...) Se MSComm1.CDHolding = False Allora (se zero allora...) Inviando il codice ASCII Tx (3) di un carattere o una stringa all'output: MSComm1.Output = "A" numeri MSComm1.Output = il numero Chr(10) può variare da 0 a 255 Scrivendo tale comando in un timer e modificando il numero o il simbolo, è possibile creare la modulazione PWM. Maggiori dettagli sui comandi possono essere trovati scaricando la descrizione del controllo Microsoft Comm Control. Ora, avendo questo codice, puoi scrivere un numero di programmi per raccogliere dati. Ad esempio: voltmetro, amperometro, misuratore di temperatura, oscilloscopio semplice, salvataggio dei dati in un file. Le misurazioni possono essere eseguite solo in 1 ms e una volta all'ora e al giorno, monitorando così i processi a lungo termine. Per lavorare con tensioni alternate (passanti per 0), nonché per espandere i limiti di misura, è necessario un amplificatore di ingresso, il cui circuito può essere preso da [1]. Per lavorare con tensione di rete o con dispositivi non isolati galvanicamente dalla rete, è indispensabile effettuare un isolamento ottico del circuito dal computer. Scarica i codici sorgente dei programmi di esempio (8 kB) Letteratura
Autore: =ShooRooP=, evei [cane] mail.ru; Pubblicazione: cxem.net Vedi altri articoli sezione Компьютеры. Leggere e scrivere utile commenti su questo articolo. Ultime notizie di scienza e tecnologia, nuova elettronica: Un nuovo modo di controllare e manipolare i segnali ottici
05.05.2024 Tastiera Seneca Premium
05.05.2024 Inaugurato l'osservatorio astronomico più alto del mondo
04.05.2024
Altre notizie interessanti: ▪ Adattatore Bluetooth per telefoni Motorola ▪ Sistemi di raffreddamento Noctua con tecnologia Active Noise Cancelling ▪ Le prime gare automobilistiche molecolari News feed di scienza e tecnologia, nuova elettronica
Materiali interessanti della Biblioteca Tecnica Libera: ▪ sezione del sito Radiocontrollo. Selezione di articoli ▪ articolo Perisca il mondo, ma sia fatta giustizia. Espressione popolare ▪ articolo Quando sono stati applicati i primi fertilizzanti? Risposta dettagliata ▪ Articolo Rami. Leggende, coltivazione, metodi di applicazione
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 |