[SOLUCIONADO]Problema HC-06 y puertos COM

Buenas a todos, me esta surgiendo un problema con el modulo de Bluetooth HC-06. La cuestión es que no consigo conectarme siempre mediante putty y me indica que no es posible conectarse a ese puerto COM y que es imposible abrir el puerto serial. Antes de nada, indicar que si que he conseguido conectarme varias veces, pero la cosa es que ahora me es imposible, he probado a reiniciar el modulo Bluetooth en el Arduino, volver a subir el skecht, reiniciar el ordenador, cambiar los puertos COM a los que se conecta, quitar el dispositivo de Windows y volver a agregarlo, deshabilitar el antivirus y supongo que algo mas.

También he intentado conectarme desde Matlab y me pasa mas o menos lo mismo, me indica que el puerto COM esta siendo usado y no es posible conectarse, a lo que revisando las conexiones abiertas desde el propio Matlab (mediante la herramienta tmtools) no hay nada conectado, aunque si que me detecta el puerto COM del bluetooth y de Arduino.

Revisando los puertos COM usados en mediante el administrador de dispositivos, solo veo que se usen 3, 1 del Arduino y los otros 2 del Bluetooth.

Decir que estoy usando un Arduino DUE, conectando la alimentación de 5V a VCC y el Serial3 cruzado con el serial del Bluetooth

Os dejo los códigos que he usado por si veis que se me olvide algo

Un saludo y gracias por la ayuda


Código de configuración del modulo Bluetooth

void setup() {
    Serial.begin(38400);
    // Comandos de configuracion del HC06
    Serial3.begin(38400);
    Serial3.print("AT");
    delay(1000);
    Serial3.print("AT+NAMEHC-06");
    delay(1000);
    Serial3.print("AT+PIN0000");
    delay(1000);
    Serial3.print("AT+BAUD6");
    delay(1000);
}

void loop(){
    if(Serial3.available())    // Si llega un dato por el puerto Serial3 se envía al monitor serial
    {
        Serial.write(Serial3.read());
    }
 
    if(Serial.available())  // Si llega un dato por el monitor serial se envía al puerto Serial3
    {
        Serial3.write(Serial.read());
    }
}


Prueba de transmisión/recepción

[b]​Código de Arduino[/b]
/*
 * 
 *  CODIGO PARA PRUEBAS UN HC-06
 * 
 */

int a1 = 11;
int a2 = 21;

int val = 0;

int cont = 0;
void setup() {
    Serial.begin(38400);
    // Comandos de configuracion del HC06
    Serial3.begin(38400);
    delay(500);
}

void loop(){
    
    // Pruebas de transmision
    if( Serial3.available() > 0 ) {  // Si llega un dato por el monitor serial se envía al puerto Serial3    
        val = Serial3.read();
        Serial.println(val);
        if(val == 10) {
            Serial3.println(a1);
        }
        else if (val == 20) {
            Serial3.println(a2);
        }
        cont = 0;
    }
    else {
        cont++;
        Serial3.println(cont);
        Serial.println(cont);
    }

    if (cont%100 == 0){
        Serial.println("Nada que informar");
        cont++;
    }

delay(2000);

}

Código en Matlab

%% Codigo de prueba para lectura %%
close all;clear all; clc;

% Inicializo el puerto serial que usare
delete( instrfind({'PORT'},{'COM5'} ));
puerto_serial = serial('COM5');
puerto_serial.BaudRate = 38400;
puerto_serial.DataBits = 8;
puerto_serial.StopBits = 1;
puerto_serial.Terminator = 'CR/LF';
puerto_serial.Parity = 'none';
%puerto_serial.FlowControl = 

warning('off','MATLAB:serial:fscanf:unsuccessfulRead');

disp('Abriendo puerto serial');
% Abro el puerto serial
fopen(puerto_serial);
disp('puerto serial abierto');

pause(5);
cont = 1;
y = zeros(4,1);
% Leo datos
disp('Leo datos');
while cont < 20
    valor = fscanf(puerto_serial,'%d/n',1)';
    disp(valor);
    y(cont) = valor;
    cont=cont+1;
end


% Cierro el puerto serial y borro la conexion
fclose(puerto_serial);
delete(puerto_serial);

Aunque el problema no este solucionado, dejo esto por aquí por si a alguien le pasa lo mismo. El principal problema que he encontrado es que cuando ejecuto mi código en Matlab, me bloquea el puerto COM y ni con el Putty ni Matlab consigo desbloquearlo, pese a que borro la conexión en Matlab. Así que mi única opción es reiniciar, pasar de Matlab y usar el Putty.

Un saludo

Dejo la solución por aquí, aunque para mi gusto es una aproximación a lo que quería.
Resulta que la versión de matlab que usaba tiene problemas para leer los puertos COM y la creación de un objeto Bluetooth no era del todo funcional. Al actualizar a la versión de Matlab 2017a, ya si se puede crear un objjeto del tipo Bluetooth de manera sencilla y trabajar con él.
Eso si, sigue sin poder conectarse con el puerto COM bajo petición, me sigue dando error.

Un saludo