Está en la página 1de 4

UNIVERSIDAD TECNICA DE AMBATO

INSTRUMENTACION Y CONTROL

Integrantes: Diego Lopez, Diego Pazmio

Analisis cdigo arduino


int valor;
char dato, enviar;
void setup (){
Serial.begin(9600);
configura a 9600 bps
pinMode(13,OUTPUT);
salida
}
void loop() {
valor=analogRead(A0);
delay(0.2);
enviar=map(valor,0,1023,0,255);
analgico (entre 0 y 1023)

crea una variable temporal valor


crea una variable dato
abre

el

Puerto

serie

la

declara el pin 13 como

pausa 0.2 milisegundos


Transforma un valor
a un valor en 8 bits (0

to 255)
Serial.print(enviar);
delay(20);
if (Serial.available())

{
dato=Serial.read();
leido
if (dato=='a')
{
digitalWrite(13,HIGH);
pin 13
}
if (dato=='b')
[B]
{
digitalWrite(13,LOW);
pin 13
}
}
}

muestra el valor ledo(enviar)


pausa de 20 ms
devuelve el nmero de bytes
(caracteres u
octetos) disponibles
para su lectura desde el puerto serie.
lee los datos que ha llegado
si dato es igual al valor
dato es igual [A]
se escribe el valor alto en
si dato es igual al valor
se escribe valor bajo en el

UNIVERSIDAD TECNICA DE AMBATO


INSTRUMENTACION Y CONTROL

Integrantes: Diego Lopez, Diego Pazmio

Anlisis Cdigo mathlab


clc %borra el command windows
close all %cierra todas las ventanas gr?ficas
%clear all %borra todas las variables
%ar=arduino('COM3');
Fs=50; %frecuencia de muestreo

tiempo de ejecucin muestreo

N=1000; %tama?o del vector


Inicializamos
Leera el puerto serie los datos en el formato que hemos especificado ,
midiendo el tiempo de ejecucin y actualizando los dos objetos
u=zeros(N,1); %Vector de entrada //datos de entrada
y=zeros(N,1);
t=linspace(0,(N-1)/Fs,N); %Vector de tiempo Lo que queremos visualizar
l1=line(nan,nan,'Color','r','LineWidth',2); Lo que queremos visualizar
l2=line(nan,nan,'Color','b','LineWidth',2); Lo que queremos visualizar
ylim([-0.1 5.1])
medida de voltaje
xlim([0 (N-1)/Fs])
grid
Stop = 1;
uicontrol('Style','Pushbutton','String','Parar',...Boton de paro
'Callback','Stop = 0;')
%%%
H=tf(8,[1 2 8]);
h toma los valores de la funcin de
transferencia de segundo grado
Hd=c2d(H,1/Fs);
hd la funcin de transferencia en el
tiempo ,,, c2d es el convertidor de modelo continuo a discreto
a=Hd.den{1};
a1=a(2);
a1 es la constant de proporcionalida
a2=a(end);
b=Hd.num{1};
b1=b(2);
b1 es el tiempo integral
b2=b(end);
b2 es el tiempo derivativo
%%%
tic
while Stop
dentro del while se realiza el control y
estabilizacion de la seal
if toc > 1/Fs
tic
u(1:end-1)=u(2:end);
u(end)=ar.analogRead(0)*5/1023; conversion analoga a digital
y(1:end-1)=y(2:end);
y(end)=-a1*y(end-1)-a2*y(end-2)+b1*u(end-1)+b2*u(end-2); y(end)es el
pid
set(l1,'XData',t,'YData',u)

UNIVERSIDAD TECNICA DE AMBATO


INSTRUMENTACION Y CONTROL

Integrantes: Diego Lopez, Diego Pazmio


set(l2,'XData',t,'YData',y)
set da nombre a los ejes
drawnow
end
end

visualizacin en mathlab

UNIVERSIDAD TECNICA DE AMBATO


INSTRUMENTACION Y CONTROL

Integrantes: Diego Lopez, Diego Pazmio

También podría gustarte