Buenas noches. Estoy provando un carro bluetooth con la arduino 101 ( uso el bluetooth integrado de la placa).
hice la apk en app inventor para controlarlo. Esta todo bien avanza,gira y retrocede pero al momento de parar los 2 servos, se apaga el BLE de la placa, no se porqué.
si me pueden ayudar en eso. gracias.
aca les dejo el codigo:
//Configuracion del BLE GENUINO 101
#include <Servo.h>
#include <CurieBLE.h>
BLEPeripheral blePeripheral;
BLEService lightService("19B10000-E8F2-537E-4F6C-D104768A1214");
BLEUnsignedCharCharacteristic switchCharacteristic("19B10001-E8F2-537E-4F6C-D104768A1214", BLERead | BLEWrite);
const int led1 = 13;
const int led2 = 12;
Servo servo1;
Servo servo2;
char estado;
void setup() {
Serial.begin(9600);
servo1.attach(5);
servo2.attach (6);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
//BLE GENUINO 101
blePeripheral.setLocalName("GENUINO 101");
blePeripheral.setAdvertisedServiceUuid(lightService.uuid());
blePeripheral.addAttribute(lightService);
blePeripheral.addAttribute(switchCharacteristic);
switchCharacteristic.setValue(0);
blePeripheral.begin();
Serial.println("BLE GENUINO 101.");
}
void loop(){
BLECentral central = blePeripheral.central(); // Aguarda ser conectado por BLuetooth
if (central){ //Si se produce la conexión
Serial.print("Conectado a la central: "); //muestra en el monitor serial
Serial.println(central.address());
digitalWrite(led1,HIGH);
digitalWrite(led2,LOW);
while (central.connected()) { // se ejecuta mientras el dispositivo está conectado
// Espera el valor enviado por el dispositivo conectado
//Y acciona el led correspondiente
if (switchCharacteristic.written()) { //Característica del interruptor ESCRITO
estado = switchCharacteristic.value(); //(Característica del interruptor VALOR)guardado en la variable estado
if (estado=='e'){ //Si estado = a AVANZA
servo1.write(180);
servo2.write(0);
}
if (estado=='d'){ //DERECHA
servo1.write(180);
servo2.write(180);
}
if (estado=='b'){ //IZQUIERDA
servo1.write(0);
servo2.write(0);
}
if (estado=='a'){ //REVERSA
servo1.write(0);
servo2.write(180);
}
/*if (estado=='c'){ //PARAR
servo1.write(90);
servo2.write(90);
} */
}
}
}else{
servo1.write(90);
servo2.write(90);
Serial.print(F("Disconnected from central: "));
Serial.println(central.address());
digitalWrite(led1,LOW);
digitalWrite(led2,HIGH);
}
}