martes, 4 de agosto de 2015

Osciloscopio Bluetooth

Osciloscopio Bluetooth


La aplicación Osciloscopio Bluetooth permite transformar su teléfono o Tablet en un osciloscopio o voltímetro que se conecta  a través de Bluetooth a un   dispositivo micro controlado como puede ser un PIC, Arduino o un sistema Rasberry   PI. El Osciloscopio Bluetooth permite visualizar señales Alternas (AC) o señales continuas (DC) en tu dispositivo móvil de forma segura ya que se conecta inalámbricamente a tu micro controlador que capturas las señales DC o AC y la transmite a tu Teléfono o Tablet a través de Bluetooh.


Visite  la página  http://www.profjmunoz.blogspot.com/  desde la misma aplicación presionando el icono "ONLINE TUTORIALS"  donde podrá encontrar tutoriales de como conectar las señales alternas y DC a un sistema Arduino  y transmitirla a su teléfono o Tablet para visualizarla a través de la aplicación Osciloscopio Bluetooth.

La aplicación Osciloscopio  Bluetooth recibe los datos desde tu sistema micro controlado en el siguiente formato:

Señal Recibida= $Dato1Dato2#

Ejemplo: Sí Dato1=4.25   y Dato2=60.5  recibe   $4.2560.5#

El valor de dato1 se gráfica y el valor de dato se visualiza.

Cuando se enciende el osciloscopio con el icono de encendido color verde se envía el carácter “1” al sistema micro controlado.  Cuando se presiona el botón de apagado color rojo se envía el carácter “0”, estos valores se pueden utilizar para controlar los procesos que deseen , por ejemplo encender o apagar un led, encender o apagar el envío de datos etc.
A continuación el programa que se realiza en un sistema Arduino para el envío de datos a su Tablet o teléfono. Se utilizó un Arduino  1, un módulo bluetooth HC-06 en los pines: 11 (RX)  y 12 (TX).  La señal DC o AC se introdujo por el pin analógico A0:

// include the library code:
#include <LiquidCrystal.h>
//String mensaje,mensaje3;
#include <SoftwareSerial.h>
SoftwareSerial mySerial(11, 12); // RX, TX
char inChar;
// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(8, 3, 4,6, 7,9);
float dato1=1.25;
float dato2=9.45;
String tmp;
unsigned long duracion1;
unsigned long duracion2;

//clipping indicator variables
boolean clipping = 0;

//data storage variables
byte newData = 0;
byte prevData = 0;

//freq variables
unsigned int timer = 0;//counts period of wave
unsigned int period;
int frequency;

// Lee Los DATOS DE Voltaje Pin A0
void readDatos();

void setup() {
 
  Serial.begin(9600);
  Serial.begin(9600);
 
  // set up the LCD's number of columns and rows:
  lcd.begin(20, 4);
  // Print a message to the LCD.
  lcd.setCursor(0,0);
  lcd.print("Osciloscopio Bth");
  //pinMode(A1,INPUT);
  mySerial.begin(9600);

}

void loop() {

 readDatos();
// Calcula la Frecuencia de la Señal


  lcd.setCursor(0,2);
  lcd.print("Datos1=");
  lcd.print(dato1);
  lcd.print("Datos2=");
  lcd.print(dato2);
  enviarDatos();

 
    while (mySerial.available() > 0)
    {
       inChar= (mySerial.read());
       lcd.setCursor(0,1);
       lcd.print("Recibiendo=");
       lcd.setCursor(13,1);
       lcd.print(inChar);
       inChar=' ';
      
     }
  delay(100);
}

// Lee los Datos e Voltajes Pueto Analogico A0  
void readDatos()
{
  //dato1= analogRead (A0);
  dato1= (analogRead(A0)*0.00488);
  dato2=00.0;
}
// Enviar Datos al Dispositivo Android
void enviarDatos()
{
    mySerial.print('$');
       readDatos();
       mySerial.print(dato1);
       mySerial.print(dato1); // Aquí se púede enviar otro dato al Android
       mySerial.print ('#');
    
}