[go: up one dir, main page]

0% encontró este documento útil (0 votos)
19 vistas2 páginas

ADQ Arduino y Matlab

El laboratorio se centra en la utilización de Arduino Uno para la adquisición de señales y la obtención de la respuesta de un sistema discreto mediante su ecuación en diferencias. Se detallan los pasos para instalar Arduino en Matlab y adquirir datos de un potenciómetro, así como la implementación de un sistema con una ecuación en diferencias específica. El procedimiento incluye la configuración de gráficos en tiempo real para visualizar tanto la entrada como la salida del sistema.

Cargado por

guiovanny
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
19 vistas2 páginas

ADQ Arduino y Matlab

El laboratorio se centra en la utilización de Arduino Uno para la adquisición de señales y la obtención de la respuesta de un sistema discreto mediante su ecuación en diferencias. Se detallan los pasos para instalar Arduino en Matlab y adquirir datos de un potenciómetro, así como la implementación de un sistema con una ecuación en diferencias específica. El procedimiento incluye la configuración de gráficos en tiempo real para visualizar tanto la entrada como la salida del sistema.

Cargado por

guiovanny
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 2

UNIVERSIDAD SURCOLOMBIANA

PROGRAMA: INGENIERÍA ELECTRÓNICA


CURSO: PROCESAMIENTO DIGITAL DE SEÑALES
PROFESOR: M. I. JORGE ANTONIO POLANÍA P.

LABORATORIO No 3: RESPUESTA DE UN SISTEMA DISCRETO

OBJETIVOS

 Utilizar la tarjeta de Arduino Uno como sistema de adquisición de señales e


interactuar con Matlab para su adquisición.
 Obtener la respuesta de un sistema identificado mediante su ecuación en
diferencias.

PROCEDIMIENTO

1. Instalar Arduino en Matlab. En la página www.mathworks.com, en Matlab


Support for Arduino, descargar el archivo arduinoIO.zip. Abrir Matlab y copiar
carpeta arduinoIO, abrirla y escribir en el cursor de Matlab
>> install_arduino
2. En la página de arduino, www.arduino.cc descargar e instalar el arduino. En la
carpeta arduino abrir el archivo adioes.pde. Conectar la tarjeta y cargar el archivo.
Verificar el puerto donde quedó instalado el arduino en el computador,
observando en Herramientas Puerto COMX
3. En Matlab instalar el arduino haciendo
>> ar=arduino(‘ COMX’);
Para leer el conversor AD del arduino se utiliza en Matlab
ar.analogRead(X); X es una entrada del conversor
4. Conectar un potenciómetro de 10K en la entrada analógica del arduino A0 a 5V

5. ADQUISICIÓN DE DATOS USANDO ARDUINO UNO

Ejecute este programa en Matlab para leer el potenciómetro conectado al


arduino. (Tomado de un video interesante del profesor Rodrigo Franco de la UTP
con algunas modificaciones)

% 1. ADQUISICIÓN DE DATOS USANDO ARDUINO UNO

%Formato para la línea de la gráfica


linea=line(nan,nan,'color','r','LineWidth',1);
fs=50; %frecuencia de muestreo
N = 1000; %tamaño del vector de muestras
ylim([0 5]);
xlim([0 (N-1)/fs]);
grid
y = zeros(N,1);
t =linspace(0,(N-1)/fs,N); %vector tiempo
stop=1;
uicontrol('Style','Pushbutton','String','Parar',...
'Position', [20 20 50 20],...
'Callback','stop=0;');
uicontrol('Style', 'pushbutton', 'String', 'Borrar',...
'Position', [500 20 50 20],...
'Callback', 'cla');
while stop
tic
y(1:end-1)=y(2:end); % hay que hacer el pop de muestras guardadas
y(end)=ar.analogRead(0)*(5/1023);
toc
set(linea,'Xdata',t,'Ydata',y);
drawnow
end

6. RESPUESTA DE UN SISTEMA CON ECUACIÓN EN DIFERENCIAS

% 2. SALIDA DEL SISTEMA CON ECUACIÓN EN DIFERENCIAS


% Ecuación en diferencias del sistema
% y(n)=-a1y(n-1)-a2y(n-2)+b1x(n-1)+b2x(n-2)
% Función de transferencia de un sistema estable
% 0.001578 z + 0.001558
% H(z)= -------------------
% z^2 - 1.958 z + 0.9608
clear x y
fs=50; %frecuencia de muestreo
%Coeficientes de la ecuación en diferencias
b1=0.001578;
b2=0.001558;
a1= -1.958;
a2=0.9608;

%Formato para la línea de la gráfica


lineax=line(nan,nan,'color','r','LineWidth',1); % entrada x(n)
lineay=line(nan,nan,'color','b','LineWidth',1); % salida y(n)
N = 1000; %tamaño del vector de muestras
ylim([0 5]);
xlim([0 (N-1)/fs]);
grid
x = zeros(N,1);
y = zeros(N,1);
t =linspace(0,(N-1)/fs,N); %vector tiempo
stop=1;
uicontrol('Style','Pushbutton','String','Parar',...
'Position', [20 20 50 20],...
'Callback','stop=0;');
uicontrol('Style', 'pushbutton', 'String', 'Borrar',...
'Position', [500 20 50 20],...
'Callback', 'cla');
while stop
tic
x(1:end-1)=x(2:end);
x(end)=ar.analogRead(0)*(5/1023);
y(1:end-1)=y(2:end);
y(end)= -a1*y(end-1)-a2*y(end-2)+b1*x(end-1)+b2*x(end-2);
toc
set(lineax,'Xdata',t,'Ydata',x);
set(lineay,'Xdata',t,'Ydata',y);
drawnow
end

También podría gustarte