Paso 3: código
Este fue el código que utilizamos para mover el carro a través de Bluetooth en la base de Arduino
#include
#include
#include "utility/Adafruit_MS_PWMServoDriver.h"
#include
int bluetoothTx = 51; TX-O pin de bluetooth mate, Arduino D2
int bluetoothRx = 50; RX-I pin de bluetooth mate, Arduino D3
int i, ia, vDI, vDD, vTI, vTD, DI, DD;
SoftwareSerial bluetooth (bluetoothTx, bluetoothRx);
Adafruit_MotorShield AFMS = Adafruit_MotorShield();
Adafruit_DCMotor * MotorDI = AFMS.getMotor(1);
Adafruit_DCMotor * MotorDD = AFMS.getMotor(2);
Adafruit_DCMotor * MotorTI = AFMS.getMotor(3);
Adafruit_DCMotor * MotorTD = AFMS.getMotor(4);
void setup() {}
Serial.Begin(9600); Iniciar al monitor serial a 9600bps
Bluetooth.Begin(115200); El Bluetooth Mate por defecto a 115.200 bps
Bluetooth.Print("$"); Imprimir individualmente tres veces
Bluetooth.Print("$");
Bluetooth.Print("$"); El modo de comando
Delay(100); Espacio breve de tiempo, esperar a que la Mate enviar nuevo CMD
Bluetooth.println("U,9600,N"); Cambiar temporalmente la velocidad en baudios de 9600, sin paridad
115200 puede ser demasiado rápido a veces para NewSoftSerial transmitir los datos de forma fiable
Bluetooth.Begin(9600); Inicio bluetooth serial a 9600
AFMS.begin();
MotorDI -> setSpeed(150);
MotorDI -> run(FORWARD);
MotorDI -> run(RELEASE);
MotorDD -> setSpeed(150);
MotorDD -> run(FORWARD);
MotorDD -> run(RELEASE);
MotorTI -> setSpeed(150);
MotorTI -> run(FORWARD);
MotorTI -> run(RELEASE);
MotorTD -> setSpeed(150);
MotorTD -> run(FORWARD);
MotorTD -> run(RELEASE);
}
void loop() {}
if(Bluetooth.Available()) / / si el bluetooth envía los caracteres
{
i = bluetooth.read();
}
if(serial.Available()) / / si las cosas se escribe en el monitor serial
{
Enviar caracteres que imprime el monitor Serial a bluetooth
Bluetooth.Print((Char)serial.Read());
}
Si (ia! = i)
{
interruptor (i)
{
caso 119:
Bluetooth.println("w");
vDI = 250;
vDD = 250;
vTI = 250;
vTD = 250;
DI = 1;
DD = 1;
rotura;
caso 101:
Bluetooth.println("e");
vDI = 220;
vDD = 50;
vTI = 220;
vTD = 50;
DI = 1;
DD = 1;
rotura;
caso 100:
Bluetooth.println("d");
vDI = 250;
vDD = 250;
vTI = 250;
vTD = 250;
DI = 1;
DD = 2;
rotura;
caso 115:
Bluetooth.println("s");
vDI = 0;
vDD = 0;
vTI = 0;
vTD = 0;
DI = 1;
DD = 1;
rotura;
caso 97:
Bluetooth.println("a");
vDD = 250;
vDI = 250;
vTD = 250;
vTI = 250;
DI = 2;
DD = 1;
rotura;
caso 113:
Bluetooth.println("q");
vDD = 250;
vDI = 50;
vTD = 250;
vTI = 50;
DI = 1;
DD = 1;
rotura;
caso 120:
Bluetooth.println("x");
vDI = 220;
vDD = 220;
vTI = 220;
vTD = 220;
DI = 2;
DD = 2;
rotura;
}
MotorDI -> setSpeed(vDI);
MotorDI -> run(DI);
MotorDD -> setSpeed(vDD);
MotorDD -> run(DD);
MotorTI -> setSpeed(vTI);
MotorTI -> run(DI);
MotorTD -> setSpeed(vTD);
MotorTD -> run(DD);
IA = i;
}
}