Duda apagado y encendido de un led ingresado por usuario

Buen día a todos.

Estoy trabajando en un proyecto Arduino+Bluetooth+Appinventor el proyecto consiste en encender y apagar un led el tiempo que el usuario lo indique ,todo esto mediante la aplicacion móvil. Sin embargo no he podido o mas bien dicho no tengo idea como realizar la programación en el arduino de la función que establezca el tiempo que sea ingresado por el usuario.

Este es el codigo que tengo actualmente.

void setup() {
  Serial.begin(9600);
  pinMode(13,OUTPUT);
  pinMode(4,OUTPUT);

}

void loop() {
  if(Serial.available()>0)
  {
    char data = Serial.read();
    if (data == 'a')
    {
      digitalWrite(13,HIGH);
    }
    if(data == 'b')
    {
      digitalWrite(13,LOW);
    }
    if (data == 'c')
    {
      digitalWrite(4,HIGH);
    }
    if(data == 'd')
    {
      digitalWrite(4,LOW);
    }
  }

También adjunto imagenes de la aplicacion y del circuito físico.
Les pido su ayuda para por favor para poder orientarme o guiarme durante el proceso.De antemano les agradezco.

Un saludo.

Si pruebas ese codigo con el monitor serie veras que funciona bien.

Si escribes una a prende LED 13 y con b se apaga.

Lo que mo veo es nada del bluetooth.

Muchas gracias por tu respuesta Kike.

Les comento lo siguiente: el programa ha cambiado un poco, a continuacion de manera sencilla les tratare de explicar:

Una aplicacion generada en appinventor genera un codigo ,por ejemplo :

x15

Arduino recibe el codigo y lo almacena en una variable char dato, la cual a su vez es almacenada en un arreglo, a partir de ello se ejecutan las instrucciones deseadas.

Les compareto el codigo que tengo hasta el momento(soy novato y hago mi mayor esfuerzo programando )

led1=4;
led2=5;
led3=6;



char cadena[255];
int i=0;


void setup(){

BT.begin(9600);
pinMode(led1,OUTPUT);
pinMode(led2,OUTPUT);
pinMode(led3,OUTPUT);


digital.Write(led1,LOW);
digital.Write(led2,LOW);
digital.Write(led3,LOW);



}

void loop(){


int tiempo=0;


if(BT.available())
{


 char data=BT.read();

Serial.print(dato);


cadena[i++]=dato;

if (dato='1')// cuando e usuario presiona enter en la aplicación ingresa a esta  funcion

tiempo=cadena[1]
if (cadena[0]='x')

{


digital.Write(led1,HIGH)

//aqui ingresaria la funcion que define el tiempo que estara prendido

}

if (cadena[0]='y')

{

Serial.print(tiempo);
digital.Write(led2,HIGH)

}

if (cadena[0]='z')

{

Serial.print(tiempo);
digital.Write(led3,HIGH)

}


digital.Write(led1,LOW)
digital.Write(led2,LOW)
digital.Write(led3,LOW)

[/code]

[/code]

Espero puedan orientarme primeramente en el sentido de si estoy realizando bien el recibiemiento del codigoy el guardado en la cadena y ademas en como crear una funcion que establezca el tiempo que permanecera prendido el led. Igualmente les adjunto una imagen de lo que viene siendo la interfaz de la app para que puedan verlo mas claramente.

Quedo atentos a sus respuesta y de verdad muchas gracias.

Aqui la imagen de la app

APP1.png

APP1.png

Hola:

¿Qué programa o aplicación es este?

b5e8e30094f811c4a56580b7dc519abf9c74ecca.png

Saludos.

Hola es un programa creado en appinventor el cual me permitira controlar los leds que menciono en el post.

Gracias por la información.

Me imagino que será este el que dices.

http://appinventor.mit.edu/explore/

Saludos. :wink: