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
('#');
}
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 !
ResponderEliminaral subir la velocidad de transmisión aumenta la frecuencia de la señal que puedes visualizar en el osciloscopio
Eliminaral subir la velocidad de transmisión aumenta la frecuencia de la señal que puedes visualizar en el osciloscopio
EliminarYo hago la misma pregunta que Paredes Yoni: ¿cuál es el frecuencia mas alta del osciloscopio?
ResponderEliminarcon 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....
Eliminarcon 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....
Eliminarcon 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....
Eliminarcon 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....
EliminarHola puedes compartir el codigo de la aplicacion?
ResponderEliminarwe need help for this please give me reply for this arg abhidudhal@gmail.com
ResponderEliminarm aslo need titorial in English
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.
ResponderEliminarcreo que el problema es del boton de la app ha pasado alguna vez.