Cuprins:

Convertor analogic digital simplu și ieftin: 5 pași
Convertor analogic digital simplu și ieftin: 5 pași

Video: Convertor analogic digital simplu și ieftin: 5 pași

Video: Convertor analogic digital simplu și ieftin: 5 pași
Video: Costeo biju ‼️luat la palme de interlopi‼️#bucuresti #emipian #florinsalam #dans #interlopi 2024, Iulie
Anonim
Convertor analogic digital simplu și ieftin
Convertor analogic digital simplu și ieftin
Convertor analogic digital simplu și ieftin
Convertor analogic digital simplu și ieftin
Convertor analogic digital simplu și ieftin
Convertor analogic digital simplu și ieftin
Convertor analogic digital simplu și ieftin
Convertor analogic digital simplu și ieftin

Din vremurile în care ADC erau scumpe și rare, vine o soluție hardware-software pentru achiziționarea de date pentru PC-uri. Pe baza vechiului port Joystick de la compatibil IBM, o tehnică de declanșare a unui multivibrator monostabil, a unui traductor rezistiv (termistor, fotocelula, tensometru etc.) și apoi numărarea a câte cicluri trece înainte ca ieșirea multivibratorului să fie ridicată este destul de mare simplu de implementat pe majoritatea platformelor PC și pe majoritatea limbilor. Sunt afișate un eșantion de fișiere VisualBasic și Qbasic.

Pasul 1: Portul Joystick

Portul Joystick
Portul Joystick

De ani de zile, multe computere compatibile IBM de acasă au venit cu un port Joystick care avea axa X, axa Y, butoanele A și B. Conectorul mic DB-15 poate fi accesat la adresa 200h și 201h. Joystick-ul în sine era doar două potenciometre și două butoane. În interiorul plăcii de bază a PC-ului, au fost amplasate două multivibratoare monostabile reglabile (RMM pe scurt) cu condensatori fixi și pini IN / OUT. Constanta de timp RC a fost setată de potențiometre și condensatoare. Pentru a începe conversia semnalului, ați face un WRITE la adresa portului 200h și apoi ați începe să numărați până când veți obține un pic ÎNALT făcând un CITIT la adresa portului 200h. Acest lucru ar putea fi implementat în orice limbă (basic, pascal, c).

Pasul 2: portul joystick-ului în VB

Port joystick în VB
Port joystick în VB

Acesta este un eșantion de cod pe care l-am folosit pentru a-mi testa joystick-ul cu junkyard: Private Sub Timer1_Timer () Dim V, H As Integer Out & H201, & HFF pentru H = 1 până la 3000 If (Inp (& H201) Și & H1) / & H1 = 0 Apoi ieșiți pentru Următorul H orizontal. Text = H Out & H201, & HFF pentru V = 1 până la 3000 If (Inp (& H201) și & H2) / & H2 = 0 Apoi ieșiți pentru următorul V vertical. Text = V If (Inp (& H201) Și & H10) / & H10 = 0 Apoi Shape1. FillColor = & HFF If (Inp (& H201) Și & H20) / & H10 = 0 Then Shape2. FillColor = & HFF If (Inp (& H201) And & H10) / & H10 = 1 Then Shape1. FillColor = & HC0C0C0 If (Inp (& H201) Și & H20) / & H20 = 1 Apoi Shape2. FillColor = & HC0C0C0 Shape3. Left = H Shape3. Top = VEnd Sub Programul funcționează numai dacă aveți un joystick real atașat la computer. Casetele Text orizontal și vertical vor afișa o valoare legată de mișcările X și Y ale stick-ului dvs. De asemenea, un pătrat se va deplasa într-o cutie mai mare pentru a vă reprezenta mișcările. Apăsând butoanele A și B se vor citi cercurile gri. Exemplul de fișier EXE compilat, codul sursă și biblioteca INPOUT32. DLL se află în fișierul. RAR.

Pasul 3: Implementați-l utilizând portul paralel sub DOS

Implementați-l utilizând portul paralel sub DOS
Implementați-l utilizând portul paralel sub DOS

74 LS 123 este ceea ce am folosit pentru a obține același sistem ca portul joystick-ului. Are două RMM. În fișierul PDF puteți vedea fișa tehnică și un circuit simplu de atașat la portul paralel. Sunt fan Qbasic (deoarece este disponibil pe scară largă), deci codul este scris în el. Procedura este aceeași ca în eșantionul VB: LPTdata = & H378 LPTstatus = LPTdata + 1: LPTcontrol = LPTdata + 2YMAXX = 500SCREEN 2LINE (9, 1) - (630, 170),, B și H3333VIEW (10, 2) - (629, 169) WINDOW (0, YMAXX) - (620, 0) MAXX = 620DIM D (MAXX) CÂND TASTĂ $ = "" OUT LPTcontrol, & H1 OUT LPTcontrol, & H0 PENTRU Y = 1 TO YMAXX IF (INP (LPTstatus) ȘI & H10) / & H10 = 1 APOI IEȘIȚI PENTRU URMĂTOAREA LOCALIZARE 23, 1 IMPRIMAȚI CU "####"; 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 Un pin de ieșire este utilizat pentru a declanșa MMR și un pin de intrare pentru a citi ieșirea acestuia.

Pasul 4: Atașarea Ciruit la LPT

Atașarea Ciruit la LPT
Atașarea Ciruit la LPT
Atașarea Ciruit la LPT
Atașarea Ciruit la LPT
Atașarea Ciruit la LPT
Atașarea Ciruit la LPT

Sistemul este implementat ca jumătate de hardware și jumătate de software. Conversia unei rezistențe variabile într-o întârziere de timp este apoi utilizată pentru a număra impulsurile, iar acest număr este valoarea dorită de noi.

Pasul 5: Folosește-l

Acesta este un IC comun, dar pot fi utilizate și alte monostabile. Mulți oameni care locuiesc în locuri în care ADC sunt greu de găsit, ar putea dori să folosească acest circuit ca proiect școlar pentru a stabili temperatura sau orice alte lucruri, atâta timp cât puteți face ca MMR să-și schimbe întârzierea atunci când senzorul dvs. o face.

Recomandat: