Alguien sabe porque cuando utilizo la librería SoftwareSerial en Arduino UNO esta no me funciona, no recibo ningún dato.
Estoy utilizando un modulo BlueTooth HC-05 y la APP BlueTooth Serial Control para enviar el carácter 1 para poder encender un Led Rojo, 2 para apagarlo, 3 para encender un Led verde y 4 para apagarlo.
Los datos los debería de recibir del modulo por el pin 10, pero no funciona, no consigo encender ningún Led.
¿Alguna idea?, ¿ como podría comprobar que recibo datos ?
Gracias.
#include <SoftwareSerial.h>
SoftwareSerial miBT(10, 11);
char DATO = 0;
int LEDROJO= 2;
int LEDVERDE= 3;
void setup(){
miBT.begin(38400);
pinMode (LEDROJO, OUTPUT);
pinMode (LEDVERDE, OUTPUT);
}
void loop(){
if (miBT.available()){
DATO = miBT.read ();
if (DATO == '1')
digitalWrite (LEDROJO, HIGH);
if (DATO == '2');
digitalWrite (LEDROJO, LOW);
if (DATO == '3');
digitalWrite (LEDVERDE, HIGH);
if (DATO == '4');
digitalWrite (LEDVERDE, LOW);
Hi,
Yo lo haria haciendo un print despues que leas la variable DATO en cada if . Asis sabra si estas reciebiendo data del bluetooth.
¿Seguro que el HC-05 está seteado a 38400?
Solucionado, código mal escrito, he puesto PUNTO Y COMA después de if (DATO == ); (ERROR)
if (DATO == '2');
digitalWrite (LEDROJO, LOW);
if (DATO == '3');
digitalWrite (LEDVERDE, HIGH);
if (DATO == '4');
digitalWrite (LEDVERDE, LOW);
TAURO0221=
He añadido un print y además de encender y apagar los LED lo puedo ver en monitor serie
#include <SoftwareSerial.h>
SoftwareSerial miBT(10, 11);
char DATO = 0;
int LEDROJO= 2;
int LEDVERDE= 3;
void setup(){
Serial.begin(9600);
miBT.begin(38400);
pinMode (LEDROJO, OUTPUT);
pinMode (LEDVERDE, OUTPUT);
}
void loop(){
if (miBT.available()){
DATO = miBT.read ();
Serial.print( DATO);
if ( DATO == '1')
digitalWrite (LEDROJO, HIGH);
if ( DATO == '2')
digitalWrite (LEDROJO, LOW);
if ( DATO == '3')
digitalWrite (LEDVERDE, HIGH);
if ( DATO == '4')
digitalWrite (LEDVERDE, LOW);
}
}
Gracias a los dos por vuestra ayuda.
Si, tengo el modulo configurado a 38400 baudios
Gracias.