Innehållsförteckning:
- Steg 1: Joystickporten
- Steg 2: Joystickport i VB
- Steg 3: Implementera den med parallellporten under DOS
- Steg 4: Fäst Ciruit på LPT
- Steg 5: Använd det
Video: Enkel och billig analog till digital omvandlare: 5 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:47
Från tiden då ADC var dyra och sällsynta, kommer en hårdvara-mjukvarulösning för datainsamling för datorer. Baserat på den gamla joystickporten från IBM-kompatibla är en teknik för att utlösa en monostabil multivibrator en resistiv givare (termistor, fotocell, töjningsmätare, etc) och sedan räkna hur många cykler det passerar innan multivibratorns utgång går högt ganska enkel att implementera på de flesta PC -plattformar och på de flesta språk. En VisualBasic och Qbasic exempelfiler visas.
Steg 1: Joystickporten
I många år kom många hem -kompatibla PC -datorer med en joystickport med X -axel, Y -axel, A & B -knappar. Den lilla DB-15-kontakten kan nås på adressen 200h & 201h. Själva joysticken var bara två potentiometrar och två knappar. Inuti moderkortet på datorn fanns två återstartbara monostabila multivibratorer (RMM för kort) med fasta kondensatorer och IN/OUT -stift. RC -tidskonstanten sattes av potentiometrarna och kondensatorerna. För att starta signalomvandlingen skulle du göra en SKRIV till portadress 200h och sedan börja räkna tills du blir lite HÖG genom att göra en LÄS till portadress 200h. Detta kan implementeras på alla språk (grundläggande, pascal, c).
Steg 2: Joystickport i VB
Detta är en exempelkod som jag använde för att testa min skräppost 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 Then Exit For Nästa H Horizontal. Text = H Out & H201, & HFF För V = 1 till 3000 If (Inp (& H201) And & H2) / & H2 = 0 Avsluta sedan för nästa V Vertical. Text = V If (Inp (& H201) And & H10) / & H10 = 0 Sedan 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) Och & H20) / & H20 = 1 Sedan Shape2. FillColor = & HC0C0C0 Shape3. Left = H Shape3. Top = VEnd Sub Programmet fungerar bara om du har en riktig joystick ansluten till din PC. De horisontella och vertikala textrutorna visar ett värde relaterat till X- och Y -rörelser på din pinne. En ruta kommer också att röra sig i en större låda för att representera dina rörelser. Genom att trycka på A- och B -knapparna visas de grå cirklarna. Exempelkompilerade EXE -filen, källkoden och INPOUT32. DLL -biblioteket finns i. RAR -filen.
Steg 3: Implementera den med parallellporten under DOS
74 LS 123 är vad jag använde för att få samma system som joystickporten. Den har två RMM. I PDF -filen kan du se databladet och en enkel krets att koppla till din parallellport. Jag är ett Qbasic -fan (eftersom det är allmänt tillgängligt) så koden är skriven i den. Proceduren är densamma som i VB-provet: 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 DÅ AVGÅNG FÖR NÄSTA Y LOCATE 23, 1 UTSKRIFT MED "####"; 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) NÄSTA ID (MAXX) = YWEND En utgångsstift används för att utlösa MMR och en ingångsstift för att läsa utgången från den.
Steg 4: Fäst Ciruit på LPT
Systemet är implementerat som hälften hårdvara och hälften programvara. Omvandlingen av ett variabelt motstånd till en tidsfördröjning används sedan för att räkna pulser och denna räkning är vårt önskade värde. Qbasic -filen kommer att plotta för att skärma signalen och sedan rulla den åt höger.
Steg 5: Använd det
Detta är en vanlig IC men andra monostabiler kan också användas. Många människor som bor på platser där ADC är svåra att hitta, kanske skulle vilja använda den här kretsen som ett skolprojekt för att rita temperatur eller andra saker så länge du kan få MMR att ändra dess fördröjning när din sensor gör det.
Rekommenderad:
Lägga till en strömgränsfunktion till en Buck/Boost -omvandlare: 4 steg (med bilder)
Lägga till en strömgränsfunktion till en Buck/Boost -omvandlare: I det här projektet kommer vi att titta närmare på en gemensam buck/boost -omvandlare och skapa en liten, extra krets som lägger till en strömgränsfunktion till den. Med den kan buck/boost -omvandlaren användas precis som en variabel strömförsörjning för laboratoriebänkar. Le
Hur man skapar och infogar en tabell och lägger till ytterligare kolumner och/eller rader till den tabellen i Microsoft Office Word 2007: 11 steg
Hur man skapar och infogar en tabell och lägger till ytterligare kolumner och/eller rader till den tabellen i Microsoft Office Word 2007: Har du någonsin haft mycket data du arbetar med och tänkt för dig själv … " hur kan jag göra allt av dessa data ser bättre ut och blir lättare att förstå? " Om så är fallet kan en tabell i Microsoft Office Word 2007 vara ditt svar
Mini billig AC till DC -omvandlare: 7 steg
Mini Billiga AC till DC -omvandlare: den här är en AC till DC -omvandlare. Det kostade mig bara några dollar. Bara kostnaden för fyra dioder. Det är väldigt enkelt och inga problem med lödning. så jag vill dela det med er alla. så låt oss komma igång
1A till 40A ström BOOST -omvandlare för upp till 1000W likströmsmotor: 3 steg
1A till 40A Current BOOST-omvandlare för upp till 1000W DC-motor: Hej! I den här videon lär du dig hur du skapar en strömförstärkarkrets för dina hög ampere DC-motorer upp till 1000W och 40 ampere med transistorer och en mittkranstransformator. strömmen vid utgången är mycket hög men spänningen kommer att vara
Raspberry Pi GPIO -kretsar: Användning av en LDR -analog sensor utan ADC (analog till digital omvandlare): 4 steg
Raspberry Pi GPIO -kretsar: Användning av en LDR -analog sensor utan ADC (analog till digital omvandlare): I våra tidigare instruktioner har vi visat dig hur du kan koppla din Raspberry Pi: s GPIO -stift till lysdioder och switchar och hur GPIO -stiften kan vara höga eller låg. Men vad händer om du vill använda din Raspberry Pi med en analog sensor? Om vi vill använda en