# Manejo de puertos por matlab



## henry mora (Ene 4, 2009)

hice un ecg "electrocardiograma" y quiero visualizar la señal en matlab y ps lo unico que se es que hay q manejar puertos y pues este programa no lo conozco muy bien en fin es un trabajo para la universidad, no tengo bases en este programa y me da un poco de miedo dañar los puertos de mi equipo, alguien me podria colaborar con esto.....gracias


----------



## sangreaztk (Ene 4, 2009)

Con que puerto lo quieres hacer?
Para el que sea, MatLab cuenta con un montón de documentación, usa el botón 'Help' que está en Matlab o dirigete a la pagina oficial, espero que sepas ingles.
Si vas a usar el puerto Serie, te pongo unas ordenes útiles para por lo menos empieces a hacer pruebas.


```
sxxx = serial('COM1', 'BaudRate', 9600);     % Crea una variable 'sxxx' asociada con el puerto serie COM1
                                             % (en GNU/Linux es del tipo '/dev/tty0') con una velocidad de 9600 Bauds
fopen(sxxx);         % Abre el puerto
fwrite(sxxx, 5);     % Escribe en el puerto el valor de '5' decimal
fscanf(sxxx, 1);     % Lee un dato del buffer del puerto
fclose(sxxx);        % Cierra el puerto
```

Para el puerto Serie es necesario usar un hardware, se puede hacer fácilmente con un PIC u otro microcontrolador o chip, y si vas a usar el Paralelo lo ideal es que usaras un buffer. Éxito!
Buena Vibra!


----------



## henry mora (Ene 5, 2009)

gracias si lo del circuito para proteger el puerto tengo algo de idea como hacerlo, voy a intenar con este codigo q me paso creo q esto es de gran ayuda con esto puedo seguir avanzando en esto. Gracias


----------



## sangreaztk (Ene 5, 2009)

Lo de un circuito para proteger el puerto es para el paralelo, el de impresora. Y los comandos que te pase son para el Serie, para este es un circuito con un microcontrolador y la mayoría de veces con además un MAX232.
Puedes buscar en este foro un código que publique para un PIC para el Serie. O si quieres usar el paralelo también hay algo de información en estos foros.
Buena Vibra!


----------



## henry mora (Ene 5, 2009)

muchisismas gracias esto me sera de gran ayuda


----------



## henry mora (Ene 31, 2009)

despues de  dias de trabajo logre crear un codigo q me lee la señal de entrada, siendo principiante en matlab descubri q es mas facil usar el puertos de la tarjeta de sonido, ahora me nace otra inquietud ps no se como protejer este puerto


----------



## sangreaztk (Ene 31, 2009)

OoooooooooooOOOOOOooooooooooo puedes usar la tarjeta de sonido! está chido eso! porfa pasa la información de eso! que se oye muy interesante, y supongo que ya no es necesario un CAD, no?

Para proteger la tarjeta de sonido? pss no sé, supongo que construyendo algún amplificador o con otro dispositivo de audio, investiga cual es la tensión máxima con que trabaja el in de la tarjeta.

Buena Vibra!


----------



## henry mora (Ene 31, 2009)

Para la adquisicion de datos por medio de la tarjeta de sonido primero se crea un objeto del canal analogico de entrada "ai" para la tarjeta de sonido (ai=analogicinput(`windsound´)).
Luego agregamos canales addchannel(ai,1);
luego configuramos la tasa de muestreo deseada  y timepo de captura de muestras
adquirir datos  e iniciar ala adquisicion star(ai) data=getdata(ai); plot(data)


----------



## henry mora (Ene 31, 2009)

Ahora veo otros problemas ono se si lo sean ps no se q tipo de proteccion deba usar para esta tarjeta; no estoy muy seguro como el ecg maneja frecuencias muy bajas ps npo se si sea convenientew usar un preamplificador para esta tarjeta


----------



## sangreaztk (Ene 31, 2009)

Hey bro!
mira! encontré esta información, creo que te es de ayuda:

https://www.forosdeelectronica.com/f13/osciloscopio-tarjeta-sonido-906/

Buena Vibra!


Edito:
Y por lo que dice el post, la tensión max usual es de +-0.7V, es muy poco, pero ni pex.


----------



## henry mora (Feb 25, 2009)

para lograr la freecuencia a 60 hz q es la del corazon se utilizo un filtro doble T o tambien se puede usar un filtro noch y no fue necesario utilizar proteccion al puerto ps a la salida llegaba un voltaje muy pequeño menor a los 200mV


----------



## padillon (Feb 10, 2010)

hola gente del foro, les escribo porque tengo un problema con el puerto serie de matlab que me esta volviendo loco.
el tema es asi: tengo que hacer andar una placa RIAC1600DA que funciona con un protocolo de cadenas de carateres terminados con un "retorno de carro" como instruccion, y que para cada instruccion recibida(ej, #1 GV), la placa da una respuesta (en este caso GV=get version).
el problema es que le envio las instrucciones pero no me manda la respuesta asi que se ve que algo estoy haciendo mal

el programa que hice es el siguiente:

-----------------------------------------------------------------
clc; close all; clear all;
s1=serial ('COM1','baudrate',9600,'databits',7,'parity','even','stopbits',1,'terminator','CR');    %config de comunicacion asincrona de la placa
fopen(s1)
fprintf(s1,'#1 GV')  %supuestamente al ultimo envia el 'CR' del terminator
[respuesta,count,msg] =fscanf(s1)    %pa leer la respuesta de la placa, que nunca llega

fclose(s1)
delete(s1)
clear s1
----------------------------------------------
desde ya le voy a agradecer a quien me pueda ayudar, decirme que estoy haciendo mal, que me falta o si hay que configurar alguna otra cosa porque la verdad que ya probe todo lo que estaba a mi alcance.
y la placa trae un programa para enviarle instruicciones ala placa, y al usarlo SI funciona bien pero ese programa esta en visual
ah otra cosa mas. en c++ ya la pude hacer andar y en matlab no!!!!!


----------

