jueves, 18 de febrero de 2016

Osciloscopio Digital con Micro Controladores PIC

Diseño de un Osciloscopio Digital Bluetooth mediante el uso de Micro Controladores PIC y el uso de dispositivos móviles Teléfonos y Tabletas como un osciloscopio Digital remoto que nos permite visualizar los procesos que realizamos con nuestro sistemas de micro controladores. Mediante este diseño transformamos nuestro teléfono y tableta electrónica en un osciloscopio digital.



El programa que requerimos instalar en nuestros dispositivos móviles es gratuito y lo podemos descargar desde:

OSCILOSCOPIO BLUETOOTH  GOOGLE PLAY:



OSCILOSCOPIO BLUETOOTH AMAZON:


Pueden descargar el cogido fuente para programar el PIC :


//#include <16f877A.h>
#include <18F4550.h>
#device ADC=8
//#fuses HS,nowdt,noprotect,nolvp,nodebug,usbdiv,pll5,cpudiv2,vregen
#fuses HS,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL5,CPUDIV1,VREGEN
//#fuses NOWDT,XT, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT
#use delay (clock = 20M )
#use fast_io(c)
#use rs232(baud=9600,bits=8,parity=n,xmit=pin_c6,rcv=pin_c7)
#priority rda,timer1,ad
#include <LCD4x16_2016.c>
//#include <LCD4x16_877A.c>
#byte PUERTO_A=0xf80
#byte PUERTO_B=0xf81
#byte PUERTO_C=0xf82
#byte PUERTO_D=0xf83
#byte PUERTO_E=0xf84


char valor,car1='$',car2='#';
int sw=0;
char dato[30]="";
char mensajeTx [12];
float conversion,conv=0.00;
#int_rda
recibir()
{
while ( kbhit())
{
valor=getc();//recibe el dato del pc y lo guarda en valor
sw=1;

}
}

#INT_AD
ver()
{


}



void main ()

{

  //Setup_adc_ports(NO_ANALOGS);
  lcd_init();
  set_tris_a(0b00000001);
  set_tris_b(0b00000000);
  set_tris_c(0b10000000);
  set_tris_d(0b00000000);

  lcd_init();
 lcd_gotoxy(1,1);
 printf(lcd_putc,"Osciloscopio BTH");
 output_a(0xFF);
 setup_adc_ports(AN0_ANALOG);
 setup_adc(ADC_CLOCK_DIV_8);
 enable_interrupts(INT_AD);
 enable_interrupts(int_rda);
 enable_interrupts(global);
while(true)
{

set_adc_channel (0);
delay_us (10);
conversion=read_ADC();
conversion=conversion*0.0196;
delay_us (10);
sprintf(dato,"%c%1.2f%1.2f%c",car1,conversion,conv,car2);
puts(dato);
lcd_gotoxy(0,2);
 printf(lcd_putc,dato);
 delay_us(100);
 strcpy(dato,"");
}


}


1 comentario: