Kostenlose technische Bibliothek ENZYKLOPÄDIE DER FUNKELEKTRONIK UND ELEKTROTECHNIK ADC-Betrieb mit COM-Port, einfaches Datenerfassungssystem. Enzyklopädie der Funkelektronik und Elektrotechnik Lexikon der Funkelektronik und Elektrotechnik / Computer Dieser Artikel richtet sich hauptsächlich an Anfänger. Für diejenigen, die sich entschieden haben, selbst ein Datenerfassungssystem zu erstellen, analoge Signale in einen Computer einzugeben, sie zu verarbeiten usw. Dies wird in diesem Artikel besprochen und wir werden versuchen, alles selbst zu machen. Generell gibt es zu diesem Thema im Internet und in der Literatur recht viele Informationen... Vor allem, wenn Sie die Sprache Visual Basic verwenden. Deshalb werde ich versuchen, diese Lücke zumindest teilweise zu schließen. Also, fangen wir an… Was auch immer Ihr Ziel ist, zuerst müssen Sie den eigentlichen Analog-Digital-Wandler (ADC) kaufen. Installieren Sie außerdem die Entwicklungsumgebung Visual Basic 6.0 auf Ihrem Computer. Sie müssen auch in der Lage sein, sich in dieser Entwicklungsumgebung einfach zurechtzufinden ... weil ... Der Artikel soll sicherstellen, dass der Leser zumindest über Grundkenntnisse der Programmierung in Visual Basic verfügt. Ich empfehle außerdem die Lektüre der Literatur [1], [3]. Ich empfehle den Kauf des TLC549IP als ADC. Dies ist ein serieller 8-Bit-ADC mit einem einfachen Kommunikationsprotokoll. Dies wird im Artikel besprochen. Natürlich können Sie auch andere ADCs mit entsprechenden Änderungen in der Schaltung und im Code verwenden. Mehr dazu können Sie in [1] lesen. Nachdem Sie den ADC gefunden haben, müssen Sie die Hardware unseres Datenerfassungssystems zusammenbauen, nämlich die in Abb. gezeigte Schaltung. 1. Das Schema wurde mit geringfügigen Änderungen von [1] übernommen. Dioden VD1, VD2, VD6 - KD521, beliebige Zenerdioden zur Stabilisierungsspannung 3...5 V. Anstelle von 78L05 können Sie KREN5A verwenden. Widerstände R1, R2 mit einer Toleranz von 1 % oder Auswahl aus mehreren mit dem nächstgelegenen Widerstandswert. Von ihnen hängt die Genauigkeit der Messungen ab. Der Widerstand R3 ist vorzugsweise mehrgängig. Einstellung: Indem wir die Platine mit Strom versorgen, messen wir die Spannung am Out-Pin des DA1-Stabilisators. Den resultierenden Spannungswert notieren wir mit 3 Nachkommastellen, wir werden ihn später noch benötigen. An Pin 1 der DD1-Mikroschaltung stellen wir mit dem Widerstand R3 die Spannung ein, die genau der Hälfte des am Out-Pin gemessenen Stabilisators entspricht. Kommen wir nun zum eigentlichen Softwareteil. Im Allgemeinen verwenden Sie zunächst Kommunikationsschnittstellen wie RS-232, I2C, Micro Ware usw. Ich halte es für unangemessen, weil Bei einer geringfügigen Komplikation des Programmcodes kann die Hardware erheblich komplizierter werden. Daher verwenden wir das einfachste Austauschprotokoll aus dem „Datenblatt“ zum ADC. Nämlich seine einfache Implementierung. Natürlich kann man mit einem solchen Protokoll keine hohe Geschwindigkeit erreichen; die Einschränkungen werden in diesem Fall durch Visual Basic selbst auferlegt, aber es ist durchaus geeignet, mit minimalem Zeit- und Arbeitsaufwand erste Ergebnisse zu erzielen und relativ langsame Änderungen zu messen Prozesse. Das Kommunikationsprotokoll des TLC549IP ADC ist in Abb. dargestellt. 2. Während des Einzelzustands erfolgt die eigentliche Umwandlung am CS-Pin (Chip Select) des A/D-Wandlers. Die Datenausgabe beginnt auf einem niedrigen CS-Pegel mit dem Erscheinen eines Taktimpulses, ein Bit für jeden Impuls. Um einen 8-Bit-Code zu erzeugen, sind 8 Taktimpulse erforderlich. Danach kann CS in einen einzelnen Zustand überführt und die folgende Transformation durchgeführt werden. Weitere Details zur Funktionsweise des ADC finden Sie in [1]. Aus all dem können wir schließen, dass es notwendig ist, ein Treiberprogramm zu schreiben, das die notwendigen Impulsfolgen zum richtigen Zeitpunkt erzeugt, wonach wir nur noch die Daten empfangen können. Starten Sie die Visual Basic-Entwicklungsumgebung und erstellen Sie ein Standard-EXE-Projekt. Fügen Sie das MSComm-Steuerelement hinzu. Sie können es wie folgt zum Komponentenbereich hinzufügen: Projekt-->Komponenten-->aus der Liste auswählenMicrosoft Comm Steuer 6.0. Platzieren Sie es zusammen mit 2 Etiketten und 2 Timern auf dem Formular. Behalten Sie die Namen als Standard bei. Jetzt können Sie mit dem Schreiben von Code für ein einfaches Voltmeter beginnen. Lassen Sie uns Variablen setzen: Dim b1, b2, b3, b4, b5, b6, b7, b8, sum, Ud As Single Fügen Sie den folgenden Code in die Formularladeprozedur ein: Privates Sub Form_Load () MSComm1.DTREnable = True 'Anfangswert – hoher CS-Level Timer1.Interval = 100 ' Timer-Intervall 1 ms Timer2.Interval = 1 ' Timer-Intervall 100 ms MSComm1.Settings = "1200,N,8,1" ' Datenübertragungseinstellungen MSComm1.CommPort = 1 ' COM-Anschlussnummer MSComm1.PortOpen = True ' COM-Port öffnen End Sub Im Verfahren Timer1 gab den Code ein: Privater Sub-Timer1_Timer() MSComm1.DTREnable = False 'Low CS erstellen Label2.Caption = "" 'Müll für die anfängliche Verzögerung MSComm1.RTSEnable = True '1st clock pulse clock high Wenn MSComm1.CDHolding = True, dann b1 = 1, sonst b1 = 0, Abfrage eines oder Nullwerts am CD-Eingang (ADC-Ausgang). MSComm1.RTSEnable = False '1st clock pulse clock low MSComm1.RTSEnable = True Wenn MSComm1.CDHolding = True, dann ist b2 = 1, sonst ist b2 = 0 MSComm1.RTSEnable = Falsch MSComm1.RTSEnable = True Wenn MSComm1.CDHolding = True, dann ist b3 = 1, sonst ist b3 = 0 MSComm1.RTSEnable = Falsch MSComm1.RTSEnable = True Wenn MSComm1.CDHolding = True, dann ist b4 = 1, sonst ist b4 = 0 MSComm1.RTSEnable = Falsch MSComm1.RTSEnable = True Wenn MSComm1.CDHolding = True, dann ist b5 = 1, sonst ist b5 = 0 MSComm1.RTSEnable = Falsch MSComm1.RTSEnable = True Wenn MSComm1.CDHolding = True, dann ist b6 = 1, sonst ist b6 = 0 MSComm1.RTSEnable = Falsch MSComm1.RTSEnable = True Wenn MSComm1.CDHolding = True, dann ist b7 = 1, sonst ist b7 = 0 MSComm1.RTSEnable = Falsch MSComm1.RTSEnable = True Wenn MSComm1.CDHolding = True, dann ist b8 = 1, sonst ist b8 = 0 MSComm1.DTREnable = True 'Erzeuge hohen CS MSComm1.RTSEnable = False '8st clock pulse clock low 'Konvertieren Sie die Bits mithilfe der Erweiterungsformel in das Dezimalformat Summe = (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") 'berechnet den Proportionalwert Label1.Caption = CStr(Ud) & "Volt" 'zeigt den resultierenden Wert an End Sub Der Code in Timer1 ist der eigentliche Treiber. Der sich periodisch wiederholend, Taktimpulse erzeugt und Datenbits empfängt. Ud ist die Spannung am ADC-Eingang; wenn Sie 10 12-Bit-ADCs verwenden, wird die Zahl 225 durch 1024 bzw. 4096 ersetzt. Bei 10 12-Bit-ADCs müssen Sie die fehlenden Bits zum Code hinzufügen , geleitet von ihren „Datenblättern“. Der Wert 5.083 ist der Spannungswert, den ich am Out-Ausgang des Stabilisators erhalten habe. Geben Sie hier Ihren Wert ein. Um das Board mit Strom zu versorgen, können Sie entweder eine separate Quelle verwenden oder es direkt über den COM-Port mit Strom versorgen. Dazu fügen wir den folgenden Code in die Timer2-Prozedur ein: Privater Sub-Timer2_Timer() MSComm1.Output = Chr(0) & Chr(0) 'erzeugen Impulse am TX-Pin (3), um die ADC-Platine mit Strom zu versorgen End Sub Es ist zu beachten, dass der COM-Port nicht stark belastet werden kann. Sie können maximal mit 20 mA rechnen. Im Betriebsmodus verbraucht die Schaltung einen Strom von maximal 5 mA. Verbinden Sie nun das Board mit dem COM-Port und führen Sie das Projekt aus. Messen Sie die Spannung am IN-Pin des DA1-Stabilisators. Sie sollte nicht niedriger als 6.5 V sein. Ist dies nicht der Fall, verwenden Sie eine separate Stromquelle. Stellen Sie durch Ändern der Spannung am ADC-Eingang sicher, dass das Programm funktioniert und die Spannung auf dem Bildschirm anzeigt. Die Spannungsmessgenauigkeit bei Verwendung eines 8-Bit-ADC beträgt 20 mV, bei einem 10-Bit-ADC - 5 mV, 12-1.2 mV Ein wenig über das Arbeiten in Visual Basic und die erstellte Anwendung mit einem COM-Port Wie Sie wahrscheinlich bereits verstanden haben, benötigen Sie für die Arbeit mit einem COM-Port eine KomponenteMicrosoft Comm Control nämlich die Datei MSCOMM32.ocx, die sich nach der Installation von Visual Basic im Verzeichnis C:\Windows\system32 befindet. Damit meine ich, dass es nicht funktioniert, wenn Sie Ihr Programm ohne Erstellung eines Installationsprogramms auf einen anderen Computer kopieren, der nicht über Visual Basic verfügt. Sie müssen diese Datei außerdem in dasselbe Verzeichnis wie auf Ihrem Computer kopieren, d. h. im System32. Oder erstellen Sie ein Installationsprogramm. Nun zu einigen Befehlen: Befehl zum Einstellen der Datenaustauschrate: MSComm1.Settings = "1200,N,8,1" Befehl, der die COM-Portnummer angibt MSComm1.CommPort = 1 Befehle zum Öffnen und Schließen des COM-Ports MSComm1.PortOpen = True MSComm1.PortOpen = Falsch Befehle, die +12 V an den entsprechenden Pin des COM-Anschlusses ausgeben: MSComm1.RTSEnable = True RTS (7) – Pin-Name und Pin-Nummer MSComm1.DTREnable = True DTR(4) Befehle, die -12 V ausgeben MSComm1.RTSEnable = Falsch MSComm1.DTREnable = Falsch Sie können die Pins CD (1), CTS (8), DSR (6) auf das Vorhandensein eines Single- oder Null-Zustands abfragen. If MSComm1.CDHolding = True Then (wenn man dann…) Wenn MSComm1.CDHolding = False, dann (wenn Null, dann …) Übertragen des ASCII-Codes eines Zeichens oder einer Zeichenfolge an den Tx (3)-Ausgang: MSComm1.Output = "A" Numbers MSComm1.Output = Chr(10)-Nummer kann zwischen 0 und 255 variieren Indem Sie einen solchen Befehl in einen Timer schreiben und die Zahl oder das Symbol ändern, können Sie eine PWM-Modulation erzeugen. Weitere Details zu den Befehlen finden Sie beim Herunterladen der Steuerungsbeschreibung Microsoft Comm Control. Mit diesem Code können Sie nun eine Reihe von Programmen zum Sammeln von Daten schreiben. Zum Beispiel: Voltmeter, Amperemeter, Temperaturmesser, einfaches Oszilloskop, Daten in einer Datei speichern. Messungen können entweder alle 1 ms oder einmal pro Stunde und Tag durchgeführt werden und somit langfristige Prozesse überwachen. Zum Arbeiten mit Wechselspannungen (Durchgang durch 0) sowie zur Erweiterung der Messgrenzen ist ein Eingangsverstärker erforderlich, dessen Schaltung [1] entnommen werden kann. Um mit Netzspannung oder mit Geräten zu arbeiten, die nicht galvanisch vom Netzwerk getrennt sind, ist eine optische Trennung des Stromkreises vom Computer erforderlich. Quellcodes von Beispielprogrammen herunterladen (8 kB) Literatur
Autor: =ShooRooP=, evei [Hund] mail.ru; Veröffentlichung: cxem.net Siehe andere Artikel Abschnitt Computer. Lesen und Schreiben nützlich Kommentare zu diesem Artikel. Neueste Nachrichten aus Wissenschaft und Technik, neue Elektronik: Kunstleder zur Touch-Emulation
15.04.2024 Petgugu Global Katzenstreu
15.04.2024 Die Attraktivität fürsorglicher Männer
14.04.2024
Weitere interessante Neuigkeiten: ▪ Chemikaliencocktail für Meeresschildkröten ▪ S2-LP - 433/868 MHz Schmalband-Transceiver ▪ An einem Fußgängerüberweg telefonieren - illegal ▪ Tsunami-Wellen steigen in den Himmel News-Feed von Wissenschaft und Technologie, neue Elektronik
Interessante Materialien der Freien Technischen Bibliothek: ▪ Site-Abschnitt Computergeräte. Artikelauswahl ▪ Artikel Wie beeinflussen Kalorien unser Gewicht? Ausführliche Antwort ▪ Artikel Staub- und Gasbelastung von Industrieanlagen ▪ Artikel Match in Balance. Fokusgeheimnis
Hinterlasse deinen Kommentar zu diesem Artikel: Alle Sprachen dieser Seite Startseite | Bibliothek | Artikel | Sitemap | Site-Überprüfungen www.diagramm.com.ua |