Innholdsfortegnelse:

Enkel og billig analog til digital omformer: 5 trinn
Enkel og billig analog til digital omformer: 5 trinn

Video: Enkel og billig analog til digital omformer: 5 trinn

Video: Enkel og billig analog til digital omformer: 5 trinn
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, November
Anonim
Enkel og billig analog til digital omformer
Enkel og billig analog til digital omformer
Enkel og billig analog til digital omformer
Enkel og billig analog til digital omformer
Enkel og billig analog til digital omformer
Enkel og billig analog til digital omformer
Enkel og billig analog til digital omformer
Enkel og billig analog til digital omformer

Fra den tiden ADC var dyre og sjeldne, kommer en maskinvare-programvareløsning for datainnsamling for PC-er. Basert på den gamle joystick-porten fra IBM-kompatible, er en teknikk for å utløse en monostabil multivibrator en resistiv transduser (termistor, fotocelle, strekkmåler, osv.) Og deretter telle hvor mange sykluser den passerer før multivibratorens utgang går høyt ganske god enkel å implementere på de fleste PC -plattformer og på de fleste språk. En VisualBasic og Qbasic prøvefiler vises.

Trinn 1: Joystick -porten

Joystick -porten
Joystick -porten

I mange år kom mange hjemmekompatible PC -er med en joystick -port som hadde X -akser, Y -akser, A & B -knapper, signalpinner. Den lille DB-15-kontakten er tilgjengelig på adressen 200h og 201h. Selve joysticken var bare to potensiometer og to knapper. Inne på hovedkortet til PC -en ble det funnet to retriggerbare monostabile multivibratorer (RMM for korte) med faste kondensatorer og IN/OUT -pinner. RC -tidskonstanten ble satt av potensiometrene og kondensatorene. For å starte signalkonvertering, ville du lage en SKRIV til portadresse 200t og deretter begynne å telle til du blir litt HØY ved å gjøre en LES til portadresse 200t. Dette kan implementeres på alle språk (basic, pascal, c).

Trinn 2: Joystick -port i VB

Joystick -port i VB
Joystick -port i VB

Dette er en eksempelkode jeg brukte til å teste søppelstyrespaken min: 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 Neste H Horisontal. Tekst = H Ut & H201, & HFF For V = 1 Til 3000 Hvis (Inp (& H201) Og & H2) / & H2 = 0 Avslutt deretter for neste V Vertikal. Tekst = V Hvis (Inp (& H201) Og & H10) / & H10 = 0 Deretter 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 Deretter fungerer Shape2. FillColor = & HC0C0C0 Shape3. Left = H Shape3. Top = VEnd Sub Programmet fungerer bare hvis du har en ekte joystick festet til PCen. De horisontale og vertikale tekstboksene viser en verdi relatert til X- og Y -bevegelser på pinnen din. Også en firkant vil bevege seg rundt i en større boks for å representere bevegelsene dine. Ved å trykke på A- og B -knappene blir de grå sirklene lest. Eksempelkompilert EXE -fil, kildekoden og INPOUT32. DLL -biblioteket er i. RAR -filen.

Trinn 3: Implementer det ved å bruke den parallelle porten under DOS

Implementer det ved å bruke den parallelle porten under DOS
Implementer det ved å bruke den parallelle porten under DOS

74 LS 123 er det jeg brukte for å få det samme systemet som joystickporten. Den har to RMM. I PDF -filen kan du se databladet og en enkel krets for å feste til parallellporten. Jeg er en Qbasic -fan (fordi den er allment tilgjengelig), så koden er skrevet i den. Fremgangsmåten 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 SLUTT SÅ FOR NESTE Y LOCATE 23, 1 UTSKRIFT BRUKER "####"; 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) NESTE ID (MAXX) = YWEND En utgangspinne brukes til å utløse MMR og en inngangspinne for å lese utgangen fra den.

Trinn 4: Fest sirupen til LPT

Fest Ciruit til LPT
Fest Ciruit til LPT
Fest Ciruit til LPT
Fest Ciruit til LPT
Fest Ciruit til LPT
Fest Ciruit til LPT

Systemet er implementert som halv maskinvare og halv programvare. Konverteringen av en variabel motstand til en tidsforsinkelse brukes deretter til å telle pulser, og denne tellingen er vår ønskede verdi. Qbasic -filen vil plotte for å skjerme signalet og deretter bla det til høyre.

Trinn 5: Bruk den

Dette er en vanlig IC, men andre monostabler kan også brukes. Mange mennesker som bor på steder der ADC er vanskelig å finne, vil kanskje bruke denne kretsen som et skoleprosjekt for å plotte temperatur eller andre ting så lenge du kan få MMR til å endre forsinkelsen når sensoren gjør det.

Anbefalt: