Post on 01-Jan-2016
transcript
jmjacintos@hotmail.com
MANUAL DE PROGRAMACIÓN DE LA TARJETA DE ADQUISICIÓN DE DATOS EN VISUAL BASIC Y MATLAB
Este módulo ha sido desarrollado para hacer tus Proyectos con interface PC de forma sencilla. Además, las PC’s y Laptops actuales ya no incorporan puerto serie, ni puerto paralelo, así éste módulo, te brinda una alternativa para el desarrollo de tus proyectos electrónicos.
Este módulo, está dirigido para alumnos y profesionales de las Carreras de Ingeniería Electrónica, Mecatrónica, Informática y ramas afines. En la versión 2, se puede hacer interfase con Visual Basic y en la versión 3, además con Matlab. El hardware es el mismo en las dos versiones, la diferencia está en el software.
FIG.TARJETA DE ADQUISICION DE DATOS USB
jmjacintos@hotmail.com
DESCRIPCIÓN DEL MÓDULO VERSIÓN 2:
2 PUERTOS DIGITALES DE 8 BITS CADA UNO, CONFIGURABLES COMO ENTRADA O COMO SALIDA
8 ENTRADAS ANALÓGICAS (Fs = 50 Khz Y RESOLUCIÓN DE 8 BITS) 2 SALIDAS ANALÓGICAS(RESOLUCIÓN DE 8 BITS) NO REQUIERE FUENTE DE PODER EXTERNA FACIL PROGRAMACIÓN: 4 COMANDOS DE COMUNICACIONES CON VISUAL
BASIC SE HA INCORPORADO UN 5TO COMANDO PARA ADQUIRIR UNA SEÑAL,
ESPECIFICANDO FRECUENCIA DE MUESTREO, EL RESULTADO SE OBTIENE EN UN VECTOR.
DESCRIPCIÓN DEL MÓDULO VERSIÓN 3:
ADEMÁS DE LO ANTERIOR (INTERFASE CON VISUAL BASIC), TIENE LAS MISMAS FUNCIONALIDADES PERO CON MATLAB Y CON LOS MISMOS NOMBRES DE COMANDOS QUE SE UTILIZAN EN VISUAL BASIC.
jmjacintos@hotmail.com
INSTALACIÓN DEL MÓDULO:
1º PASO:
Conectar el cable USB de la Tarjeta de Adquisición de Datos a un puerto USB de la PC o Laptop y aparecerá en la parte inferior derecha, la siguiente vista:
2ºPASO:
Introducir el CD en la PC, Seleccionar No por el momento y hacer click en Siguiente:
jmjacintos@hotmail.com
3º PASO:
Seleccionar Instalar desde una lista o ubicación específica y hacer click en Siguiente:
4º PASO:
Buscar la Unidad del CD, carpeta Driver y hacer click en Siguiente
jmjacintos@hotmail.com
Aparecerán las siguientes vistas:
jmjacintos@hotmail.com
Si todo está bien, se verá:
Y para verificar que todo esté OK nos vamos a Administrador de dispositivos y nos cercioramos de que aparezca lo del recuadro:
jmjacintos@hotmail.com
Después de instalar la tarjeta de Adquisición (Para la versión 3, reemplazar ADQ_Datos_V2.dll por ADQ_Datos_V3.dll ), Hacer lo siguiente:
Del CD, copiar los siguientes archivos a la carpeta C:\WINDOWS\system32:
ADQ_Datos_V2.dll
mpusbapi.dll
Luego, Ir a inicio - Ejecutar, y escribir lo siguiente:
regsvr32 ADQ_Datos_V2.dll
Hacer click en Aceptar
NOTA: Para la implementación de sus circuitos, solamente unir tierra de la tarjeta de adquisición USB con tierra del hardware adicional implementado (de sus proyectos).
jmjacintos@hotmail.com
COMENZANDO A PROGRAMAR EN VISUAL BASIC
PROGRAMA EJEMPLO PARA APRENDER A UTILIZAR LA TARJETA DE ADQUISICIÓN USB.
FIG. INTERFASE DEL PROGRAMA. La señal obtenida es de 1000 Hz
Y se muestrea a 20Khz.
1º Paso.
Ir al Menú Proyecto y hacer click en Referencias:
jmjacintos@hotmail.com
Seleccionar ADQ_Datos_V2 (o para versión 3: ADQ_Datos_V3, de aquí en adelante)
2º Paso.
Declaramos una variable Objeto y variables que vamos a usar, en Option Explicit:
Option Explicit
Dim DAQ As ADQ_de_Datos_V2, DatoD As Byte, DatoA As Integer
3º Paso.
Creamos una referencia en el evento Load del Formulario y hacemos la conexión con el dispositivo USB (opcionalmente podemos hacer la conexión y desconexión en un command button):
Private Sub Form_Load()
Set DAQ = New ADQ_de_Datos_V2
DAQ.Conectar_USB
End Sub
Desconectamos el USB y Destruimos la referencia en el evento click del menú mnuSalir:
Private Sub mnuSalir_Click()
DAQ.Desconectar_USB
Set DAQ = Nothing
End
End Sub
jmjacintos@hotmail.com
4º Paso.
Comenzamos a programar:
ESCRIBIR DATO DIGITAL (ENTRE 0 Y 255)
Entre comillas se especifica el puerto A o B, además del dato.
Private Sub cmdEnviarDigital_Click()
DatoD = Val(Text1.Text)
DAQ.Escribir_Digital "B", DatoD Para enviar un dato digital por el puerto B
End Sub
LEER DATO DIGITAL (ENTRE 0 Y 255)
Entre comillas se especifica el puerto A o B
Private Sub cmdRecibirDigital_Click()
DatoD = DAQ.Leer_Digital("A") Para Recibir un dato digital por el puerto A
Text2.Text = DatoD
End Sub
LEER DATO ANALÓGICO (ENTRE 0 Y 255).
La lectura se hace en tiempo real, para señales de hasta de 25 Hz.
Entre paréntesis se especifica un canal del 0 al 7
Private Sub cmdRecibirAnalogico_Click()
DatoA = DAQ.Leer_Analogico(1) Para Recibir un dato analógico por canal 1
Text3.Text = DatoA
End Sub
jmjacintos@hotmail.com
Para señales de hasta 10Khz (10000Hz),, se utilizan solamente los canales 0 y 1, además como segundo parámetro, hay que especificar un número entre 0 y 6 que especifica la frecuencia de muestreo (Teóricamente señales de hasta 50Khz):
0 Fs = 50Khz
1 Fs = 20Khz
2 Fs = 10Khz
3 Fs = 5Khz
4 Fs = 2Khz
5 Fs = 1Khz
6 Fs = 500Hz
El resultado es un vector de 256 muestras, como se muestra en el siguiente ejemplo, se visualizan en un ListBox y además se grafica en un Picture:
Private Sub cmdAnalogTs_Click()
Dim senal() As Byte, i As Integer
senal = DAQ.Leer_Analogico_Ts(0, 1) Para Recibir un dato analógico por canal 0 a Fs=20Khz
Picture1.Scale (0, 256)-(256, -1)
Picture1.Cls
List1.Clear
For i = 0 To 255
List1.AddItem List1.AddItem "[ " & i & " ] = " & senal(i)
Picture1.Line -(i, senal(i))
Next i
End Sub
jmjacintos@hotmail.com
ESCRIBIR DATO ANALÓGICO (ENTRE 0 Y 255).
Se especifica canal 0 ó 1, además del dato.
Private Sub cmdEscribirAnalogico_Click()
DatoD = Val(Text4.Text)
DAQ.Escribir_Analogico 0, DatoD Para Enviar un dato analógico por canal 0
End Sub
INFORMACIÓN DEL PROGRAMADOR Y DISEÑADOR DEL MÓDULO
Private Sub mnuAcerca_Click()
DAQ.Acerca_De
End Sub
AUTOR: ING. JUAN MANUEL JACINTO SANDOVAL MSc. Contacto: jmjacintos@hotmail.com http://www.jmjacintos.blogspot.com Cel. 969949227
jmjacintos@hotmail.com
COMENZANDO A PROGRAMAR EN MATLAB
En la siguiente figura, se tienen todos los comandos necesarios para utilizar el módulo de adquisición de datos por USB. La función daqusb, también tiene 7 comandos. Es necesario hacer primero, una conexión con el dispositivo, luego se utilizan los respectivos comandos de transferencia de datos según la aplicación, y por último es necesario hacer la desconexión del dispositivo.
FIG. EDITOR DE MATLAB CON LOS COMANDOS DE ADQUISICIÓN POR USB
NOTA: Tener en la misma carpeta de trabajo los archivos: _mpusbapi.h y daqusb.p, de lo contrario agregar la carpeta al SET PATH… de Matlab. COMANDOS: OBTENIENDO AYUDA DEL COMANDO:
>>help daqusb
jmjacintos@hotmail.com
PARA HACER LA CONEXIÓN(1º PASO NECESARIO):
daqusb('Conectar_USB')
Según la operación a realizar ejecutar los siguientes comandos (Todos los datos son de 8 bits):
ESCRIBIR DATO DIGITAL (ENTRE 0 Y 255)
Entre apostrofes se especifica la función 'Escribir_Digital’, el puerto ‘A’ o ‘B’, además del dato tipo byte. Ejemplo:
daqusb('Escribir_Digital','A',uint8(255)) Envía un dato digital por el puerto A
LEER DATO DIGITAL (ENTRE 0 Y 255)
Entre apostrofes se especifica la función 'Leer_Digital’ y el puerto ‘A’ o ‘B’. Ejemplo:
dato = daqusb('Leer_Digital','B') Recibe un dato digital por el puerto B
ESCRIBIR DATO ANALÓGICO (ENTRE 0 Y 255).
Se especifica la función 'Escribir_Analogico', canal 0 ó 1, además del dato (tipos byte). Ejemplo:
daqusb('Escribir_Analogico',uint8(1),uint8(222)) Envía un dato analógico por canal 1
LEER DATO ANALÓGICO (ENTRE 0 Y 255).
La lectura se hace en tiempo real, para señales de hasta de 25 Hz.
Entre paréntesis se especifica un canal del 0 al 5
dato = daqusb('Leer_Analogico',uint8(0)) Recibe un dato analógico por canal 0
jmjacintos@hotmail.com
Para señales de hasta 10Khz (10000Hz), se utilizan solamente los canales 0 y 1, además como segundo parámetro, hay que especificar un número entre 0 y 5 (para Matlab) que especifica la frecuencia de muestreo (Teóricamente señales de hasta 25Khz):
0 Fs = 50Khz
1 Fs = 20Khz
2 Fs = 10Khz
3 Fs = 5Khz
4 Fs = 2Khz
5 Fs = 1Khz
El resultado es un vector de 256 muestras, como se muestra en el siguiente ejemplo:
senal = daqusb('Leer_Analogico_Ts', uint8(0), uint8(2)) Recibe un dato analógico por canal 0 a Fs = 10Khz
HACIENDO LA DESCONEXIÓN (ULTIMO PASO Y NECESARIO):
daqusb('Desconectar_USB')
AUTOR: ING. JUAN MANUEL JACINTO SANDOVAL MSc. Contacto: jmjacintos@hotmail.com http://www.jmjacintos.blogspot.com Cel. 969949227
jmjacintos@hotmail.com
PROGRAMA EJEMPLO PARA ENCENDER 8 LEDS EN MATLAB, DESDE 0 A 255, A INTERVALOS DE 200 mS. :
CIRCUITO ESQUEMÁTICO QUE SE CONECTA AL PUERTO “A”. SE UNEN TIERRAS CON EL MÓDULO (NO SE NECESITA FUENTE DE ALIMENTACIÓN ADICIONAL):
jmjacintos@hotmail.com
PROGRAMA EJEMPLO EN MATLAB, PARA ADQUIRIR UNA SEÑAL DE 1000 HZ , POR CANAL 0 Y FRECUENCIA DE MUESTREO DE 20Khz:
GRAFICA OBTENIDA DE LA ADQUISICIÓN
jmjacintos@hotmail.com
PROGRAMA EJEMPLO EN MATLAB, PARA ADQUIRIR UNA SEÑAL DE 106 HZ , POR CANAL 0 Y FRECUENCIA DE MUESTREO DE 1000Hz:
Resultado:
jmjacintos@hotmail.com
IMÁGENES DE ADQUISICIÓN