Tengo Arduino Mega 2560, Ladyada Motor Shield v1.0, el módulo Bluetooth HC-07 y la aplicación de terminal Bluetooth para Android. Combiné Motor Shield en Arduino Mega. Obtengo el punto M + (5V) / GND para ejecutar mi módulo Bluetooth HC-07 para proporcionar energía. RxD de Bluetooth = Tx1 de Arduino (18. Pin), y TxD de Bluetooth = Rx1 de Arduino (19. Pin). Conecté Arduino Mega a la PC a través del cable USB para dar energía. Hay un motor de CC conectado en el lado M1 del Motor Shield.
La conexión de mi Bluetooth, la conexión de mi Arduino y la aplicación de Android están listas para usar. Pero, solo controlo mi motor de CC desde el "Monitor Serial" de mi PC. Aunque, quiero controlar a través de Bluetooth, solo pude controlar a través de PC. ¿Dónde estoy fallando?
Mi código de Arduino es:
#include <AFMotor.h>
#include <SoftwareSerial.h>
SoftwareSerial bluetooth(19, 18);
char val; // Variable to receive data from the serial port
// DC motor on M1
AF_DCMotor motor(1);
// DC motor on M2
AF_DCMotor motor2(2);
int i;
void setup() {
Serial.begin(115200);
bluetooth.begin(115200);
// turn on motor #1
motor.setSpeed(200);
motor.run(RELEASE);
// turn on motor #2
motor2.setSpeed(200);
motor2.run(RELEASE);
}
// Move FORWARD
void go_forward(){
motor.run(FORWARD);
motor2.run(FORWARD);
for (i=0; i<255; i++) {
motor.setSpeed(i);
motor2.setSpeed(i);
}
}
// Move REVERSE
void go_reverse(){
motor.run(BACKWARD);
motor2.run(BACKWARD);
for (i=0; i<255; i++) {
motor.setSpeed(i);
motor2.setSpeed(i);
}
}
// Move LEFT
void stop_go_forward(){
motor.run(RELEASE);
motor2.run(RELEASE);
}
void go_left(){
motor.run(FORWARD);
for (i=0; i<255; i++) {
motor.setSpeed(i);
}
}
// Move RIGHT
void go_right(){
motor2.run(FORWARD);
for (i=0; i<255; i++) {
motor2.setSpeed(i);
}
}
// Read serial port and perform command
void performCommand() {
if (Serial.available()) {
val = Serial.read();
}
//Bluetooth kontrol kısmı
if(bluetooth.available()) {
val = (bluetooth.read());
Serial.print(val);
}
if (val == '1') { // Forward
go_forward();
} else if (val == '2') { // Reverse
go_reverse();
} else if (val == '3') { // Stop Forward
stop_go_forward();
} else if (val == '4') { // Right
go_right();
} else if (val == '5') { // Left
go_left();
}
}
void loop() {
performCommand();
}
/* KOMUTLAR
1 - ileri
2 - geri
4 - sağ
5 - sol
3 - dur
*/