Indholdsfortegnelse:

Enkel og billig analog til digital konverter: 5 trin
Enkel og billig analog til digital konverter: 5 trin

Video: Enkel og billig analog til digital konverter: 5 trin

Video: Enkel og billig analog til digital konverter: 5 trin
Video: Обзор и сравнение BSIDE ZT-Y2 и мультиметра BSIDE ZT-Y ну и мультиметр BSIDE ZT-X 2024, Juli
Anonim
Enkel og billig analog til digital konverter
Enkel og billig analog til digital konverter
Enkel og billig analog til digital konverter
Enkel og billig analog til digital konverter
Enkel og billig analog til digital konverter
Enkel og billig analog til digital konverter
Enkel og billig analog til digital konverter
Enkel og billig analog til digital konverter

Fra den tid, hvor ADC var dyre og sjældne, kommer der en hardware-softwareløsning til dataindsamling til pc'er. Baseret på den gamle Joystick-port fra IBM-kompatible er en teknik til at udløse en monostabil multivibrator en resistiv transducer (termistor, fotocelle, belastningsmåler osv.) Og derefter tælle, hvor mange cyklusser den passerer, før output fra multivibratoren går højt, ganske enkel at implementere på de fleste pc -platforme og på de fleste sprog. Der vises en VisualBasic og Qbasic prøvefiler.

Trin 1: Joystick -porten

Joystick -porten
Joystick -porten

I mange år kom mange hjemmekompatible pc'er med en Joystick -port, der havde X -akser, Y -akser, A & B -knapper, signalstifter. Det lille DB-15-stik kan tilgås på adressen 200h & 201h. Selve joysticket var kun to potentiometer og to knapper. Inde i bundkortet på pc'en var der to genstartbare monostabile multivibratorer (RMM for korte) med faste kondensatorer og IN/OUT -ben. RC -tidskonstanten blev indstillet af potenciometrene og kondensatorerne. For at starte signalkonverteringen ville du lave en SKRIV til portadresse 200 timer og derefter begynde at tælle, indtil du bliver lidt HØJ ved at lave en LÆS til port -adresse 200 timer. Dette kunne implementeres på ethvert sprog (grundlæggende, pascal, c).

Trin 2: Joystick -port i VB

Joystick -port i VB
Joystick -port i VB

Dette er en prøvekode, jeg brugte til at teste mit junkyard joystick: Private Sub Timer1_Timer () Dim V, H As Integer Out & H201, & HFF For H = 1 To 3000 If (Inp (& H201) And & H1) / & H1 = 0 Herefter Afslut For Næste H Horisontal. Tekst = H Ud & H201, & HFF For V = 1 Til 3000 Hvis (Inp (& H201) Og & H2) / & H2 = 0 Afslut derefter til næste V Vertikal. Tekst = V Hvis (Inp (& H201) Og & H10) / & H10 = 0 Derefter 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) Og & H20) / & H20 = 1 Herefter fungerer Shape2. FillColor = & HC0C0C0 Shape3. Left = H Shape3. Top = VEnd Sub Programmet fungerer kun, hvis du har et ægte joystick tilsluttet din pc. De vandrette og lodrette tekstfelter viser en værdi relateret til X og Y -bevægelser på din pind. Også en firkant vil bevæge sig rundt i en større kasse for at repræsentere dine bevægelser. Ved at trykke på A- og B -knapperne aflæses de grå cirkler. Prøven kompilerede EXE -fil, kildekoden og INPOUT32. DLL -biblioteket er i. RAR -filen.

Trin 3: Implementér det ved hjælp af den parallelle port under DOS

Implementér det ved hjælp af den parallelle port under DOS
Implementér det ved hjælp af den parallelle port under DOS

74 LS 123 er det, jeg plejede at få det samme system som joystickporten. Den har to RMM. I PDF -filen kan du se databladet og et simpelt kredsløb, der skal vedhæftes til din parallelport. Jeg er en Qbasic fan (fordi den er bredt tilgængelig), så koden er skrevet i den. Proceduren er den samme som i VB-prøven: 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) WILE INKEY $ = "" OUT LPTcontrol, & H1 OUT LPTcontrol, & H0 FOR Y = 1 TO YMAXX IF (INP (LPTstatus) AND & H10) / & H10 = 1 DERFOR AFSLUT TIL NÆSTE Y LOCATE 23, 1 PRINT BRUGER "####"; Y LINE (0, 0) - (MAXX, YMAXX), 0, BF FOR I = 1 TO MAXX LINE (I, D (I - 1)) - (I, D (I)) D (I - 1) = D (I) NEXT ID (MAXX) = YWEND En output pin bruges til at udløse MMR og en input pin til at læse output fra den.

Trin 4: Vedhæftning af Ciruit til LPT

Vedhæftning af Ciruit til LPT
Vedhæftning af Ciruit til LPT
Vedhæftning af Ciruit til LPT
Vedhæftning af Ciruit til LPT
Vedhæftning af Ciruit til LPT
Vedhæftning af Ciruit til LPT

Systemet er implementeret som halv hardware og halv software. Konverteringen af en variabel modstand til en tidsforsinkelse bruges derefter til at tælle pulser, og denne tælling er vores ønskede værdi. Qbasic -filen vil plotte for at skærme signalet og derefter rulle det til højre.

Trin 5: Brug det

Dette er en almindelig IC, men andre monostabile kan også bruges. Mange mennesker, der bor på steder, hvor ADC er svære at finde, vil måske gerne bruge dette kredsløb som et skoleprojekt til at plotte temperatur eller andre ting, så længe du kan få MMR til at ændre sin forsinkelse, når din sensor gør det.

Anbefalede: