clc
close all

x=instrhwinfo('serial');%se declara una variable para leer las entrada seriales al computador
x.SerialPorts%se visualiza todas las entradas seriales
a = arduino('/dev/cu.usbmodem141401');%se crea la variable para usar el paquete de arduino ya instalado

PinLed='D13';%se declara la variable para el pin 13 del arduino que estara conectado al modulo relé
b = 0;%indicador en que estado esta el bombillo
writeDigitalPin(a,PinLed,0);%se inicializa el pin en bajo para no encender el bombillo

n = 10;

%wait(20);
while n > 1   
    disp('Programa de reconocimiento de voz')
    
    [aaC , aaF , aaT , aaA] = Audio();%funcion para traer toda la base de datos para todos los comandos de audio
    [aa] = CapturaDeAudio();%se captura el nuevo audio y se obtiene los coefeciente de LPC
    [comando, x1] = Comparacion(aaC , aaF , aaT ,aaA , aa);%funcion de comparacion del comando detectado
    disp (comando)%se visualiza el comando detectado
    
    pause(3)
    %si fue detectado el comando calido
    if x1 == 1 && b == 1
        disp('El sistema ya esta encendido y esta en nivel Calido')
    
    elseif x1 == 1 && b == 0
        writeDigitalPin(a,PinLed,1);
        b = 1;
        
    elseif x1 == 1 && b == 2
        writeDigitalPin(a,PinLed,0);
        pause(1);
        writeDigitalPin(a,PinLed,1);
        pause(1);
        writeDigitalPin(a,PinLed,0);
        pause(1);
        writeDigitalPin(a,PinLed,1);
        
        b = 1;
        
    elseif x1 == 1 && b == 3
        writeDigitalPin(a,PinLed,0);
        pause(1);
        writeDigitalPin(a,PinLed,1);
        
        b = 1;             
        
    %si fue detectado el comando templado
    elseif x1 == 2 && b == 0
        writeDigitalPin(a,PinLed,1);
        pause(1);
        writeDigitalPin(a,PinLed,0);
        pause(1);
        writeDigitalPin(a,PinLed,1);
        b = 2;
        
    elseif x1 == 2 && b == 1
        writeDigitalPin(a,PinLed,0);
        pause(1);
        writeDigitalPin(a,PinLed,1);
        b = 2;
        
    elseif x1 == 2 && b == 2
        disp('El sistema ya esta encendido y esta en nivel Templado')
        
    elseif x1 == 2 && b == 3
        writeDigitalPin(a,PinLed,0)
        pause(1);
        writeDigitalPin(a,PinLed,1);
        pause(1);
        writeDigitalPin(a,PinLed,0);
        pause(1);
        writeDigitalPin(a,PinLed,1);
        
        b = 2;
    
    %si fue detectado el comando frio
            
    elseif x1 == 3 && b == 0
        writeDigitalPin(a,PinLed,1);
        pause(1);
        writeDigitalPin(a,PinLed,0)
        pause(1);
        writeDigitalPin(a,PinLed,1);
        pause(1);
        writeDigitalPin(a,PinLed,0);
        pause(1);
        writeDigitalPin(a,PinLed,1);
        
        b = 3;
        
     elseif x1 == 3 && b == 1
        writeDigitalPin(a,PinLed,0);
        pause(1);
        writeDigitalPin(a,PinLed,1);
        pause(1);
        writeDigitalPin(a,PinLed,0);
        pause(1);
        writeDigitalPin(a,PinLed,1);
        b = 3;
        
     elseif x1 == 3 && b == 2
        writeDigitalPin(a,PinLed,0);
        pause(1);
        writeDigitalPin(a,PinLed,1);
        b = 3;

     elseif x1 == 3 && b == 3
        disp('El sistema ya esta encendido y esta en nivel TRES')

    %si fue detectado el comando apagar sistema    
    elseif x1 == 4
        writeDigitalPin(a,PinLed,0);
        b = 0;

        
    end
   
end

