Tabla de contenido:

Convertidor analógico a digital simple y económico: 5 pasos
Convertidor analógico a digital simple y económico: 5 pasos

Video: Convertidor analógico a digital simple y económico: 5 pasos

Video: Convertidor analógico a digital simple y económico: 5 pasos
Video: Tutorial electronica basica. Parte 27. El Osciloscopio 2024, Noviembre
Anonim
Convertidor analógico a digital simple y económico
Convertidor analógico a digital simple y económico
Convertidor analógico a digital simple y económico
Convertidor analógico a digital simple y económico
Convertidor analógico a digital simple y económico
Convertidor analógico a digital simple y económico
Convertidor analógico a digital simple y económico
Convertidor analógico a digital simple y económico

Desde los tiempos en que los ADC eran caros y raros, llega una solución de hardware y software para la adquisición de datos para PC. Basado en el antiguo puerto de Joystick compatible con IBM, una técnica para activar un multivibrador monoestable, un transductor resistivo (termistor, fotocélula, medidor de tensión, etc.) y luego contar cuántos ciclos pasa antes de que la salida del multivibrador se eleve es bastante simple de implementar en la mayoría de las plataformas de PC y en la mayoría de los idiomas. Se muestran archivos de muestra de VisualBasic y Qbasic.

Paso 1: el puerto del joystick

El puerto de la palanca de mando
El puerto de la palanca de mando

Durante años, muchas PC domésticas compatibles con IBM venían con un puerto de joystick que tenía pines de señal de los botones A y B en el eje X, el eje Y y los botones A y B. Se puede acceder al pequeño conector DB-15 en la dirección 200h y 201h. El joystick en sí era solo dos potenciómetros y dos botones. Dentro de la placa base de la PC, se ubicaron dos multivibradores monoestables re-activables (RMM para abreviar) con capacitores fijos y pines IN / OUT. La constante de tiempo RC fue establecida por los potenciómetros y los condensadores. Para iniciar la conversión de la señal, debe hacer una ESCRITURA en la dirección del puerto 200h y luego comenzar a contar hasta que obtenga un poco ALTO haciendo una LECTURA en la dirección del puerto 200h. Esto se puede implementar en cualquier idioma (básico, pascal, c).

Paso 2: puerto de joystick en VB

Puerto de joystick en VB
Puerto de joystick en VB

Este es un código de muestra que utilicé para probar mi joystick de depósito de chatarra: 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 Next H Horizontal. Text = H Out & H201, & HFF For V = 1 To 3000 If (Inp (& H201) And & H2) / & H2 = 0 Then Salit For Next V Vertical. Text = V If (Inp (& H201) And & H10) / & H10 = 0 Entonces Shape1. FillColor = & HFF If (Inp (& H201) And & H20) / & H10 = 0 Entonces Shape2. FillColor = & HFF If (Inp (& H201) And & H10) / & H10 = 1 Entonces Shape1. FillColor = & HC0C0C0 If (Inp (& H201) Y & H20) / & H20 = 1 Luego Shape2. FillColor = & HC0C0C0 Shape3. Left = H Shape3. Top = VEnd Sub El programa solo funciona si tiene un joystick real conectado a su PC. Los cuadros de texto horizontal y vertical mostrarán un valor relacionado con los movimientos X e Y de su palo. Además, un cuadrado se moverá dentro de un cuadro más grande para representar sus movimientos. Al presionar los botones A y B se leerán los círculos grises. El archivo EXE compilado de muestra, el código fuente y la biblioteca INPOUT32. DLL se encuentran en el archivo. RAR.

Paso 3: impleméntelo usando el puerto paralelo en DOS

Implementarlo usando el puerto paralelo en DOS
Implementarlo usando el puerto paralelo en DOS

El 74 LS 123 es el que usé para obtener el mismo sistema que el puerto del joystick. Tiene dos RMM. En el archivo PDF puede ver la hoja de datos y un circuito simple para conectar a su puerto paralelo. Soy un fan de Qbasic (porque está ampliamente disponible) por lo que el código está escrito en él. El procedimiento es el mismo que en el ejemplo de VB: LPTdata = & H378 LPTstatus = LPTdata + 1: LPTcontrol = LPTdata + 2YMAXX = 500SCREEN 2LINE (9, 1) - (630, 170), B, & H3333VIEW (10, 2) - (629, 169) VENTANA (0, YMAXX) - (620, 0) MAXX = 620DIM D (MAXX) MIENTRAS INKEY $ = "" OUT LPTcontrol, & H1 OUT LPTcontrol, & H0 FOR Y = 1 TO YMAXX IF (INP (LPTstatus) Y & H10) / & H10 = 1 LUEGO SALGA PARA LA SIGUIENTE Y LOCALIZACIÓN 23, 1 IMPRIMA USANDO "####"; LÍNEA Y (0, 0) - (MAXX, YMAXX), 0, BF PARA I = 1 A LÍNEA MAXX (I, D (I - 1)) - (I, D (I)) D (I - 1) = D (I) NEXT ID (MAXX) = YWEND Se utiliza un pin de salida para activar el MMR y un pin de entrada para leer la salida del mismo.

Paso 4: Colocación del Ciruit en LPT

Colocación del Ciruit en LPT
Colocación del Ciruit en LPT
Colocación del Ciruit en LPT
Colocación del Ciruit en LPT
Colocación del Ciruit en LPT
Colocación del Ciruit en LPT

El sistema se implementa como mitad hardware y mitad software. La conversión de una resistencia variable en un retardo de tiempo se utiliza para contar los pulsos y este recuento es nuestro valor deseado. El archivo qbasic trazará la pantalla de la señal y luego la desplazará hacia la derecha.

Paso 5: ¡Úselo

Este es un IC común, pero también se pueden usar otros monoestables. Muchas personas que viven en lugares donde ADC son difíciles de encontrar, podrían querer usar este circuito como un proyecto escolar para trazar la temperatura o cualquier otra cosa, siempre que pueda hacer que el MMR cambie su retraso cuando lo haga su sensor.

Recomendado: