martes, 15 de marzo de 2016

Medición en colorímetro

Para encontrar el polinomio que se ajusta al promedio de las mediciones presiona aqui:
Ajuste de curvas
PROGRAMA PARA REALIZAR MEDICIONES EN EL COLORÍMETRO

PROGRAMA PARA REALIZAR MEDICIONES EN EL COLORÍMETRO

En este programa se dan las intrucciones para ingresar el nombre de la hoja de excel en que se guardaran y el numero de muestras arroja un promedio.

Contents

Pregunta si quieres empezar

clc
close all
clear all
di=input('Quieres hacer mediciones Si(1) No(2):     ');
if di>2 | di<1
    disp('ERROR VUELVE A INTENTAR...')
    pause(1)
    clc
    di=input('Quieres hacer mediciones Yes(1) No(2):     ');
else if di==2
        pause(1)
        disp('Adios...')
    end
end

Corre el programa

while di==1
Lama a la tarjeta arduino
    a=arduino('COM4');
    disp('Comenzamos!!!')
pwm rojo
    a.pinMode(9, 'OUTPUT');
pwm verde
    a.pinMode(10,'OUTPUT');
pwm azul
    a.pinMode(11,'OUTPUT');
En este archivo se registran las mediciones
    filename='Mediciones.xlsx';
Es el nombre de la hoja de excel donde se almacenan las mediciones
    sheet=input('Escribe el nombre de la hoja :     ','s');
    mu=input('Ingresa el numero de muestras:   ');
    %
    in=0;
    while mu>0
        mu=mu-1;
        in=in+1;
        fprintf('*********    Muestra núm %1.0f \n',in)
        for i=9:11,
            a.digitalWrite(i,1);
        end
        pause(1)

Rojo ON

        a.digitalWrite(9,0)
        pause(0.5)
Normaliza el valor leído con la fotorresistencia
$$ Valor={1023-v/1023}*254 $$
        vr(in,1)=((1023-analogRead(a,0))/1023)*254;
        disp('valor rojo:  ')
        disp(vr)
        a.digitalWrite(9,1)
        pause(.5)

Verde ON

        a.digitalWrite(10,0)
        pause(0.5)
        vv(in,1)=((1023-analogRead(a,0))/1023)*254;
        disp('valor verde:  ')
        disp(vv)
        a.digitalWrite(10,1)
        pause(.5)

Azul ON

        a.digitalWrite(11,0)
        pause(0.5)
        va(in,1)=((1023-analogRead(a,0))/1023)*254;
        disp('valor azul:  ')
        disp(va)
        a.digitalWrite(11,1)
        pause(.5)

Blanco, todos los leds son encendidos

        for i=9:11,
            a.digitalWrite(i,0);
        end
        pause(0.5)
        vb(in,1)=((1023-analogRead(a,0))/1023)*254;
        disp('valor blanco:  ')
        disp(vb)
        pause(.5)

Negro, todos los leds se apagan

        for j=9:11,
            a.digitalWrite(j,1);
        end
        pause(0.5)
        vn(in,1)=((1023-analogRead(a,0))/1023)*254;
        disp('valor negro:  ')
        disp(vn)
    end
Promedia los vectores construidos con el número de muestras
    pr=mean(vr);
    pv=mean(vv);
    pa=mean(va);
    pb=mean(vb);
    pn=mean(vn);
    a={'Prom rojo','Prom verde','Prom azul','Prom blanco','Prom negro'; pr, pv, pa, pb, pn};

Escritura en excel

    xlswrite(filename,vr,sheet,'A1')
    xlswrite(filename,vv,sheet,'B1')
    xlswrite(filename,va,sheet,'C1')
    xlswrite(filename,vb,sheet,'D1')
    xlswrite(filename,vn,sheet,'E1')
    xlswrite(filename,a,sheet,'F1')
    disp('Si quieres ya puedes ver los datos en el archivo Mediciones.xlsx');
Vuelve a preguntar si quieres mas mediciones
    di=input('Quieres hacer mediciones: Yes(1) No(2):   ');
    if di >2 | di<1
        disp('ERROR VUELVE A INTENTAR...')
        pause(1)
        clc
        di=input('Quieres hacer mediciones Si(1) No(2):     ');
    else if di==2
            pause(0.7)
            disp('Adios...')
        end
    end
end
Error using input
Cannot call INPUT from EVALC.

Error in p4 (line 9)
di=input('Quieres hacer mediciones Si(1) No(2):     ');

No hay comentarios:

Publicar un comentario