**** HC-05 y Arduino Leonardo****

Buen día a todos, el día de hoy quiero solicitar una ayuda con el tema del HC-05 y el Arduino Leonardo, el cual no he podido lograr realizar el ejercicio básico el cual es encender y apagar un led desde mi celular, he tratado de investigar las conexiones con este arduino y el código sin éxito EN LA TRANSMISIÓN DEL DATO.

Sucede que no he encontrado casi información de como conectar el Leonardo al modulo, a pesar de que he podido realizar la configuración de comandos AT mediante esta placa, pero, repito, sin éxito en la transmisión del dato.

Obviamente estoy cometiendo un error pero no estoy seguro si es en el código o en la conexión

Agradecería la ayuda de todos usds.

void setup()
{
  pinMode(13,OUTPUT);//Seleccionamos el pin 13 como salida
  Serial.begin(9600);
  while(!Serial){
    ;
  }

  Serial.println("Inicio!");

}

void loop()
{
  while (Serial.available())//Declaramos un sentencia, Mientras el puerto Serial este disponible se empieza el ciclo 
  {
    Serial.println("disponible");
    char dato= Serial.read(); //Declaramos una variable de tipo carácter y Seo lee la variale enviada desde el Bluetooth.
    digitalWrite(13,LOW); //Indicamos que en el puerto 13 la señal será baja por lo que el LED estará apagado.
    switch(dato)
    {
    case 'a': //Si en el caso de ser A la varible enviada, entonces:
      {
        digitalWrite(13,HIGH);//La señal será alta, encenderá el LED.
        Serial.println("Led encendido");//Se mostrará un mensaje.
        break;//El caso se detiene.
      }
    case 'b': //Si en el caso de ser A la variable enviada, entonceS:
      {
        digitalWrite(13,LOW);//la señal será baja por lo que el LED estará apagado.
        Serial.println("Led apagado");//Se mostrará un mensaje.
        break;
      }
    }       
  }
}

HC-05 con leonardo.jpg

Espero que por fin halla quedado bien esta vaina

Hola. En Arduino Leonardo hay que usar el comando Serial1, no Serial. Prueba eso y coméntanos si te funciona. ;)

Lo siento no entendí, en que punto debería cambiar, el serial1, lo que sucede es que yo había cambiado todo a serial1 sin éxito, entonces de pronto solo era uno, como quedaría la sugerencia.

Tienes que cambiarlo en todo el programa. El Leonardo es el hermano mayor del UNO pero tiene algunas pequeñas diferencias, y una de ellas es el manejo del puerto serie. No lo recuerdo con exactitud, puede que me equivoque, pero Serial es para los pines 0 y 1 y Serial1 es para la comunicación serie entre placa y ordenador. ;)

Por favor lee las normas del foro y edita tu post usando etiquetas.

El Arduino Leonardo si que tiene 2 puertos serial. Serial para el USB y Serial1 para los pins 0 y 1.

Acá tienes un buen hilo para consultar https://forum.arduino.cc/index.php?topic=312910.0

Recuerden que sus preguntas ya han sido hechas, solo busquen en el foro. No hay que ser cómodo pidiendo la solución. Ahora si la encuentran y no la entienden esa es otra cuestión.

Muchas gracias por la información pero en ese caso pienso que la estructura del foro se queda corta, ya que seria mucho mas fácil solicitar la información poniendo, la palabra clave que seria HC-05 + arduino leonardo y que aparezcan las paginas donde están, pero desafortunadamente no me ha funcionado ni cambiando a serial1 no dejando serial ni nada entonces quiero saber que esta mal, y no tener que buscar pagina a pagina a alguien que pasa por lo mismo

2da Advertencia. Edita el post#4 usando etiquetas de código y dime cual cierro : este hilo o tu intervención en el foro en inglés preguntando lo mismo. Esto es doble post!!

Además en el foro en ingles ya te dijeron que no conectes el BT a 10,11 sino a 0,1 asi que hazles caso.

juancdrg5: void loop(){ if(Serial1.available()>0){ Serial.println("Conexion!"); dato = Serial1.read(); }

Ahí te falta aún un Serial que cambiar. Puede que eso sea lo que aún te genere fallo. ;)

int led13 = 13;
int dato = 0;
int estado = 0;

void setup()
{
  pinMode(13,OUTPUT);//Seleccionamos el pin 13 como salida
  Serial.begin(9600);
  while(!Serial){
    ;
  }
    Serial1.begin(38400);
  while(!Serial1){
    ;
  }
  Serial.println("Inicio!");

}

void loop(){

  if (Serial1.available()>0){
      estado = Serial1.read();
      Serial.println(estado);
      }
    
    if(dato == "1" || "a" ){
      Serial.println("Led encendido");
      digitalWrite(led13, HIGH);
      }
      
      if (dato == "2" || "B"){
        Serial.println("Led apagado");
        digitalWrite(led13, LOW);
        }

}

Srs, miren que ya pude recibir datos del HC-05, ya hubo un avance y ya se que el modulo no esta dañado (respiro); pero a pesar de que ya recibo datos no son los datos que envío de la aplicación los cuales serian "A" y "B o "1" y "2", cuando presiono ON me envía un 120 y debajo un 148 y cuando presiono OFF un 148 y debajo 0.

Tengo conectado VCC, GND, TX -> divisor de voltaje -> RX y RX -> TX

Ya estoy cerca que mas faltara? :)