No logro mover los motores con un L298N y aplicacion ArduinoBlueController

Hola comunidad
No logro hacer mover un par de motores vía bluetooth. Estoy usando un modulo L298N, un modulo HC05 y la aplicación de Android Arduino BlueController. ¿Serían tan amables de ayudarme?
Les cuento algunas consideraciones:
1.- La aplicación SÍ logra conectarse con el bluetooth HC05.
2.- Al presionar un botón de la aplicación, el monitor serial SÍ recibe un dato, pero es el de la imagen 1.
3.- Eh controlado los motores y el modulo a base de puro código en el IDE y si funcionan correctamente.

char t;
int IN1 = 2;
int IN2 = 3;
int ENA = 5;
int IN3 = 7;
int IN4 = 8;
int ENB = 9;
 
void setup() {
pinMode(IN1,OUTPUT);
pinMode(IN2,OUTPUT);
pinMode(ENA,OUTPUT);
pinMode(IN3,OUTPUT);
pinMode(IN4,OUTPUT);
pinMode(ENB,OUTPUT);
 
Serial.begin(9600);
 
}
 
void loop() {
if(Serial.available()>0){
  t = Serial.read();
  Serial.println(t);
}
 
if(t == '1'){            //move forward(all motors rotate in forward direction)
 digitalWrite(ENB,HIGH);
 digitalWrite(IN3,LOW);
 digitalWrite(IN4,HIGH);
}
 
else if(t == '2'){      //move reverse (all motors rotate in reverse direction)
   digitalWrite(ENB,HIGH);
 digitalWrite(IN3,HIGH);
 digitalWrite(IN4,LOW);
}
 
else if(t == '3'){      //turn right (left side motors rotate in forward direction, right side motors doesn't rotate)
  digitalWrite(ENA,HIGH);
 digitalWrite(IN1,HIGH);
 digitalWrite(IN2,LOW);
}
 
else if(t == '4'){      //turn left (right side motors rotate in forward direction, left side motors doesn't rotate)
  digitalWrite(ENA,HIGH);
 digitalWrite(IN1,LOW);
 digitalWrite(IN2,HIGH);
}
 
else if(t == '5'){      //STOP (all motors stop)
 digitalWrite(ENA,LOW);
 digitalWrite(ENB,LOW);
}
delay(100);
}


De antemano agradezco su atención.

Hola, Creo que lo que tienes es un conficto de comunicaciones en el puerto serie, por el se están intentando comunicar al mismo tiempo la consola del PC y el modulo de bluetooth.
Deberias conectar el modulo bluetooth a otros dos puertos y con alguna libreria hacer la comunicacion serie por esos dos puertos y ¿como lo haces), ni idea, tengo un coche “inteligente” de esos y de momento solo lo he usado para perseguir al gato, Un dia de estos le metere mano.
Te dejo el inicio del codigo de mi coche para que veas como hace esa comunicación con un vistazo por encima creo que se puede comprender facilmente.

#include <car_bluetooth.h>
#include <SoftwareSerial.h>   //Software Serial Port
#include <String.h>
#include "MotorDriver.h"

#define RxD 2//D2 of Arduino should connect to TX of the Serial Bluetooth module
#define TxD 3//D3 of Arduino should connect to RX of the Serial Bluetooth module
CarBluetooth bluetooth(RxD, TxD);
#define CMD_INVALID     0XFF
#define CMD_FORWARD     'F'
#define CMD_RIGHT_FRONT 'R'

#define CMD_BACKWARD    'B'

#define CMD_LEFT_FRONT  'L'
#define CMD_STOP        'S'

#define SPEED_STEPS 20
uint8_t speed0 = 100;
#define BIN1 8
#define BIN2 7
#define PWMB 6
#define AIN1 9
#define AIN2 10
#define PWMA 11


void setup(){
  motordriver.init(BIN1,BIN2,PWMB,AIN1,AIN2,PWMA);
  motordriver.setSpeed(100,MOTORA);
  motordriver.setSpeed(100,MOTORB);
  bluetooth.waitConnected();
  }

Saludos.

Ya logré conectar el celular al Arduino cambiando los pines rx(10) y tx(11). Sin embargo al observar la respuesta en el monitor serial, se sigue mostrando el mismo símbolo de la imagen 1.

No me comentas si has cambiado algo de software o harware, pero dime cuando pones:

if(Serial.available()>0){
  t = Serial.read();
  Serial.println(t);

¿como sabe el arduino a que serial debe leer y a cual escribir.?
Leete esta pagina: LINK

Gracias por tu ayuda gonpezzi
Después de leer el LINK que me mandaste caí en cuenta de mi error de Noob. El modulo estaba configurado a una velocidad(15200 baudios) diferente a la que yo indicaba en el código (9600) por lo tanto me aparecía ese símbolo raro.
Eh resuelto el problema y comparto el código por si resulta de ayuda a alguien:

#include <SoftwareSerial.h>


char t;
int IN1 = 2;
int IN2 = 3;
int ENA = 5;
int IN3 = 7;
int IN4 = 8;
int ENB = 9;

#define RxD 10
#define TxD 11
SoftwareSerial b1(RxD, TxD);

void setup() {
pinMode(IN1,OUTPUT);
pinMode(IN2,OUTPUT);
pinMode(ENA,OUTPUT);
pinMode(IN3,OUTPUT);
pinMode(IN4,OUTPUT);
pinMode(ENB,OUTPUT);
 
Serial.begin(115200);
b1.begin(115200);
 
}
 
void loop() {
if(b1.available()>0){
  t = b1.read();
  Serial.println(t);
}
 
if(t == '1'){            //traccion gira hacia adelante
 digitalWrite(ENB,HIGH);
 digitalWrite(IN3,LOW);
 digitalWrite(IN4,HIGH);
}
 
else if(t == '2'){      //traccion gira hacia atras
   digitalWrite(ENB,HIGH);
 digitalWrite(IN3,HIGH);
 digitalWrite(IN4,LOW);
}
 
else if(t == '3'){      // direccion gira a la derecha
  digitalWrite(ENA,HIGH);
 digitalWrite(IN1,HIGH);
 digitalWrite(IN2,LOW);
}
 
else if(t == '4'){      // direccion gira a la izquierda
  digitalWrite(ENA,HIGH);
 digitalWrite(IN1,LOW);
 digitalWrite(IN2,HIGH);
}
 
else if(t == '5'){      //detiene todos los motores
 digitalWrite(ENA,LOW);
 digitalWrite(ENB,LOW);
}
else if(t == '6'){  //vuelve la direccion hacia el centro
  digitalWrite(ENA,LOW);
}
delay(100);
}

GRACIAS GONPEZZI!

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.