Inhoudsopgave:

Eenvoudige en goedkope analoog naar digitaal converter - Ajarnpa
Eenvoudige en goedkope analoog naar digitaal converter - Ajarnpa

Video: Eenvoudige en goedkope analoog naar digitaal converter - Ajarnpa

Video: Eenvoudige en goedkope analoog naar digitaal converter - Ajarnpa
Video: De 4 beste video-opnamekaarten om films van analoog naar digitaal om te zetten 2024, November
Anonim
Eenvoudige en goedkope analoog naar digitaal converter
Eenvoudige en goedkope analoog naar digitaal converter
Eenvoudige en goedkope analoog naar digitaal converter
Eenvoudige en goedkope analoog naar digitaal converter
Eenvoudige en goedkope analoog naar digitaal converter
Eenvoudige en goedkope analoog naar digitaal converter
Eenvoudige en goedkope analoog naar digitaal converter
Eenvoudige en goedkope analoog naar digitaal converter

Uit de tijd dat ADC duur en zeldzaam was, komt er een hardware-software-oplossing voor data-acquisitie voor pc's. Gebaseerd op de oude Joystick-poort van de IBM-compatibele, is een techniek om een monostabiele multivibrator een resistieve transducer (thermistor, fotocel, spanningsmeter, enz.) eenvoudig te implementeren op de meeste pc-platforms en in de meeste talen. Een VisualBasic en Qbasic voorbeeldbestanden worden getoond.

Stap 1: De joystickpoort

De joystickpoort
De joystickpoort

Jarenlang kwamen veel IBM-compatibele pc's voor thuisgebruik met een joystickpoort met signaalpinnen op de X-as, Y-as, A & B-knoppen. De kleine DB-15 connector is toegankelijk op adres 200h & 201h. De joystick zelf bestond uit slechts twee potenciometers en twee knoppen. In het moederbord van de pc bevonden zich twee hertriggerbare monostabiele multivibrators (kortweg RMM) met vaste condensatoren en IN/OUT-pinnen. De RC-tijdconstante werd ingesteld door de potenciometers en de condensatoren. Om de signaalconversie te starten, maakt u een SCHRIJF naar poortadres 200h en begint u te tellen totdat u een beetje HOOG wordt door een READ naar poortadres 200h te doen. Dit kan in elke taal worden geïmplementeerd (basic, pascal, c).

Stap 2: Joystick-poort in VB

Joystickpoort in VB
Joystickpoort in VB

Dit is een voorbeeldcode die ik heb gebruikt om mijn autokerkhofjoystick te 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 Volgende 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 Dan Vorm1. FillColor = &HFF If (Inp(&H201) En &H20) / &H10 = 0 Dan Shape2. FillColor = &HFF If (Inp(&H201) En &H10) / &H10 = 1 Dan Vorm1. FillColor = &HC0C0C0 If (Inp (&H201) En &H20) / &H20 = 1 Dan Shape2. FillColor = &HC0C0C0 Shape3. Left = H Shape3. Top = VEnd Sub Het programma werkt alleen als u een echte joystick op uw pc hebt aangesloten. De horizontale en verticale tekstvakken tonen een waarde die verband houdt met X- en Y-bewegingen van uw stick. Ook zal een vierkant in een groter vak bewegen om uw bewegingen weer te geven. Door op de A- en B-knoppen te drukken, worden de grijze cirkels weergegeven. Het voorbeeld-gecompileerde EXE-bestand, de broncode en de INPOUT32. DLL-bibliotheek bevinden zich in het. RAR-bestand.

Stap 3: Implementeer het met behulp van de parallelle poort onder DOS

Implementeer het met behulp van de parallelle poort onder DOS
Implementeer het met behulp van de parallelle poort onder DOS

De 74 LS 123 is wat ik gebruikte om hetzelfde systeem te krijgen als de joystickpoort. Het heeft twee RMM. In het PDF-bestand ziet u de datasheet en een eenvoudig circuit om aan uw parallelle poort te bevestigen. Ik ben een Qbasic-fan (omdat het overal verkrijgbaar is), dus de code is erin geschreven. De procedure is hetzelfde als in het VB-voorbeeld: LPTdata = &H378 LPTstatus = LPTdata + 1: LPTcontrol = LPTdata + 2YMAXX = 500SCREEN 2LINE (9, 1)-(630, 170),, B, &H3333VIEW (10, 2)- (629, 169)VENSTER (0, YMAXX)-(620, 0)MAXX = 620DIM D(MAXX)WHILE INKEY$ = "" OUT LPTcontrol, &H1 OUT LPTcontrol, &H0 FOR Y = 1 TO YMAXX IF (INP(LPTstatus) EN &H10) / &H10 = 1 VERLATEN DAN VOOR DE VOLGENDE LOCATE 23, 1 AFDRUKKEN MET "####"; Y LINE (0, 0)-(MAXX, YMAXX), 0, BF VOOR I = 1 TOT MAXX LINE (I, D(I - 1))-(I, D(I)) D(I - 1) = D(I) VOLGENDE ID(MAXX) = YWEND Eén uitgangspin wordt gebruikt om de MMR te triggeren en één ingangspin om de uitvoer ervan te lezen.

Stap 4: De Ciruit bevestigen aan LPT

De Ciruit aan LPT. bevestigen
De Ciruit aan LPT. bevestigen
De Ciruit aan LPT. bevestigen
De Ciruit aan LPT. bevestigen
De Ciruit aan LPT. bevestigen
De Ciruit aan LPT. bevestigen

Het systeem is half hardware en half software geïmplementeerd. De conversie van een variabele weerstand in een tijdvertraging wordt vervolgens gebruikt om pulsen te tellen en deze telling is onze gewenste waarde. Het qbasic-bestand zal plotten om het signaal te screenen en vervolgens naar rechts scrollen.

Stap 5: Gebruik het

Dit is een veelvoorkomend IC, maar er kunnen ook andere monostables worden gebruikt. Veel mensen die op plaatsen wonen waar ADC moeilijk te vinden is, willen dit circuit misschien gebruiken als een schoolproject om de temperatuur of andere dingen in kaart te brengen, zolang je de MMR de vertraging kunt laten wijzigen wanneer je sensor dat doet.

Aanbevolen: