Puerto Serial Con Matlab

1 PUERTO SERIAL USANDO MATLAB El siguiente código está escrito para la siguiente situación: Un dispositivo (para el cas

Views 119 Downloads 0 File size 137KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

1

PUERTO SERIAL USANDO MATLAB El siguiente código está escrito para la siguiente situación: Un dispositivo (para el caso en que se usó este programa fue un pic) está conectado a través de un circuito a tres sensores: voltaje, corriente y frecuencia. Mediante un conversor A/D envía al puerto serial de la PC (a 9600 bauds) los datos en código Ascii como siguen: 1. El dispositivo envía primero una "A" (cod. Ascii 65) así el programa en Matlab sabe que llegarán los dotos de una muestra de corriente que se guardará en el vector A. 2. Para la muestra de corriente siempre llegarán cuatro caracteres, por ejemplo, para 0.134 amperios, el dispositivo enviará al puerto serial los códigos Ascii de los caracteres "0", ".", "1", "3" y "4". 3. El dispositivo envía a continuación una "B" (cod. Ascii 66) así el programa en Matlab sabe que llegarán los dotos de una muestra de voltaje que se guardará en el vector V. 4. Para la muestra de voltaje siempre llegarán cuatro caracteres, por ejemplo, para 5.250 voltios, el dispositivo enviará al puerto serial los códigos Ascii de los caracteres "5", ".", "2", "5" y "0". 5. El dispositivo envía a continuación una "F" (cod. Ascii 70) así el programa en Matlab sabe que llegarán los dotos de una muestra de frecuencia que se guardará en el vector F. 6. Para la muestra de frecuencia no se sabe cuántos caracteres llegarán. Si se miden 50 Hz llegarán dos caracteres: "5" y "0". Si se miden 1550 Hz llegarán cuatro caracteres: "1", "5", "5" y "0". Nadie sabe cuantos caracteres llegarán, sólo se sabe que éstos se terminan cuando se recibe nuevamente una "A" y todo el ciclo (desde el paso 1) se vuelve a repetir. El programa almacenará cien muestras por cada parámetro leído (voltaje, corriente y frecuencia), las almacenará en sus respectivos vectores y mostrará estos en una gráfica en pantalla. Todo esto se repetirá ochenta veces. Entonces el programa cierra el puerto y finaliza.

2

El código completo del programa es el siguiente: clear all; close all; clc; PS=serial('COM1'); set(PS,'Baudrate',9600); % se configura la velocidad a 9600 Baudios set(PS,'StopBits',1); % se configura bit de parada a uno set(PS,'DataBits',8); % se configura que el dato es de 8 bits, debe estar entre 5 y 8 set(PS,'Parity','none'); % se configura sin paridad set(PS,'Terminator','CR/LF');% “c” caracter con que finaliza el envío set(PS,'OutputBufferSize',1); % ”n” es el número de bytes a enviar set(PS,'InputBufferSize' ,1); % ”n” es el número de bytes a recibir set(PS,'Timeout',5); % 5 segundos de tiempo de espera fopen(PS); A=[]; %corriente V=[]; %voltaje F=[]; %frecuencia A1=[]; %temp corriente V1=[]; %temp voltaje F1=[]; %temp frecuencia Ch=0; disp('presione enter para iniciar captura (solo se puede parar la ejecucion mediante control-C)'); pause; inn=1; frec=0; while inn