Hola amigos, hace tiempo no pasaba por acá pues había estado lejos de los proyectos. Sucede que estoy haciendo un coche simple, de dos motores y puente h que recibe los comandos de un celular android con una App desarrollada en AppInventor.
Los comandos son simples letras Mayúsculas (A, B, C, D, E) he tenido varios problemas con la conexión via bluetooth usando el módulo HC-06, sin embargo ya he logrado vincularlos y tener comunicación; el problema es que no me recibe correctamente los caracteres enviados, la respuesta siempre es "-1" de modo que nada funciona.
Adjunto El código y la imagen del monitor serial por si alguien puede ayudarme, les agradezco mucho!
#include <SoftwareSerial.h> //Librería que permite establecer comunicación serie en otros pins
//Aquí conectamos los pins RXD,TDX del módulo Bluetooth.
SoftwareSerial BT(10, 11); //10 RX, 11 TX.
char estado;
int izqA = 7;
int izqB = 8;
int derA = 4;
int derB = 9;
int pwmpin[2] = {5, 6}; // PWM input
int Enapin[2] = {A0, A1}; // Enable input
void setup() {
Serial.begin(9600); //Abrimos la comunicación serie con el PC y establecemos velocidad
delay (200);
BT.begin(9600); //Abrimos la comunicación serie con el Módulo BT y establecemos velocidad
delay (200);
pinMode(derA, OUTPUT);
pinMode(derB, OUTPUT);
pinMode(izqA, OUTPUT);
pinMode(izqB, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(A0, OUTPUT);
pinMode(A1, OUTPUT);
analogWrite(5, 100);
analogWrite(6, 100);
digitalWrite(A0, HIGH);
digitalWrite(A1, HIGH);
}
void loop() {
if (BT.available()) {
estado = BT.read();
Serial.println("Recibiendo");
Serial.println(BT.read());
//Adelante
if (estado == 'A') {
Serial.println("Adelante");
digitalWrite(7, LOW);
digitalWrite(8, HIGH);
digitalWrite(4, LOW);
digitalWrite(9, HIGH);
analogWrite(5, 250);
analogWrite(6, 235);
}
//Izquierda
if (estado == 'B') {
Serial.println("Izquierda");
digitalWrite(7, LOW);
digitalWrite(8, HIGH);
digitalWrite(4, LOW);
digitalWrite(9, LOW);
analogWrite(5, 255);
analogWrite(6, 255);
}
//Derecha
if (estado == 'D') {
Serial.println("Derecha");
digitalWrite(7, LOW);
digitalWrite(8, LOW);
digitalWrite(4, LOW);
digitalWrite(9, HIGH);
analogWrite(5, 255);
analogWrite(6, 255);
}
//Atrás
if (estado == 'C') {
Serial.println("Atrás");
analogWrite(5, 255);
analogWrite(6, 255);
digitalWrite(7, HIGH);
digitalWrite(8, LOW);
digitalWrite(4, HIGH);
digitalWrite(9, LOW);
}
//Parar
if (estado == 'E') {
Serial.println("Detener");
digitalWrite(derA, LOW);
digitalWrite(izqA, LOW);
digitalWrite(derB, LOW);
digitalWrite(izqB, LOW);
}
}
}