PROGRAMA PARA HACER CONTROL DISCRETO POR BLUETOOTH ACIVA EN MODO TOGGLE, LOS MANDOS TOS ONV, ONR, ONA...QUE HACEN MENCION A ROJO VERDE, AZUL.

Dependencies:   mbed

main.cpp

Committer:
tony63
Date:
2017-03-31
Revision:
0:62e15126246b

File content as of revision 0:62e15126246b:

//PROGRAMA PARA RECIBIR CARACTERES DESDE EL PC Y ACTIVAR 3 LEDS
//UTIL EN LECTURA DE CADENAS PARA APP INVENTOR
#include "mbed.h"
#include "stdio.h"
#include "string.h"
 
Serial GSM(PTE0,PTE1);  //puertos del FRDM para el modem
Serial pc(USBTX,USBRX); //puertos del PC
char buffer[20];// TAMAÑO DEL BUFER
Timer t;   //VALOR DEL TIEMPO
int count;
int i = 0;
int c=0;
char r[]=""; 
char Qr[]="qmAIzQGtSK";
DigitalOut LedRojo(LED1);
DigitalOut LedVerde(LED2);
DigitalOut LedAzul(LED3);
 
int readBuffer(char *buffer,int count)   //esta funcion lee un bufer de datos
{
    int i=0; 
    t.start();    //CUENTA EL TIEMPO DE CONEXION E INICIA
    while(1) {
        while (GSM.readable()) {
            char c = GSM.getc();
            if (c == '\r' || c == '\n') c = '$';//si se envia fin de linea o de caracter inserta $
            buffer[i++] = c;//mete al bufer el caracter leido
            if(i > count)break;//sale del loop si ya detecto terminacion
        }
        if(i > count)break;
        if(t.read() > 1) {  //MAS DE UN SEGUNDO DE ESPERA SE SALE Y REINICA EL RELOJ Y SE SALE
            t.stop();
            t.reset();
            break;
        }
    }
     return 0;
}

void cleanBuffer(char *buffer, int count)  //esta funcion limpia el bufer
{
    for(int i=0; i < count; i++) {
        buffer[i] = '\0';
    }
}

   
int main(void)
       { 
       LedVerde=1;
       LedRojo=1;
       LedAzul=1;
       LedVerde=0;
       wait(2);   //PRENDE EL LED VERDE POR 2 SEGUNDOS
       LedVerde=1;
       GSM.baud(9600);
       GSM.format(8,Serial::None,1); 
               
       while(1){ 
       if (GSM.readable()) {
          readBuffer(buffer,10);
          pc.printf("buffer= %s\n\r ",buffer);  //imprime el bufer
          pc.printf("buffer= %c  %c\n\r ",buffer[0],buffer[1]);//imprime el cero y el uno
          
          if(buffer[0]=='O' && buffer[1]=='N' && buffer[2]=='A' ){LedAzul=!LedAzul;}  //PRENDE EL LED AZUL toggle
          //if(buffer[0]=='O' && buffer[1]=='F'&& buffer[2]=='A'){LedAzul=1;}  //APAGA EL LED AZUL
          
          if(buffer[0]=='O' && buffer[1]=='N' && buffer[2]=='V' ){LedVerde=!LedVerde;}//PRENDE EL LED VERDE toggle
         //if(buffer[0]=='O' && buffer[1]=='F'&& buffer[2]=='V'){LedVerde=1;}  //APAGA EL LED VERDE
          
          if(buffer[0]=='O' && buffer[1]=='N' && buffer[2]=='R' ){LedRojo=!LedRojo;}  //PRENDE EL LED ROJO toggle
          //if(buffer[0]=='O' && buffer[1]=='F'&& buffer[2]=='R'){LedRojo=1;}  //APAGA EL LED ROJO
          
          
          
          } 
          cleanBuffer(buffer,10);           
}
}