Obsah:

Jednoduchý a levný převodník analogového signálu na digitální: 5 kroků
Jednoduchý a levný převodník analogového signálu na digitální: 5 kroků

Video: Jednoduchý a levný převodník analogového signálu na digitální: 5 kroků

Video: Jednoduchý a levný převodník analogového signálu na digitální: 5 kroků
Video: Arduino: Základy 01 | Seznámení s Arduinem [sub] 2024, Listopad
Anonim
Jednoduchý a levný analogový na digitální převodník
Jednoduchý a levný analogový na digitální převodník
Jednoduchý a levný analogový na digitální převodník
Jednoduchý a levný analogový na digitální převodník
Jednoduchý a levný analogový na digitální převodník
Jednoduchý a levný analogový na digitální převodník
Jednoduchý a levný analogový na digitální převodník
Jednoduchý a levný analogový na digitální převodník

Od dob, kdy byly ADC drahé a vzácné, přichází hardwarově-softwarové řešení pro sběr dat pro PC. Na základě starého portu Joysticku kompatibilního s IBM je technika spouštění monostabilního multivibrátoru odporovým převodníkem (termistor, fotobuňka, tenzometr atd.) A poté počítání, kolik cyklů projde, než se výstup multivibrátoru zvýší, je docela dost jednoduchá implementace na většině počítačových platforem a ve většině jazyků. Zobrazí se ukázkové soubory VisualBasic a Qbasic.

Krok 1: Port joysticku

Joystick Port
Joystick Port

Mnoho domácích počítačů kompatibilních s IBM bylo po mnoho let vybaveno portem joysticku, který měl signální kolíky os X, Y, A a B. K malému konektoru DB-15 lze přistupovat na adrese 200h a 201h. Samotný joystick byl jen dva potenciometry a dvě tlačítka. Uvnitř základní desky PC byly umístěny dva spouštěcí monostabilní multivibrátory (zkráceně RMM) s pevnými kondenzátory a piny IN/OUT. Časová konstanta RC byla nastavena potenciometry a kondenzátory. Chcete -li zahájit převod signálu, proveďte WRITE na adresu portu 200h a poté začněte počítat, dokud se nedostanete trochu VYSOKÉ provedením READ na adresu portu 200h. To lze implementovat v jakémkoli jazyce (základní, pascal, c).

Krok 2: Port joysticku ve VB

Joystick Port ve VB
Joystick Port ve VB

Toto je ukázkový kód, který jsem použil k testování svého smetištěho joysticku: 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 Další H Horizontal. Text = H Out & H201, & HFF Pro V = 1 až 3000 If (Inp (& H201) And & H2) / & H2 = 0 Then Exit For Next V Vertical. Text = V If (Inp (& H201) And & H10) / & H10 = 0 Pak 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) And & H20) / & H20 = 1 Potom Shape2. FillColor = & HC0C0C0 Shape3. Left = H Shape3. Top = VEnd Sub Program funguje, pouze pokud máte k počítači připojený skutečný joystick. Pole Vodorovný a Svislý text zobrazí hodnotu související s pohyby X a Y vaší páčky. Ve větším poli se bude pohybovat také čtverec, který bude reprezentovat vaše pohyby. Stisknutím tlačítek A a B změníte čtení šedých kruhů. Ukázkový kompilovaný soubor EXE, zdrojový kód a knihovna INPOUT32. DLL jsou v souboru. RAR.

Krok 3: Implementujte jej pomocí paralelního portu v systému DOS

Implementujte jej pomocí paralelního portu v systému DOS
Implementujte jej pomocí paralelního portu v systému DOS

74 LS 123 je to, co jsem použil k získání stejného systému jako port joysticku. Má dvě RMM. V souboru PDF můžete vidět datový list a jednoduchý obvod pro připojení k paralelnímu portu. Jsem fanoušek Qbasic (protože je široce dostupný), takže je v něm napsán kód. Postup je stejný jako ve vzorku VB: 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) AND & H10) / & H10 = 1 PAK VYJDĚTE PRO DALŠÍ OKRUH 23, 1 TISK POUŽÍVEJTE „####“; 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 Jeden výstupní pin slouží ke spuštění MMR a jeden vstupní pin ke čtení jeho výstupu.

Krok 4: Připojení okruhu k LPT

Připojení obvodu k LPT
Připojení obvodu k LPT
Připojení obvodu k LPT
Připojení obvodu k LPT
Připojení obvodu k LPT
Připojení obvodu k LPT

Systém je implementován jako polovina hardwaru a polovina softwaru. Konverze proměnného odporu na časové zpoždění se pak používá k počítání impulsů a tento počet je naší požadovanou hodnotou. Soubor qbasic vykreslí signál obrazovky a poté jej posune doprava.

Krok 5: Použijte to

Toto je běžný IC, ale lze použít i jiné monostabily. Mnoho lidí, kteří žijí v místech, kde je těžké najít ADC, by tento okruh rádi využili jako školní projekt k vykreslení teploty nebo jakéhokoli jiného materiálu, pokud dokážete MMR změnit zpoždění, když to udělá váš senzor.

Doporučuje: