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 ('#');
    
}

11 comentarios:

  1. Holas muy bueno tu trabajo, sin embargo tengo una pregunta. Cual seria la frecuencia máxima que permite graficar tu aplicación, me imagino que lo que limita es la velocidad de transmisión de datos es decir los BUDIOS, tu pusiste 9600 esto realmente limita bastante, tal vez podrías subirle un poco mas, pero muy bueno, Saludos !

    ResponderEliminar
    Respuestas
    1. al subir la velocidad de transmisión aumenta la frecuencia de la señal que puedes visualizar en el osciloscopio

      Eliminar
    2. al subir la velocidad de transmisión aumenta la frecuencia de la señal que puedes visualizar en el osciloscopio

      Eliminar
  2. Yo hago la misma pregunta que Paredes Yoni: ¿cuál es el frecuencia mas alta del osciloscopio?

    ResponderEliminar
    Respuestas
    1. con velocidad de transmisión de 115000 bits por segundo he logrado visualizar señales de 100 Khz....trata de probar en tu proyecto...también lo mejora los algoritmo que uses en tu micro controlador para procesar la señal captada por el convertidor análogo digital del micro controlador...en el ejemplo que use no realice procesamiento de la señal....

      Eliminar
    2. con velocidad de transmisión de 115000 bits por segundo he logrado visualizar señales de 100 Khz....trata de probar en tu proyecto...también lo mejora los algoritmo que uses en tu micro controlador para procesar la señal captada por el convertidor análogo digital del micro controlador...en el ejemplo que use no realice procesamiento de la señal....

      Eliminar
    3. con velocidad de transmisión de 115000 bits por segundo he logrado visualizar señales de 100 Khz....trata de probar en tu proyecto...también lo mejora los algoritmo que uses en tu micro controlador para procesar la señal captada por el convertidor análogo digital del micro controlador...en el ejemplo que use no realice procesamiento de la señal....

      Eliminar
    4. con velocidad de transmisión de 115000 bits por segundo he logrado visualizar señales de 100 Khz....trata de probar en tu proyecto...también lo mejora los algoritmo que uses en tu micro controlador para procesar la señal captada por el convertidor análogo digital del micro controlador...en el ejemplo que use no realice procesamiento de la señal....

      Eliminar
  3. Hola puedes compartir el codigo de la aplicacion?

    ResponderEliminar
  4. we need help for this please give me reply for this arg abhidudhal@gmail.com

    m aslo need titorial in English

    ResponderEliminar
  5. Hola,un sistema sencillo a la vez que útil, pero tengo un problema con tu app. no muestra nada en pantalla a la vez que está conectado por bluethoot, si embargo el arduino si está enviado los datos de tension correctamente lo puedo visualizar.
    creo que el problema es del boton de la app ha pasado alguna vez.

    ResponderEliminar