Taula de continguts:

Convertidor analògic a digital simple i econòmic: 5 passos
Convertidor analògic a digital simple i econòmic: 5 passos

Vídeo: Convertidor analògic a digital simple i econòmic: 5 passos

Vídeo: Convertidor analògic a digital simple i econòmic: 5 passos
Vídeo: what is a PLC. PLC Analog Module Digital Modules. Modular PLC.PLC Input Output modules. Animation 2024, Juliol
Anonim
Convertidor analògic a digital simple i econòmic
Convertidor analògic a digital simple i econòmic
Convertidor analògic a digital simple i econòmic
Convertidor analògic a digital simple i econòmic
Convertidor analògic a digital simple i econòmic
Convertidor analògic a digital simple i econòmic
Convertidor analògic a digital simple i econòmic
Convertidor analògic a digital simple i econòmic

Des dels temps en què l'ADC era car i rar, ve una solució de programari de maquinari per a l'adquisició de dades per a PC. Basat en el vell port Joystick compatible amb IBM, és bastant suficient una tècnica per activar un multivibrador monoestable i un transductor resistiu (termistor, fotocèl·lula, calibrador de tensió, etc.) i, a continuació, comptar quants cicles passa abans que la sortida del multivibrador sigui elevada. senzill d'implementar a la majoria de plataformes de PC i a la majoria d'idiomes. Es mostren els fitxers de mostra de VisualBasic i Qbasic.

Pas 1: el port del joystick

El port Joystick
El port Joystick

Durant anys, molts ordinadors compatibles amb IBM domèstics venien amb un port Joystick que tenia pins de senyal dels botons A, X, eix Y i A. Es pot accedir al connector petit DB-15 a l'adreça 200h i 201h. El joystick en si era només dos potenciòmetres i dos botons. Dins de la placa base del PC, es van localitzar dos multivibrators monoestables recuperables (RMM per abreujar) amb condensadors fixos i pins IN / OUT. La constant de temps de RC la van establir els potenciòmetres i els condensadors. Per iniciar la conversió de senyal, faria un ESCRIPTURA a l'adreça de port 200h i després començaria a comptar fins que quedés una mica ALTA fent una LLEGIDA a l'adreça de port 200h. Això es podria implementar en qualsevol idioma (bàsic, pascal, c).

Pas 2: Port del joystick a VB

Port del joystick a VB
Port del joystick a VB

Aquest és un codi de mostra que he utilitzat per provar el meu joystick de brossa: 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 Horitzontal següent H = Text = H Out & H201, & HFF per a V = 1 a 3000 If (Inp (& H201) I & H2) / & H2 = 0 Llavors sortiu per al següent V Vertical. Text = V If (Inp (& H201) I & H10) / & H10 = 0 Llavors Shape1. FillColor = & HFF Si (Inp (& H201) I & H20) / & H10 = 0 Llavors Shape2. FillColor = & HFF Si (Inp (& H201) I & H10) / & H10 = 1 Llavors Shape1. FillColor = & HC0C0C0 Si (Inp (& H201) I & H20) / & H20 = 1 Després Shape2. FillColor = & HC0C0C0 Shape3. Left = H Shape3. Top = VEnd Sub El programa només funciona si teniu un joystick real connectat al vostre PC. Els quadres de text horitzontal i vertical mostraran un valor relacionat amb els moviments X i Y del vostre pal. També un quadrat es mourà dins d’una caixa més gran per representar els vostres moviments. En prémer els botons A i B es tornaran a llegir els cercles grisos. El fitxer EXE compilat de mostra, el codi font i la biblioteca INPOUT32. DLL es troben al fitxer. RAR.

Pas 3: implementeu-lo mitjançant el port paral·lel a DOS

Implementeu-lo mitjançant el port paral·lel sota DOS
Implementeu-lo mitjançant el port paral·lel sota DOS

El 74 LS 123 és el que utilitzava per obtenir el mateix sistema que el port del joystick. Té dos RMM. Al fitxer PDF podeu veure el full de dades i un circuit senzill per connectar al vostre port paral·lel. Sóc un fan de Qbasic (perquè està àmpliament disponible), de manera que el codi hi està escrit. El procediment és el mateix que a la mostra 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) MENTRE INKEY $ = "" OUT LPTcontrol, & H1 OUT LPTcontrol, & H0 FOR Y = 1 TO YMAXX IF (INP (LPTstatus) AND & H10) / & H10 = 1 DESPRÉS SURTIU PER A LA PROPERA Y SITUI 23, 1 IMPRIMEIX AMB "####"; LÍNIA Y (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 S'utilitza un pin de sortida per activar l'MMR i un pin d'entrada per llegir-ne la sortida.

Pas 4: Fixació del Ciruit a LPT

Fixació del Ciruit a LPT
Fixació del Ciruit a LPT
Fixació del Ciruit a LPT
Fixació del Ciruit a LPT
Fixació del Ciruit a LPT
Fixació del Ciruit a LPT

El sistema s’implementa com a meitat de maquinari i meitat de programari. La conversió d’una resistència variable en un retard de temps s’utilitza per comptar els impulsos i aquest recompte és el nostre valor desitjat.

Pas 5: utilitzeu-lo

Aquest és un CI comú, però també es poden utilitzar altres monoestables. És difícil trobar moltes persones que viuen en llocs on hi ha ADC, és possible que vulgueu utilitzar aquest circuit com a projecte escolar per traçar la temperatura o qualsevol altra cosa sempre que pugueu fer que el MMR canviï el seu retard quan el sensor ho faci.

Recomanat: