Inhaltsverzeichnis:

Einfacher und günstiger Analog-Digital-Wandler - Gunook
Einfacher und günstiger Analog-Digital-Wandler - Gunook

Video: Einfacher und günstiger Analog-Digital-Wandler - Gunook

Video: Einfacher und günstiger Analog-Digital-Wandler - Gunook
Video: Parallel Analog Digital Wandler Flash Wandler Umsetzer 2024, November
Anonim
Einfacher und günstiger Analog-Digital-Wandler
Einfacher und günstiger Analog-Digital-Wandler
Einfacher und günstiger Analog-Digital-Wandler
Einfacher und günstiger Analog-Digital-Wandler
Einfacher und günstiger Analog-Digital-Wandler
Einfacher und günstiger Analog-Digital-Wandler
Einfacher und günstiger Analog-Digital-Wandler
Einfacher und günstiger Analog-Digital-Wandler

Aus Zeiten, in denen ADCs teuer und selten waren, kommt eine Hardware-Software-Lösung zur Datenerfassung für PCs. Basierend auf dem alten Joystick-Port des IBM-kompatiblen, ist eine Technik zum Auslösen eines monostabilen Multivibrators und eines Widerstandswandlers (Thermistor, Fotozelle, Dehnungsmessstreifen usw.) auf den meisten PC-Plattformen und in den meisten Sprachen einfach zu implementieren. Es werden eine VisualBasic- und Qbasic-Beispieldatei gezeigt.

Schritt 1: Der Joystick-Port

Der Joystick-Port
Der Joystick-Port

Jahrelang wurden viele IBM-kompatible Heim-PCs mit einem Joystick-Port geliefert, der über Signalpins für die X-Achse, Y-Achse, A- und B-Tasten verfügte. Der kleine DB-15-Anschluss ist unter Adresse 200h & 201h erreichbar. Der Joystick selbst bestand nur aus zwei Potenziometern und zwei Tasten. Im Inneren des Mainboards des PCs befanden sich zwei retriggerbare monostabile Multivibratoren (kurz RMM) mit Festkondensatoren und IN/OUT-Pins. Die RC-Zeitkonstante wurde durch die Potenziometer und die Kondensatoren eingestellt. Um die Signalumwandlung zu starten, würden Sie ein SCHREIBEN auf die Portadresse 200h ausführen und dann mit dem Zählen beginnen, bis Sie ein bisschen HIGH erhalten, indem Sie ein LESEN auf die Portadresse 200h ausführen. Dies könnte in jeder Sprache implementiert werden (basic, pascal, c).

Schritt 2: Joystick-Port in VB

Joystick-Port in VB
Joystick-Port in VB

Dies ist ein Beispielcode, den ich verwendet habe, um meinen Schrottplatz-Joystick zu testen: Private Sub Timer1_Timer() Dim V, H As Integer Out &H201, &HFF For H = 1 To 3000 If (Inp(&H201) And &H1) / &H1 = 0 Then Exit For Next H Horizontal. Text = H Out &H201, &HFF For V = 1 To 3000 If (Inp(&H201) And &H2) / &H2 = 0 Then Exit For Next V Vertical. Text = V If (Inp(&H201) And &H10) / &H10 = 0 Then Shape1. FillColor = &HFF If (Inp(&H201) And &H20) / &H10 = 0 Then Shape2. FillColor = &HFF If (Inp(&H201) And &H10) / &H10 = 1 Then Shape1. FillColor = &HC0C0C0 If (Inp (&H201) Und &H20) / &H20 = 1 Dann Shape2. FillColor = &HC0C0C0 Shape3. Left = H Shape3. Top = VEnd Sub Das Programm funktioniert nur, wenn Sie einen echten Joystick an Ihren PC angeschlossen haben. Die horizontalen und vertikalen Textfelder zeigen einen Wert an, der sich auf die X- und Y-Bewegungen Ihres Sticks bezieht. Außerdem bewegt sich ein Quadrat innerhalb einer größeren Box, um Ihre Bewegungen darzustellen. Durch Drücken der Tasten A und B werden die grauen Kreise angezeigt. Die kompilierte EXE-Beispieldatei, der Quellcode und die INPOUT32. DLL-Bibliothek befinden sich in der. RAR-Datei.

Schritt 3: Implementieren Sie es mit dem parallelen Port unter DOS

Implementieren Sie es mit dem parallelen Port unter DOS
Implementieren Sie es mit dem parallelen Port unter DOS

Das 74 LS 123 ist das, was ich verwendet habe, um das gleiche System wie der Joystick-Anschluss zu erhalten. Es hat zwei RMM. In der PDF-Datei sehen Sie das Datenblatt und eine einfache Schaltung zum Anschließen an Ihren Parallelport. Ich bin ein Qbasic-Fan (weil es weit verbreitet ist), also ist der Code darin geschrieben. Die Vorgehensweise ist dieselbe wie im VB-Beispiel: LPTdata = &H378 LPTstatus = LPTdata + 1: LPTcontrol = LPTdata + 2YMAXX = 500SCREEN 2LINE (9, 1)-(630, 170),, B, &H3333VIEW (10, 2)- (629, 169)WINDOW (0, YMAXX)-(620, 0)MAXX = 620DIM D(MAXX)WHILE INKEY$ = "" OUT LPTcontrol, &H1 OUT LPTcontrol, &H0 FOR Y = 1 TO YMAXX IF (INP(LPTstatus) UND &H10) / &H10 = 1 DANN VERLASSEN FÜR NÄCHSTES Y LOCATE 23, 1 DRUCKEN MIT "####"; Y-LINIE (0, 0)-(MAXX, YMAXX), 0, BF FÜR I = 1 BIS MAXX-LINIE (I, D(I - 1))-(I, D(I)) D(I - 1) = D(I) NEXT ID(MAXX) = YWEND Ein Ausgangspin wird zum Triggern des MMR und ein Eingangspin zum Lesen des Ausgangs davon verwendet.

Schritt 4: Anbringen des Schaltkreises an LPT

Anschließen des Schaltkreises an LPT
Anschließen des Schaltkreises an LPT
Anschließen des Schaltkreises an LPT
Anschließen des Schaltkreises an LPT
Anschließen des Schaltkreises an LPT
Anschließen des Schaltkreises an LPT

Das System ist halb Hardware und halb Software implementiert. Die Umwandlung eines variablen Widerstands in eine Zeitverzögerung wird dann verwendet, um Impulse zu zählen, und diese Zählung ist unser gewünschter Wert. Die qbasic-Datei zeichnet das Signal auf und scrollt es dann nach rechts.

Schritt 5: Verwenden Sie es

Dies ist ein üblicher IC, aber es können auch andere Monostabile verwendet werden. Viele Leute, die an Orten leben, an denen ADC schwer zu finden sind, möchten diese Schaltung vielleicht als Schulprojekt verwenden, um die Temperatur oder andere Dinge aufzuzeichnen, solange Sie die Verzögerung des MMR ändern können, wenn Ihr Sensor dies tut.

Empfohlen: