ENCICLOPEDIA DE RADIOELECTRÓNICA E INGENIERÍA ELÉCTRICA Operación ADC con puerto COM, sistema simple de adquisición de datos. Enciclopedia de radioelectrónica e ingeniería eléctrica. Enciclopedia de radioelectrónica e ingeniería eléctrica. / Компьютеры Este artículo está dirigido principalmente a principiantes. Para aquellos que han decidido intentar crear un sistema de adquisición de datos, ingresar señales analógicas a una computadora, procesarlas, etc. Esto se discutirá en este artículo, e intentaremos hacer todo nosotros mismos. En general, hay poca información sobre este tema en Internet y en la literatura... Sobre todo si utilizas el lenguaje Visual Basic. Por lo tanto, intentaré llenar, al menos en parte, este vacío. Vamos a empezar… Cualquiera que sea su objetivo, primero debe comprar el convertidor analógico a digital (ADC) real. Y también, instale el entorno de desarrollo de Visual Basic 6.0 en su computadora. También necesita poder navegar en este entorno de desarrollo de una manera elemental ... porque. El artículo está diseñado para garantizar que el lector tenga al menos conocimientos básicos de programación en Visual Basic. También recomiendo leer la literatura [1], [3]. Como ADC, recomiendo comprar el TLC549IP. Este es un ADC serial de 8 bits con un protocolo de comunicación simple. Se discutirá en el artículo. Por supuesto, puede usar otros ADC con los cambios apropiados en el circuito y el código. Puedes leer más sobre esto en [1]. Después de haber recorrido el ADC, debe ensamblar el hardware de nuestro sistema de adquisición de datos, es decir, el circuito que se muestra en la Fig. 1. El esquema fue tomado de [1] con cambios menores. Diodos VD1, VD2, VD6 - KD521, cualquier diodo zener para un voltaje de estabilización de 3 ... 5 V. En lugar de 78L05, puede usar KREN5A. Resistencias R1, R2 con una tolerancia del 1%, o una selección de varias con el valor de resistencia más cercano posible. De ellos dependerá la precisión de las medidas. La resistencia R3 es preferentemente de varias vueltas. Ajuste: después de suministrar energía a la placa, medimos el voltaje en la terminal Out del estabilizador DA1. Anotamos el valor de voltaje obtenido con 3 decimales, lo necesitaremos en el futuro. En el pin 1 del microcircuito DD1, usando la resistencia R3, establecemos el voltaje igual a exactamente la mitad del estabilizador medido en el pin de salida. Ahora vamos a tratar con la parte del software real. En términos generales, al principio utilice interfaces de comunicación como RS-232, I2C, Micro Ware, etc. Lo considero inapropiado, porque con una ligera complicación del código del programa, la parte del hardware puede complicarse seriamente. Por lo tanto, utilizaremos el protocolo de intercambio más simple tomado de la "hoja de datos" en el ADC. Es decir, su implementación simple. Por supuesto, la alta velocidad no se puede lograr con un protocolo de este tipo, en este caso el propio Visual Basic impone restricciones, pero es bastante adecuado para obtener los primeros resultados con un mínimo de tiempo y esfuerzo, así como para medir procesos que cambian con relativa lentitud. El protocolo de comunicación del ADC TLC549IP se muestra en la Fig. 2. Durante un solo estado, la conversión real ocurre en el pin CS (selección de chip) del convertidor de analógico a digital. La salida de datos comienza en CS bajo con la llegada del pulso de reloj, un bit por cada pulso. Para emitir un código de 8 bits, necesita 8 pulsos de reloj, respectivamente. Después de eso, CS se puede transferir a un solo estado y se puede realizar la siguiente transformación. Se pueden encontrar más detalles sobre el funcionamiento del ADC en [1]. De todo esto podemos concluir que es necesario escribir un programa controlador que genere las secuencias de pulsos necesarias en el momento adecuado, después de lo cual solo podemos recibir datos. Inicie el entorno de desarrollo de Visual Basic y cree un proyecto EXE estándar. Agregue un control MSComm. Puede agregarlo al panel de componentes de esta manera Proyecto-->Componentes-->seleccionar de la listaMicrosoft Com Control de 6.0. Colóquelo en el formulario, así como 2 etiquetas y 2 temporizadores. Deje los nombres por defecto. Ahora puede comenzar a escribir el código para un voltímetro simple. Pongamos variables: Dim b1, b2, b3, b4, b5, b6, b7, b8, sum, Ud como único Coloque el siguiente código en el procedimiento de carga de formulario: Private Sub Form_Load () MSComm1.DTREnable = Verdadero 'valor inicial - CS alto Timer1.Interval = 100 ' Intervalo de temporizador de 1 ms Timer2.Interval = 1 ' Intervalo de temporizador de 100 ms MSComm1.Settings = "1200,N,8,1" ' configuración de comunicación MSComm1.CommPort = 1 ' Número de puerto COM MSComm1.PortOpen = True ' abrir puerto com End Sub en procedimiento Timer1 puso el código: Temporizador secundario privado1_Timer() MSComm1.DTREnable = False 'Crear CS bajo Label2.Caption = "" 'basura por retraso inicial MSComm1.RTSEnable = Verdadero '1er reloj de pulso de reloj alto Si MSComm1.CDHolding = True Entonces b1 = 1 Else b1 = 0 'Encuesta de uno o cero valor en la entrada de CD (salida ADC) MSComm1.RTSEnable = False '1er reloj de pulso de reloj bajo MSComm1.RTSEnable = Verdadero Si MSComm1.CDHolding = Verdadero Entonces b2 = 1 De lo contrario b2 = 0 MSComm1.RTSEnable = Falso MSComm1.RTSEnable = Verdadero Si MSComm1.CDHolding = Verdadero Entonces b3 = 1 De lo contrario b3 = 0 MSComm1.RTSEnable = Falso MSComm1.RTSEnable = Verdadero Si MSComm1.CDHolding = Verdadero Entonces b4 = 1 De lo contrario b4 = 0 MSComm1.RTSEnable = Falso MSComm1.RTSEnable = Verdadero Si MSComm1.CDHolding = Verdadero Entonces b5 = 1 De lo contrario b5 = 0 MSComm1.RTSEnable = Falso MSComm1.RTSEnable = Verdadero Si MSComm1.CDHolding = Verdadero Entonces b6 = 1 De lo contrario b6 = 0 MSComm1.RTSEnable = Falso MSComm1.RTSEnable = Verdadero Si MSComm1.CDHolding = Verdadero Entonces b7 = 1 De lo contrario b7 = 0 MSComm1.RTSEnable = Falso MSComm1.RTSEnable = Verdadero Si MSComm1.CDHolding = Verdadero Entonces b8 = 1 De lo contrario b8 = 0 MSComm1.DTREnable = True 'Crear alta CS MSComm1.RTSEnable = False '8er reloj de pulso de reloj bajo 'traduce bits a formato decimal usando la fórmula de descomposición suma = (b1 * 2^7) + (b2 * 2^6) + (b3 * 2^5) + (b4 * 2^4) + (b5 * 2^3) + (b6 * 2^2) + (b7*2^1) + (b8*2^0) Ud = Formato (suma * 5.083 / 255, "##0.000") 'calcular valor proporcional Label1.Caption = CStr(Ud) & "Volt" 'muestra el valor recibido End Sub El código en Timer1 es el propio controlador. Que repitiéndose periódicamente, genera pulsos de reloj y recibe bits de datos. Ud: voltaje en la entrada del ADC, si aplica 10 ADC de 12 bits, el número 225 se reemplazará por 1024, 4096, respectivamente. Para 10 ADC de 12 bits, debe agregar los bits faltantes al código, guiados por sus "hojas de datos". El valor 5.083 es el valor de voltaje que obtuve en la salida Out del estabilizador. Introduzca su valor aquí. Para alimentar la placa, puede usar una fuente separada o alimentarla directamente desde el puerto COM. Para ello, colocamos el siguiente código en el procedimiento Timer2: Temporizador secundario privado2_Timer() MSComm1.Output = Chr(0) & Chr(0) 'creamos pulsos en el pin TX (3) para alimentar la placa ADC End Sub Hay que recordar que el puerto COM no puede estar muy cargado... lo máximo con lo que se puede contar es de 20 mA. En modo operativo, el circuito consume una corriente de no más de 5 mA. Ahora conecte la placa al puerto COM y ejecute el proyecto. Mida el voltaje en la terminal IN del estabilizador DA1, debe ser de al menos 6.5 V. Si no es así, se debe usar una fuente de alimentación separada. Al cambiar el voltaje en la entrada del ADC, asegúrese de que el programa funcione y muestre el voltaje en la pantalla. La precisión de lectura de voltaje cuando se usa un ADC de 8 bits es de 20 mV, con un ADC de 10 bits - 5 mV, 12-1.2 mV Un poco sobre trabajar en Visual Basic y la aplicación creada con un puerto com Como probablemente ya entendió, para trabajar con el puerto COM, necesita un componenteMicrosoft Com Control es decir, el archivo MSCOMM32.ocx que, después de instalar Visual Basic, se encuentra en el directorio C:\Windows\system32. ¿Por qué estoy haciendo esto, sino por el hecho de que si copia su programa, sin crear un instalador, a otra computadora que no tenga Visual Basic, no funcionará? También debe copiar este archivo en el mismo directorio que en su computadora, es decir en sistema32. O crea un instalador. Ahora para algunos comandos: El comando que establece la tasa de intercambio de datos: MSComm1.Configuración = "1200,N,8,1" Comando que especifica el número de puerto com MSComm1.CommPort = 1 Comandos para abrir y cerrar un puerto com MSComm1.PortOpen = Verdadero MSComm1.PortOpen = Falso Comandos que emiten + 12V a la pata correspondiente del conector com: MSComm1.RTSEnable = True RTS (7) - nombre de pin y número de pin MSComm1.DTREnable = Verdadero DTR(4) Salida de comandos -12V MSComm1.RTSEnable = Falso MSComm1.DTEnable = Falso Puede sondear la presencia de salidas de estado único o cero CD (1), CTS (8), DSR (6). Si MSComm1.CDHolding = True Entonces (si es así, entonces...) Si MSComm1.CDHolding = False Entonces (si es cero, entonces...) Envío del código ASCII Tx (3) de un carácter o cadena a la salida: MSComm1.Salida = "A" Números MSComm1.Output = Chr(10) El número puede variar de 0…255 Al escribir dicho comando en un temporizador y cambiar el número o símbolo, puede crear una modulación PWM. Se pueden encontrar más detalles sobre los comandos descargando la descripción del control Microsoft Com Control. Ahora, con este código, puede escribir una serie de programas para recopilar datos. Por ejemplo: voltímetro, amperímetro, medidor de temperatura, osciloscopio simple, guardar datos en un archivo. Las mediciones se pueden realizar en solo 1 ms, y una vez por hora y por día, monitoreando así los procesos a largo plazo. Para trabajar con tensiones alternas (que pasan por 0), así como para ampliar los límites de medida, se requiere un amplificador de entrada, cuyo circuito se puede tomar de [1]. Para trabajar con tensión de red o con dispositivos que no estén aislados galvánicamente de la red, es imprescindible realizar un aislamiento óptico del circuito del ordenador. Descargar códigos fuente de programas de muestra (8 kB) Literatura
Autor: =ShooRooP=, evei [perro] mail.ru; Publicación: cxem.net Ver otros artículos sección Компьютеры. Lee y escribe útil comentarios sobre este artículo. Últimas noticias de ciencia y tecnología, nueva electrónica: Solidificación de sustancias a granel.
30.04.2024 Estimulador cerebral implantado
30.04.2024 La percepción del tiempo depende de lo que uno esté mirando.
29.04.2024
Otras noticias interesantes: ▪ Material de construcción a partir de residuos plásticos. ▪ Chip neuromórfico Intel Loihi 2 ▪ Placa base MSI 990FXA Gaming ▪ Se presenta el genoma humano completo Feed de noticias de ciencia y tecnología, nueva electrónica
Materiales interesantes de la Biblioteca Técnica Libre: ▪ sección de la web de Radio Control. Selección de artículos ▪ artículo ¿Alguien dijo algo o me pareció? expresión popular ▪ artículo ¿Qué es una aspiradora? Respuesta detallada ▪ artículo Operador de planta de carga y descarga. Instrucción estándar sobre protección laboral ▪ artículo Una naranja se convierte en una manzana. secreto de enfoque
Deja tu comentario en este artículo: Todos los idiomas de esta página Hogar | Biblioteca | Artículos | Mapa del sitio | Revisiones del sitio www.diagrama.com.ua |