GiHOxp
Published

Mini Documents Bluetooth Reader

Send mini documents to a 16x2 LCD display.

IntermediateProtip2,349
Mini Documents Bluetooth Reader

Things used in this project

Hardware components

Arduino UNO
Arduino UNO
×1
Pushbutton Switch, Push-Pull
Pushbutton Switch, Push-Pull
×1
HC-05 Bluetooth Module
HC-05 Bluetooth Module
×1
Alphanumeric LCD, 16 x 2
Alphanumeric LCD, 16 x 2
×1

Software apps and online services

Arduino IDE
Arduino IDE

Story

Read more

Schematics

the good sketch

Code

the good code

Arduino
#include <SoftwareSerial.h> //Librería que permite establecer comunicación serie en otros pin
#include <LiquidCrystal.h>




// made by Gibran Hernandez
//supergxp@gmail.com








//Aquí conectamos los pins RXD,TDX del módulo Bluetooth.
SoftwareSerial modulo(10,11); //10 RX, 11 TX.
LiquidCrystal lcd (5, 3, 7, 9, 8, 12);
 
int green=4;
String hola = "";
int botonaso=2;
int boton = HIGH;
int red=6;
char cadena[255]; //Creamos un array de caracteres de 256 cposiciones
int i=0; //Tamaño actual del array
int columna =0;
int renglon = 0;
int length = 0;
int estado = 0;
int adios = 0;
int guante = 0;
byte resets[8]={
  0b00000,
  0b00000,
  0b00000,
  0b00000,
  0b00000,
  0b00000,
  0b00000,
  0b00000 
};

String prueba = "";
void setup()
{
  modulo.begin(9600);
  Serial.begin(9600);
  pinMode(green,OUTPUT);
  pinMode(boton,INPUT);
  pinMode(red,OUTPUT);
  lcd.begin(16, 2);
  lcd.createChar(4, resets);
  
}
 
void loop(){
  boton = digitalRead(botonaso);



  //Cuando haya datos disponibles
  if(modulo.available())
  {
 
     
    Serial.print("estado =");
    Serial.println(estado);
       
      /* Codigo debug */
     /* if(estado == 0)
      {
        digitalWrite(green,HIGH);
        Serial.println("ENCENDIDO");
        
        estado = 1;
        
      } else {
        digitalWrite(green,LOW);
        Serial.println("apagado");
         estado = 0;
      }*/
     /* Fin Codigo debug */
     
    char dato=modulo.read(); //Guarda los datos carácter a carácter en la variable "dato"
    Serial.println(dato);

    cadena[i++]=toUpperCase(dato); //Vamos colocando cada carácter recibido en el array "cadena"

 
    /* Codigo debug */
    Serial.println("Se ha pulsado una tecla");
   
    Serial.println(cadena);

    prueba = cadena;
    
    if(prueba.length() <= 15){
      Serial.println("chica");
        borra();
        lcd.home();
             lcd.print(prueba);
             
    } 

   else if (prueba.length() > 15 && prueba.length() < 32){
        borra();
      Serial.println("mediana");
      lcd.setCursor(0,0);
      lcd.print(prueba.substring(0,16));
     
      lcd.setCursor(0,1 );
      lcd.print(prueba.substring(16,32));
    }




else if (prueba.length() > 31 && prueba.length() < 48){
    borra();
    hola= "";
Serial.println("grande");

      lcd.setCursor(0,0);
      lcd.print(prueba.substring(0,16));
      
      lcd.setCursor(0,1 );
      lcd.print(prueba.substring(16,32));

      Serial.println(prueba.length());
     
     hola = hola + "grande";
}

else if (prueba.length() > 47 && prueba.length() < 64){
    borra();
    hola= "";
Serial.println("muy grande");

      lcd.setCursor(0,0);
      lcd.print(prueba.substring(0,16));
      
      lcd.setCursor(0,1 );
      lcd.print(prueba.substring(16,32));

      Serial.println(prueba.length());
    
     hola = hola + "muy grande";
}



/*
  if(izeof(cadena) < 15){
    borradisplay();
    lcd.home();
    lcd.print(cadena);
  }
   /* if (sizeof(cadena) > 15){
      lcd.setCursor(0,0);
      lcd.print(substring(0,15, cadena));
      
      lcd.setCursor(0,1 );
      lcd.print(substring(16,sizeof(cadena)-1, cadena));
    }
    else{
      lcd.print(cadena);
    }  

         
    if(strstr (cadena,"GREEN ON") != 0)
      {
        digitalWrite(green,HIGH);
        Serial.println("prende");    
      }
      else{
        digitalWrite(green,LOW);
        Serial.println("apaga");

      }
*/
/*
       if(strstr (cadena,"BLUE ON") != 0)
      {
        digitalWrite(yellow,HIGH);
        Serial.println("prende");

        clean();
    
      }
      else{
        digitalWrite(yellow,LOW);
        Serial.println("apaga");

      }

      if(strstr (cadena,"CLEAN") != 0)
      {
        borradisplay();
        Serial.println("clean");
         
        clean();
    
      }


    clean();
*/
  
  


/* if((prueba.length() != prueba.length() <= 15) || (prueba.length() != (prueba.length() > 15 && prueba.length() < 30)) && hola ==0){

clean();

    
  }*/}

 else if(boton == LOW && hola == "grande"){
        Serial.println("boton presionado");
        lcd.setCursor(0,0);
      lcd.print(prueba.substring(16,32));
      
      lcd.setCursor(0,1 );
      lcd.print(prueba.substring(32,48));
        hola = "";
      }

 else if(boton == LOW && hola == "muy grande"){
        Serial.println("boton presionado");
        lcd.setCursor(0,0);
      lcd.print(prueba.substring(32,48));
      
      lcd.setCursor(0,1 );
      lcd.print(prueba.substring(48,64));
        hola = "";
      }


 else if(boton == LOW && hola == "gigante"){
        Serial.println("boton presionado");
        lcd.setCursor(0,0);
      lcd.print(prueba.substring(32,48));
      
      lcd.setCursor(0,1 );
      lcd.print(prueba.substring(48,64));
        hola = "gigante 1";
      }

 else if(boton == LOW && hola == "gigante 1"){
        Serial.println("boton presionado");
        lcd.setCursor(0,0);
      lcd.print(prueba.substring(64,80));
      
      lcd.setCursor(0,1 );
      lcd.print(prueba.substring(80,96));
        hola = "";
      }








      
















    
  else if (hola == "") {
 clean();
}
  else if (prueba.length() >= 81) {
 clean();
}


  //  Serial.print("hola = ");
  //Serial.println(hola);
  }
 
//Limpia el array
void clean()
{
  for (int cl=0; cl<=i; cl++)
  {
    cadena[cl]=0;
    prueba[cl]=0;
    adios=0;
    hola="";
  }
  i=0;
}
void borra()
{
  for(columna = 0; columna <= 16; columna++){
    lcd.setCursor(columna, 0);
    lcd.write(4);

    lcd.setCursor(columna, 1);
    lcd.write(4);

  }//for
   Serial.print("hola = ");
  Serial.println(hola);
}

void clean2()
{
  for (int cl=0; cl<=i; cl++)
  {
   
    prueba[cl]=0;
    adios=0;
  }
  i=0;
}

Credits

GiHOxp
4 projects • 3 followers
Contact

Comments

Please log in or sign up to comment.